Пример #1
0
    def test_no_errors_found(self, popen):
        # Expect no MetricData returned when no errors found
        popen.return_value = MagicMock(spec=subprocess.Popen,
                                       communicate=lambda: (None, output1))
        with patch('swiftlm.utils.metricdata.timestamp',
                   lambda *args: self.fake_time):
            results = drive_audit.main()

        scenarios = (({'kernel_device': 'sdc',
                      'mount_point': '/srv/node/sdc1'}, Severity.ok,
                      'No errors found on device mounted at: /srv/node/sdc1'),
                     ({'kernel_device': 'sdd',
                       'mount_point': '/srv/node/sdd1'}, Severity.ok,
                      'No errors found on device mounted at: /srv/node/sdd1'))
        expected = []
        for scenario in scenarios:
            expected_dimensions = dict(self.expected_dimensions_base)
            expected_dimensions.update(scenario[0])
            expected_value_meta = dict(msg=scenario[2])
            expected_metric = dict(self.expected_metric_base)
            expected_metric.update(dict(dimensions=expected_dimensions,
                                        value=scenario[1],
                                        value_meta=expected_value_meta))
            expected.append(expected_metric)
        self.assertEqual(len(expected), len(results), results)
        for result in results:
            self.assertTrue(result.metric() in expected, result.metric())
            # consume expected result once it has been matched
            expected.remove(result.metric())
        self.assertFalse(expected)
Пример #2
0
 def test_errors_found_but_not_devices(self, popen):
     popen.return_value = MagicMock(spec=subprocess.Popen,
                                    communicate=lambda: (None, output2))
     with patch('swiftlm.utils.metricdata.timestamp',
                lambda *args: self.fake_time):
         result = drive_audit.main()
     self.assertTrue(isinstance(result, MetricData))
     expected_dimensions = dict(self.expected_dimensions_base)
     expected_value_meta = dict(msg='No devices found')
     expected_metric = dict(self.expected_metric_base)
     expected_metric.update(dict(dimensions=expected_dimensions,
                                 value=Severity.warn,
                                 value_meta=expected_value_meta))
     self.assertEquals(expected_metric, result.metric())