Home | History | Annotate | Download | only in network
      1 """Tests for rf_switch_client_box."""
      2 
      3 import common
      4 import mock
      5 import unittest
      6 
      7 from autotest_lib.server.cros.network import rf_switch_client_box
      8 
      9 
     10 class RfSwitchClientBoxTest(unittest.TestCase):
     11     """Tests for the RfSwitchClientBox."""
     12 
     13 
     14     def setUp(self):
     15         """Initial set up for the tests."""
     16         rf_switch_client_box.frontend = mock.MagicMock()
     17         self.client_box_host = rf_switch_client_box.frontend.Host('', '')
     18         self.client_box_host.hostname = 'chromeos9-clientbox1'
     19         self.client_box_host.labels = [
     20                 'rf_switch_1', 'client_box_1', 'rf_switch_client']
     21 
     22 
     23     def testGetDevices(self):
     24         """Test to get all devices from a Client Box."""
     25         rf_switch_client_box.frontend = mock.MagicMock()
     26         dut_host = rf_switch_client_box.frontend.Host('', '')
     27         dut_host.hostname = 'chromeos9-device1'
     28         dut_host.labels = ['rf_switch_1', 'client_box_1', 'rf_switch_dut']
     29         # Add a device to the Client Box and verify.
     30         afe_instance = rf_switch_client_box.frontend.AFE()
     31         afe_instance.get_hosts.return_value = [self.client_box_host, dut_host]
     32         client_box = rf_switch_client_box.ClientBox(self.client_box_host)
     33         devices = client_box.get_devices()
     34         self.assertEqual(len(devices), 1)
     35         device = devices[0]
     36         self.assertEqual(device, 'chromeos9-device1')
     37 
     38 
     39     def testNoDevicesInClientbox(self):
     40         """Test for no devices in the Client Box."""
     41         rf_switch_client_box.frontend = mock.MagicMock()
     42         afe_instance =rf_switch_client_box.frontend.AFE()
     43         afe_instance.get_hosts.return_value = [self.client_box_host]
     44         client_box = rf_switch_client_box.ClientBox(self.client_box_host)
     45         devices = client_box.get_devices()
     46         self.assertEqual(len(devices), 0)
     47 
     48 
     49     def testGetOtherDevices(self):
     50         """Test to get stumpy from ClientBox if installed."""
     51         rf_switch_client_box.frontend = mock.MagicMock()
     52         stumpy_host = rf_switch_client_box.frontend.Host('', '')
     53         stumpy_host.hostname = 'chromeos9-stumpy1'
     54         stumpy_host.labels = ['rf_switch_1', 'client_box_1', 'stumpy']
     55         afe_instance = rf_switch_client_box.frontend.AFE()
     56         afe_instance.get_hosts.side_effect = [[stumpy_host]]
     57         client_box = rf_switch_client_box.ClientBox(self.client_box_host)
     58         self.assertEqual(
     59                 client_box.get_devices_using_labels(stumpy_host.labels),
     60                 ['chromeos9-stumpy1'])
     61 
     62 
     63     def testGetOtherDeviceWithWrongLabels(self):
     64         """Test to get Devices when using wrong list of labels."""
     65         rf_switch_client_box.frontend = mock.MagicMock()
     66         stumpy_host = rf_switch_client_box.frontend.Host('', '')
     67         stumpy_host.hostname = 'chromeos9-stumpy1'
     68         stumpy_host.labels = ['rf_switch_1', 'client_box_1', 'stumpy']
     69         list_of_labels = ['rf_switch_1', 'client_box_1', 'packet_capture']
     70         afe_instance = rf_switch_client_box.frontend.AFE()
     71         afe_instance.get_hosts.side_effect = [[self.client_box_host],
     72                                               [stumpy_host]]
     73         client_box = rf_switch_client_box.ClientBox(self.client_box_host)
     74         self.assertEqual(
     75                 len(client_box.get_devices_using_labels(list_of_labels)), 0)
     76 
     77 
     78 if __name__ == '__main__':
     79     unittest.main()
     80 
     81