def test_all_services_running(self): server_types = dict(proxy=True, object=True, container=True, account=True) expected_services = list(s for s in swift_services.SERVICES if s.startswith(tuple(server_types.keys()))) create_fake_process_entries(self.testdir, expected_services) with mock.patch('swiftlm.utils.metricdata.timestamp', lambda *args: self.fake_time): with mock.patch('swiftlm.swift.swift_services.server_type', lambda *args: server_types): with mock.patch('swiftlm.swift.swift_services.PROC_DIR', self.testdir): results = swift_services.main() self.assertEqual(len(expected_services), len(results)) for r in results: metric = r.metric() actual_service = metric['dimensions']['component'] self.assertTrue(actual_service in expected_services) expected_services.remove(actual_service) expected_dimensions = dict(self.expected_dimensions_base) expected_dimensions.update(dict(component=actual_service)) expected_value_meta = dict(msg=actual_service + ' is running') expected_metric = dict(self.expected_metric_base) expected_metric.update(dict(dimensions=expected_dimensions, value=Severity.ok, value_meta=expected_value_meta)) self.assertEqual(expected_metric, metric) # sanity check - all expected services found in actual metrics self.assertFalse(expected_services)
def test_all_services_running(self): server_types = dict(proxy=True, object=True, container=True, account=True) expected_services = list(s for s in swift_services.SERVICES if s.startswith(tuple(server_types.keys()))) create_fake_process_entries(self.testdir, expected_services) with mock.patch('swiftlm.utils.metricdata.timestamp', lambda *args: self.fake_time): with mock.patch('swiftlm.swift.swift_services.server_type', lambda *args: server_types): with mock.patch('swiftlm.swift.swift_services.PROC_DIR', self.testdir): results = swift_services.main() self.assertEqual(len(expected_services), len(results)) for r in results: metric = r.metric() actual_service = metric['dimensions']['component'] self.assertTrue(actual_service in expected_services) expected_services.remove(actual_service) expected_dimensions = dict(self.expected_dimensions_base) expected_dimensions.update(dict(component=actual_service)) expected_value_meta = dict(msg=actual_service + ' is running') expected_metric = dict(self.expected_metric_base) expected_metric.update( dict(dimensions=expected_dimensions, value=Severity.ok, value_meta=expected_value_meta)) self.assertEqual(expected_metric, metric) # sanity check - all expected services found in actual metrics self.assertFalse(expected_services)