普通文本  |  45行  |  1.4 KB

# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import cellular_system_error


class AirStateVerifierPermissive(object):
    """An abstraction for verifying the air-side cellular state.

    This version is for commercial networks where we can't verify
    anything, so it's a no-op."""
    def AssertDataStatusIn(self, states):
        """Assert that the device's status is in states.
        Arguments:
            states:  Collection of states
        Raises:
            Error on failure.
        """
        # This base class is for commercial networks.  It can't verify, so
        # it doesn't
        pass

    def IsDataStatusIn(self, expected):
        return True


class AirStateVerifierBasestation(object):
    """An abstraction for verifying the air-side cellular state.

    This version checks with the base station emulator.
    """
    def __init__(self, base_station):
        self.base_station = base_station

    def IsDataStatusIn(self, expected):
        actual = self.base_station.GetUeDataStatus()
        return actual in expected

    def AssertDataStatusIn(self, expected):
        actual = self.base_station.GetUeDataStatus()
        if actual not in expected:
            raise cellular_system_error.BadState(
                'expected UE in status %s, got %s' % (expected, actual))