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