1# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import cellular_system_error 6 7 8class AirStateVerifierPermissive(object): 9 """An abstraction for verifying the air-side cellular state. 10 11 This version is for commercial networks where we can't verify 12 anything, so it's a no-op.""" 13 def AssertDataStatusIn(self, states): 14 """Assert that the device's status is in states. 15 Arguments: 16 states: Collection of states 17 Raises: 18 Error on failure. 19 """ 20 # This base class is for commercial networks. It can't verify, so 21 # it doesn't 22 pass 23 24 def IsDataStatusIn(self, expected): 25 return True 26 27 28class AirStateVerifierBasestation(object): 29 """An abstraction for verifying the air-side cellular state. 30 31 This version checks with the base station emulator. 32 """ 33 def __init__(self, base_station): 34 self.base_station = base_station 35 36 def IsDataStatusIn(self, expected): 37 actual = self.base_station.GetUeDataStatus() 38 return actual in expected 39 40 def AssertDataStatusIn(self, expected): 41 actual = self.base_station.GetUeDataStatus() 42 if actual not in expected: 43 raise cellular_system_error.BadState( 44 'expected UE in status %s, got %s' % (expected, actual)) 45