Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1633)

Unified Diff: devil/devil/utils/find_usb_devices_test.py

Issue 1823193002: add GetBattorPathFromPhoneSerial to find_usb_devices (Closed) Base URL: git@github.com:catapult-project/catapult@master
Patch Set: fix test Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « devil/devil/utils/find_usb_devices.py ('k') | devil/devil/utils/test/data/test_serial_map.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: devil/devil/utils/find_usb_devices_test.py
diff --git a/devil/devil/utils/find_usb_devices_test.py b/devil/devil/utils/find_usb_devices_test.py
index 2e94dcd2aa6e115f1f8ebc9378c10e80ef009009..db35ebf09ef341b144acb9d7a17ae093f960fb91 100755
--- a/devil/devil/utils/find_usb_devices_test.py
+++ b/devil/devil/utils/find_usb_devices_test.py
@@ -29,10 +29,15 @@ Bus 002:
"""
import logging
+import os
import unittest
from devil import devil_env
+from devil.utils import battor_device_mapping
from devil.utils import find_usb_devices
+from devil.utils import lsusb
+from devil.utils import usb_hubs
+
with devil_env.SysPath(devil_env.PYMOCK_PATH):
import mock # pylint: disable=import-error
@@ -46,15 +51,15 @@ DEVLIST = [(1, 11, 'foo'),
(1, 13, 'baz'),
(2, 11, 'quux'),
(2, 20, 'My Test HUB'),
- (2, 21, 'Future Technology Devices International battor_p7_h1_t0'),
- (2, 22, 'Future Technology Devices International battor_p5_h1_t1'),
+ (2, 21, 'ID 0403:6001 battor_p7_h1_t0'),
+ (2, 22, 'ID 0403:6001 battor_p5_h1_t1'),
(2, 23, 'My Test Internal HUB'),
- (2, 24, 'Future Technology Devices International battor_p3_h1_t2'),
- (2, 25, 'Future Technology Devices International battor_p1_h1_t3'),
+ (2, 24, 'ID 0403:6001 battor_p3_h1_t2'),
+ (2, 25, 'ID 0403:6001 battor_p1_h1_t3'),
(2, 26, 'Not a Battery Monitor'),
(2, 100, 'My Test HUB'),
(2, 101, 'My Test Internal HUB'),
- (2, 102, 'Future Technology Devices International battor_p1_h1_t4')]
+ (2, 102, 'ID 0403:6001 battor_p1_h1_t4')]
LSUSB_OUTPUT = [
{'bus': b, 'device': d, 'desc': t, 'id': (1000*b)+d}
@@ -92,6 +97,23 @@ T: Bus=02 Lev=00 Prnt=100 Port=03 Cnt=00 Dev#=101 Spd=000 MxCh=00
T: Bus=02 Lev=00 Prnt=101 Port=03 Cnt=00 Dev#=102 Spd=000 MxCh=00
'''
+RAW_LSUSB_OUTPUT = '''
+Bus 001 Device 011: FAST foo
+Bus 001 Device 012: FAST bar
+Bus 001 Device 013: baz
+Bus 002 Device 011: quux
+Bus 002 Device 020: My Test HUB
+Bus 002 Device 021: ID 0403:6001 battor_p7_h1_t0
+Bus 002 Device 022: ID 0403:6001 battor_p5_h1_t1
+Bus 002 Device 023: My Test Internal HUB
+Bus 002 Device 024: ID 0403:6001 battor_p3_h1_t2
+Bus 002 Device 025: ID 0403:6001 battor_p1_h1_t3
+Bus 002 Device 026: Not a Battery Monitor
+Bus 002 Device 100: My Test HUB
+Bus 002 Device 101: My Test Internal HUB
+Bus 002 Device 102: ID 0403:6001 battor_p1_h1_t4
+'''
+
LIST_TTY_OUTPUT = '''
ttyUSB0
Something-else-0
@@ -172,11 +194,11 @@ def isTestHub(node):
return False
return 'Test Internal HUB' in node.PortToDevice(4).desc
-TEST_HUB = find_usb_devices.HubType(isTestHub,
- {1:7,
- 2:6,
- 3:5,
- 4:{1:4, 2:3, 3:2, 4:1}})
+TEST_HUB = usb_hubs.HubType(isTestHub,
+ {1:7,
+ 2:6,
+ 3:5,
+ 4:{1:4, 2:3, 3:2, 4:1}})
class USBScriptTest(unittest.TestCase):
def setUp(self):
@@ -188,15 +210,17 @@ class USBScriptTest(unittest.TestCase):
return_value=USB_DEVICES_OUTPUT)
find_usb_devices._GetCommList = mock.Mock(
return_value=LIST_TTY_OUTPUT)
+ lsusb.raw_lsusb = mock.Mock(
+ return_value=RAW_LSUSB_OUTPUT)
def testIsBattor(self):
bd = find_usb_devices.GetBusNumberToDeviceTreeMap()
- self.assertTrue(find_usb_devices.IsBattor('ttyUSB3', bd))
- self.assertFalse(find_usb_devices.IsBattor('ttyUSB5', bd))
+ self.assertTrue(battor_device_mapping.IsBattor('ttyUSB3', bd))
+ self.assertFalse(battor_device_mapping.IsBattor('ttyUSB5', bd))
def testGetBattors(self):
bd = find_usb_devices.GetBusNumberToDeviceTreeMap()
- self.assertEquals(find_usb_devices.GetBattorList(bd),
+ self.assertEquals(battor_device_mapping.GetBattorList(bd),
['ttyUSB0', 'ttyUSB1', 'ttyUSB2',
'ttyUSB3', 'ttyUSB4'])
@@ -229,18 +253,28 @@ class USBScriptTest(unittest.TestCase):
1:'Battor3'})
self.assertEquals(result[1], {})
- def testDeviceDescriptions(self):
+ def testFastDeviceDescriptions(self):
bd = find_usb_devices.GetBusNumberToDeviceTreeMap()
dev_foo = bd[1].FindDeviceNumber(11)
dev_bar = bd[1].FindDeviceNumber(12)
dev_battor_p7_h1_t0 = bd[2].FindDeviceNumber(21)
+ self.assertEquals(dev_foo.desc, 'FAST foo')
+ self.assertEquals(dev_bar.desc, 'FAST bar')
+ self.assertEquals(dev_battor_p7_h1_t0.desc,
+ 'ID 0403:6001 battor_p7_h1_t0')
+
+ def testDeviceDescriptions(self):
+ bd = find_usb_devices.GetBusNumberToDeviceTreeMap(fast=False)
+ dev_foo = bd[1].FindDeviceNumber(11)
+ dev_bar = bd[1].FindDeviceNumber(12)
+ dev_battor_p7_h1_t0 = bd[2].FindDeviceNumber(21)
self.assertEquals(dev_foo.desc, 'foo')
self.assertEquals(dev_bar.desc, 'bar')
self.assertEquals(dev_battor_p7_h1_t0.desc,
- 'Future Technology Devices International battor_p7_h1_t0')
+ 'ID 0403:6001 battor_p7_h1_t0')
def testDeviceInformation(self):
- bd = find_usb_devices.GetBusNumberToDeviceTreeMap()
+ bd = find_usb_devices.GetBusNumberToDeviceTreeMap(fast=False)
dev_foo = bd[1].FindDeviceNumber(11)
dev_bar = bd[1].FindDeviceNumber(12)
dev_battor_p7_h1_t0 = bd[2].FindDeviceNumber(21)
@@ -249,7 +283,7 @@ class USBScriptTest(unittest.TestCase):
self.assertEquals(dev_battor_p7_h1_t0.info['id'], 2021)
def testSerialNumber(self):
- bd = find_usb_devices.GetBusNumberToDeviceTreeMap()
+ bd = find_usb_devices.GetBusNumberToDeviceTreeMap(fast=False)
dev_foo = bd[1].FindDeviceNumber(11)
dev_bar = bd[1].FindDeviceNumber(12)
dev_battor_p7_h1_t0 = bd[2].FindDeviceNumber(21)
@@ -257,6 +291,71 @@ class USBScriptTest(unittest.TestCase):
self.assertEquals(dev_bar.serial, 'BarSerial')
self.assertEquals(dev_battor_p7_h1_t0.serial, 'Battor0')
+ def testBattorDictMapping(self):
+ map_dict = {'Phone1':'Battor1', 'Phone2':'Battor2', 'Phone3':'Battor3'}
+ a1 = battor_device_mapping.GetBattorPathFromPhoneSerial(
+ 'Phone1', serial_map=map_dict)
+ a2 = battor_device_mapping.GetBattorPathFromPhoneSerial(
+ 'Phone2', serial_map=map_dict)
+ a3 = battor_device_mapping.GetBattorPathFromPhoneSerial(
+ 'Phone3', serial_map=map_dict)
+ self.assertEquals(a1, '/dev/ttyUSB1')
+ self.assertEquals(a2, '/dev/ttyUSB2')
+ self.assertEquals(a3, '/dev/ttyUSB3')
+
+ def testReadSerialMapFile(self):
+ curr_dir = os.path.dirname(os.path.realpath(__file__))
+ map_dict = battor_device_mapping.ReadSerialMapFile(
+ os.path.join(curr_dir, 'test', 'data', 'test_serial_map.json'))
+ self.assertEquals(len(map_dict.keys()), 3)
+ self.assertEquals(map_dict['Phone1'], 'Battor1')
+ self.assertEquals(map_dict['Phone2'], 'Battor2')
+ self.assertEquals(map_dict['Phone3'], 'Battor3')
+
+original_PPTSM = find_usb_devices.GetAllPhysicalPortToSerialMaps
+original_PPTTM = find_usb_devices.GetAllPhysicalPortToTTYMaps
+original_GBL = battor_device_mapping.GetBattorList
+original_GBNDM = find_usb_devices.GetBusNumberToDeviceTreeMap
+original_IB = battor_device_mapping.IsBattor
+original_GBSM = battor_device_mapping.GetBattorSerialNumbers
+
+def setup_battor_test(serial, tty, battor, bser=None):
+ serial_mapper = mock.Mock(return_value=serial)
+ tty_mapper = mock.Mock(return_value=tty)
+ battor_lister = mock.Mock(return_value=battor)
+ devtree = mock.Mock(return_value=None)
+ is_battor = mock.Mock(side_effect=lambda x, y: x in battor)
+ battor_serials = mock.Mock(return_value=bser)
+ find_usb_devices.GetAllPhysicalPortToSerialMaps = serial_mapper
+ find_usb_devices.GetAllPhysicalPortToTTYMaps = tty_mapper
+ battor_device_mapping.GetBattorList = battor_lister
+ find_usb_devices.GetBusNumberToDeviceTreeMap = devtree
+ battor_device_mapping.IsBattor = is_battor
+ battor_device_mapping.GetBattorSerialNumbers = battor_serials
+
+class BattorMappingTest(unittest.TestCase):
+ def tearDown(self):
+ find_usb_devices.GetAllPhysicalPortToSerialMaps = original_PPTSM
+ find_usb_devices.GetAllPhysicalPortToTTYMaps = original_PPTTM
+ battor_device_mapping.GetBattorList = original_GBL
+ find_usb_devices.GetBusNumberToDeviceTreeMap = original_GBNDM
+ battor_device_mapping.IsBattor = original_IB
+ battor_device_mapping.GetBattorSerialNumbers = original_GBSM
+
+ def test_generate_serial_map(self):
+ setup_battor_test([{1:'Phn1', 2:'Phn2', 3:'Phn3'},
+ {1:'Bat1', 2:'Bat2', 3:'Bat3'}],
+ [{},
+ {1:'ttyUSB0', 2:'ttyUSB1', 3:'ttyUSB2'}],
+ ['ttyUSB0', 'ttyUSB1', 'ttyUSB2'],
+ ['Bat1', 'Bat2', 'Bat3'])
+ result = battor_device_mapping.GenerateSerialMap()
+ self.assertEqual(len(result), 3)
+ self.assertEqual(result['Phn1'], 'Bat1')
+ self.assertEqual(result['Phn2'], 'Bat2')
+ self.assertEqual(result['Phn3'], 'Bat3')
+
+
if __name__ == "__main__":
logging.getLogger().setLevel(logging.DEBUG)
unittest.main(verbosity=2)
« no previous file with comments | « devil/devil/utils/find_usb_devices.py ('k') | devil/devil/utils/test/data/test_serial_map.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698