1# Copyright (c) 2013 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 common 6import unittest 7import cell_tools 8import cellular_logging 9 10 11import dbus 12 13from autotest_lib.client.cros.cellular import labconfig 14# Mock out routing in the network file 15import mock 16import sys 17sys.modules['routing'] = mock.MagicMock() 18from autotest_lib.client.cros import network 19import flimflam 20import base_station_pxt 21import prologix_scpi_driver 22import scpi 23import environment 24 25config = labconfig.Configuration(['--cell', 'mtv', '--technology', 'LTE']) 26import time 27 28logger = cellular_logging.SetupCellularLogging('cell_tools_test') 29 30technology_lte = 'Technology:LTE' 31 32 33class test_cell_tools(unittest.TestCase): 34 35 def test_CellularSmokeNoCallBoxSetup(self): 36 self._reset_everything() 37 logger.debug('making flimflam object..') 38 self.flim = flimflam.FlimFlam() 39 logger.debug('Find Cellular Device ...') 40 self.device = self.flim.FindCellularDevice() 41 logger.debug('Find Celluar Service..') 42 self.service = self.flim.FindCellularService() 43 logger.debug('Set Auto Connect to False ..') 44 self.service.SetProperty('AutoConnect', dbus.Boolean(False)) 45 46 logger.debug('Reset all modems ..') 47 network.ResetAllModems(self.flim) 48 logger.debug('Prepare Modem for LTE..') 49 cell_tools.PrepareModemForTechnology('', 'Technology:LTE') 50 51 logger.debug('Make another flimflam..') 52 self.flim = flimflam.FlimFlam() 53 logger.debug('Sleep for 5...') 54 time.sleep(5) 55 logger.debug('Connect to Cellular...') 56 cell_tools.ConnectToCellular(self.flim, timeout=60) 57 logger.debug('Clearing errors...') 58 env.emulator.ClearErrors() 59 logger.debug('Check connect to cellular ...') 60 service = env.CheckedConnectToCellular() 61 62 def test_TurnOnPxtAndConnectToCellularWorks(self): 63 self._reset_everything() 64 self.flim = flimflam.FlimFlam() 65 #self.device = self.flim.FindCellularDevice() 66 self.service = self.flim.FindCellularService() 67 self.service.SetProperty('AutoConnect', dbus.Boolean(False)) 68 with environment.DefaultCellularTestContext(config) as c: 69 env = c.env 70 env.StartDefault(technology_lte) 71 self.flim = flimflam.FlimFlam() # because the manger destroys it? 72 cell_tools.ConnectToCellular(self.flim, timeout=60) 73 74 def test_TurnOnPxtAndConnectToCellularWorksAddSmoke(self): 75 self._reset_everything() 76 self.flim = flimflam.FlimFlam() 77 #self.device = self.flim.FindCellularDevice() 78 self.service = self.flim.FindCellularService() 79 self.service.SetProperty('AutoConnect', dbus.Boolean(False)) 80 with environment.DefaultCellularTestContext(config) as c: 81 env = c.env 82 env.StartDefault(technology_lte) 83 cell_tools.PrepareModemForTechnology('', technology_lte) 84 self.flim = flimflam.FlimFlam() # because the manger destroys it? 85 #network.ResetAllModems(self.flim) 86 self.flim = flimflam.FlimFlam() # because the manger destroys it? 87 cell_tools.ConnectToCellular(self.flim, timeout=60) 88 env.emulator.ClearErrors() 89 service = env.CheckedConnectToCellular() 90 #env.CheckHttpConnectivity() 91 env.CheckedDisconnectFromCellular(service) 92 93 def _reset_everything(self): 94 """Rest the modem, ModemManger, and Shill""" 95 import os 96 logger.debug('Resetting Modem...') 97 os.system('modem reset') 98 logger.debug('Resetting shill...') 99 os.system('restart shill') 100 logger.debug('Resetting modemmanager...') 101 os.system('restart modemmanager') 102 103if __name__ == '__main__': 104 unittest.main() 105