import unittest from types import SimpleNamespace from prometheus_client import REGISTRY, generate_latest from backend.app.metrics import record_api, record_remote class MetricsTests(unittest.TestCase): def test_route_template_not_private_path(self): request = SimpleNamespace(method='GET', scope={'route': SimpleNamespace(path='/requests/{request_id}')}) before = REGISTRY.get_sample_value('magent_api_requests_total', {'method': 'GET', 'route': '/requests/{request_id}', 'status': '200'}) or 0 record_api(request, 200, .1) self.assertEqual(REGISTRY.get_sample_value('magent_api_requests_total', {'method': 'GET', 'route': '/requests/{request_id}', 'status': '200'}), before + 1) def test_unknown_route_and_service_are_bounded(self): record_api(SimpleNamespace(method='SECRET-USER-METHOD', scope={}), 404, .01) record_remote('secret-service-name', 'GET', 'error', .1) data = generate_latest().decode() self.assertNotIn('secret-service-name', data) self.assertNotIn('SECRET-USER-METHOD', data) self.assertIn('route="unmatched"', data)