Exemplo n.º 1
0
    def test_wrong_path(self, mock_listdir):
        mock_listdir.side_effect = OSError()

        inspector.collect_pci_devices_info(self.data, self.failures)

        self.assertNotIn('pci_devices', self.data)
        self.assertEqual(1, len(self.failures._failures))
Exemplo n.º 2
0
    def test_success(self, mock_isdir, mock_isfile, mock_listdir):
        subdirs = ['foo', 'bar']
        mock_listdir.return_value = subdirs
        mock_isfile.return_value = True
        mock_isdir.return_value = True
        reads = [
            '0x1234', '0x5678', '0x060000', '0x01', '0x9876', '0x5432',
            '0x030000', '0x00'
        ]
        expected_pci_devices = [{
            'vendor_id': '1234',
            'product_id': '5678',
            'class': '060000',
            'revision': '01',
            'bus': 'foo'
        }, {
            'vendor_id': '9876',
            'product_id': '5432',
            'class': '030000',
            'revision': '00',
            'bus': 'bar'
        }]

        mock_open = mock.mock_open()
        with mock.patch('builtins.open', mock_open):
            mock_read = mock_open.return_value.read
            mock_read.side_effect = reads
            inspector.collect_pci_devices_info(self.data, self.failures)

        self.assertEqual(4 * len(subdirs), mock_open.call_count)
        self.assertListEqual(expected_pci_devices, self.data['pci_devices'])
    def test_wrong_path(self, mock_listdir):
        mock_listdir.side_effect = OSError()

        inspector.collect_pci_devices_info(self.data, self.failures)

        self.assertFalse('pci_devices' in self.data)
        self.assertEqual(1, len(self.failures._failures))
    def test_success(self, mock_isdir, mock_listdir):
        subdirs = ['foo', 'bar']
        mock_listdir.return_value = subdirs
        mock_isdir.return_value = True
        reads = ['0x1234', '0x5678', '0x9876', '0x5432']
        expected_pci_devices = [{'vendor_id': '1234', 'product_id': '5678'},
                                {'vendor_id': '9876', 'product_id': '5432'}]

        mock_open = mock.mock_open()
        with mock.patch('six.moves.builtins.open', mock_open):
            mock_read = mock_open.return_value.read
            mock_read.side_effect = reads
            inspector.collect_pci_devices_info(self.data, self.failures)

        self.assertEqual(2 * len(subdirs), mock_open.call_count)
        self.assertListEqual(expected_pci_devices, self.data['pci_devices'])
    def test_bad_pci_device_info(self, mock_isdir, mock_listdir):
        subdirs = ['foo', 'bar', 'baz']
        mock_listdir.return_value = subdirs
        mock_isdir.return_value = True
        reads = ['0x1234', '0x5678', '0x9876', IOError, IndexError, '0x5432']
        expected_pci_devices = [{'vendor_id': '1234', 'product_id': '5678'}]

        mock_open = mock.mock_open()
        with mock.patch('six.moves.builtins.open', mock_open):
            mock_read = mock_open.return_value.read
            mock_read.side_effect = reads
            inspector.collect_pci_devices_info(self.data, self.failures)

        # note(sborkows): due to throwing IOError, the corresponding mock_open
        # will not be called, so there are 5 mock_open calls in total
        self.assertEqual(5, mock_open.call_count)
        self.assertListEqual(expected_pci_devices, self.data['pci_devices'])
    def test_bad_pci_device_info(self, mock_isdir, mock_listdir):
        subdirs = ['foo', 'bar', 'baz']
        mock_listdir.return_value = subdirs
        mock_isdir.return_value = True
        reads = ['0x1234', '0x5678', '0x9876', IOError, IndexError,
                 '0x5432']
        expected_pci_devices = [{'vendor_id': '1234', 'product_id': '5678'}]

        mock_open = mock.mock_open()
        with mock.patch('six.moves.builtins.open', mock_open):
            mock_read = mock_open.return_value.read
            mock_read.side_effect = reads
            inspector.collect_pci_devices_info(self.data, self.failures)

        # note(sborkows): due to throwing IOError, the corresponding mock_open
        # will not be called, so there are 5 mock_open calls in total
        self.assertEqual(5, mock_open.call_count)
        self.assertListEqual(expected_pci_devices, self.data['pci_devices'])