#!/usr/bin/env python # Copyright (c) 2017 The WebRTC project authors. All Rights Reserved. # # Use of this source code is governed by a BSD-style license # that can be found in the LICENSE file in the root of the source # tree. An additional intellectual property rights grant can be found # in the file PATENTS. All contributing project authors may # be found in the AUTHORS file in the root of the source tree. import glob import unittest from video_analysis import FindUsbPortForV4lDevices class RunVideoAnalysisTest(unittest.TestCase): def SetGlobPath(self, path1, path2): self.path1 = path1 self.path2 = path2 def setUp(self): self.path1 = '' self.path2 = '' self.request_nbr = 1 def GlobMock(string): # Eat incoming string. del string if self.request_nbr == 1: self.request_nbr += 1 return self.path1 else: self.request_nbr = 1 return self.path2 # Override the glob function with our own that returns a string set by the # test. glob.glob = GlobMock # Verifies that the correct USB id is returned. def testFindUSBPortForV4lDevices(self): short_path1 = ('/sys/bus/usb/devices/usb1/1-1/driver/4-4/4-4:1.0/' 'video4linux/video0') short_path2 = ('/sys/bus/usb/devices/usb1/1-1/driver/4-3/4-3:1.0/' 'video4linux/video1') self.SetGlobPath(short_path1, short_path2) short_usb_ids = ['4-4', '4-3'] self.assertEqual(FindUsbPortForV4lDevices('video0', 'video1'), short_usb_ids) long_path1 = ('/sys/bus/usb/devices/usb1/1-1/driver/3-3/3-3.1:1.0/' 'video4linux/video0') long_path2 = ('/sys/bus/usb/devices/usb1/1-1/driver/3-2/3-2.1:1.0/' 'video4linux/video1') self.SetGlobPath(long_path1, long_path2) long_usb_ids = ['3-3.1', '3-2.1'] self.assertEqual(FindUsbPortForV4lDevices('video0', 'video1'), long_usb_ids) def testFindUSBPortForV4lDevicesNoDevice(self): no_device_found = ('') v4l_device = ('/sys/bus/usb/devices/usb1/1-1/driver/3-2/3-2.1:1.0/' 'video4linux/video1') self.SetGlobPath(no_device_found, v4l_device) empty_list = [] self.assertEqual(FindUsbPortForV4lDevices('video0', 'video1'), empty_list) if __name__ == "__main__": unittest.main()