blob: a5a6aee042dbe752b6e9bfe6aa6d1c28ce1f30d1 [file] [log] [blame]
import unittest
from autotest_lib.client.common_lib.cros import get_usb_devices
from autotest_lib.client.common_lib.cros.cfm import cfm_usb_devices
# pylint:disable=missing-docstring
class GetDevicesTest(unittest.TestCase):
"""Unit test for file get_usb_devices."""
def test_extract_usb_data_empty(self):
self.assertEqual(get_usb_devices._extract_usb_data(""), [])
def test_get_list_audio_device_empty(self):
audio_device_list = get_usb_devices._get_list_audio_device([])
self.assertEqual(audio_device_list, [])
def test_get_list_audio_device_non_empty(self):
usbdata = [
{'intdriver': ['snd-usb-audio']},
{'intdriver': ['uvcvideo']},
]
audio_device_list = get_usb_devices._get_list_audio_device(usbdata)
self.assertEqual(len(audio_device_list), 1)
def test_get_device_prod(self):
for speaker in cfm_usb_devices.get_speakers():
self.assertEqual(
get_usb_devices._get_device_prod(speaker.vid_pid), speaker)
for camera in cfm_usb_devices.get_cameras():
self.assertEquals(
get_usb_devices._get_device_prod(camera.vid_pid), camera)
self.assertIsNone(get_usb_devices._get_device_prod('invalid'))
def test_get_vid_pid(self):
vid, pid = get_usb_devices._get_vid_and_pid('123:456')
self.assertEquals(vid, '123')
self.assertEquals(pid, '456')
def test_verify_usb_device_ok(self):
usbdata = [
{
'Vendor': '18d1',
'ProdID': '8001',
'intdriver': ['snd-usb-audio', 'snd-usb-audio', 'snd-usb-audio',
'usbhid'],
},
]
vid_pid = '%s:%s' % (usbdata[0]['Vendor'], usbdata[0]['ProdID'])
get_usb_devices._verify_usb_device_ok(usbdata, vid_pid)
usbdata[0]['intdriver'] = []
try:
get_usb_devices._verify_usb_device_ok(usbdata, vid_pid)
self.fail('Expected check to trigger RuntimeError')
except RuntimeError:
pass
if __name__ == "__main__":
unittest.main()