blob: 43b746dbe093948b47ab05f28c26ba3dde6ea220 [file] [log] [blame]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Copyright (c) 2012 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.
"""Probes information from 'modem status'.
Requested data are probed, written to the event log, and saved to device data.
"""
import mox
import unittest2
import factory_common # pylint: disable=W0611
from cros.factory.test.pytests import probe_cellular_info
from cros.factory.test.args import Args
class ProbeCellularInfoTestTest(unittest2.TestCase):
def setUp(self):
self.test = probe_cellular_info.ProbeCellularInfoTest()
self.mox = mox.Mox()
self.mox.StubOutWithMock(probe_cellular_info, 'CheckOutput')
self.mox.StubOutWithMock(probe_cellular_info, 'Log')
self.mox.StubOutWithMock(probe_cellular_info, 'UpdateDeviceData')
def tearDown(self):
try:
self.mox.VerifyAll()
finally:
self.mox.UnsetStubs()
def testValid(self):
stdout = """
Modem /org/chromium/ModemManager/Gobi/1:
GetStatus:
imei: 838293836198373
meid: Q9298301CDF827
"""
probe_cellular_info.CheckOutput(['modem', 'status'], log=True).AndReturn(
stdout)
probe_cellular_info.Log(
'cellular_info', modem_status_stdout=stdout,
imei='838293836198373', meid='Q9298301CDF827')
probe_cellular_info.UpdateDeviceData({'imei': '838293836198373',
'meid': 'Q9298301CDF827'})
self.mox.ReplayAll()
self.test.args = Args(*self.test.ARGS).Parse({})
self.test.runTest()
def testMissingIMEI(self):
stdout = """
Modem /org/chromium/ModemManager/Gobi/1:
GetStatus:
meid: Q9298301CDF827
"""
probe_cellular_info.CheckOutput(['modem', 'status'], log=True).AndReturn(
stdout)
probe_cellular_info.Log(
'cellular_info', modem_status_stdout=stdout,
imei=None, meid='Q9298301CDF827')
self.mox.ReplayAll()
self.test.args = Args(*self.test.ARGS).Parse({})
self.assertRaisesRegexp(AssertionError, r"Missing elements.+: \['imei'\]",
self.test.runTest)
def testBlankIMEI(self):
stdout = """
Modem /org/chromium/ModemManager/Gobi/1:
GetStatus:
imei: #
meid: Q9298301CDF827
""".replace("#", "")
# Remove hash mark; necessary to make white-space check pass
probe_cellular_info.CheckOutput(['modem', 'status'], log=True).AndReturn(
stdout)
probe_cellular_info.Log(
'cellular_info', modem_status_stdout=stdout,
imei=None, meid='Q9298301CDF827')
self.mox.ReplayAll()
self.test.args = Args(*self.test.ARGS).Parse({})
self.assertRaisesRegexp(AssertionError, r"Missing elements.+: \['imei'\]",
self.test.runTest)
if __name__ == '__main__':
unittest2.main()