def test_init_but_errors(self, insanic_application, monkeypatch): def mock_check_prerequisites(*args, **kwargs): return ["FAILED"] monkeypatch.setattr(Incendiary, "_check_prerequisites", mock_check_prerequisites) Incendiary.init_app(insanic_application) assert insanic_application.config.INCENDIARY_XRAY_ENABLED is False
def sanic_test_server_2(self, loop, test_server, monkeypatch): sr = { "version": 1, "rules": [], "default": { "fixed_target": 0, "rate": 0 }, } monkeypatch.setattr(settings, "INCENDIARY_XRAY_SAMPLING_RULES", sr, raising=False) monkeypatch.setattr(settings, "INCENDIARY_XRAY_ENABLED", False, raising=False) monkeypatch.setattr(Incendiary, "_check_prerequisites", _mock_check_prerequisites) insanic_application = Insanic("incendiary") Incendiary.init_app(insanic_application) class MockView(InsanicView): authentication_classes = [] permission_classes = [] async def get(self, request, *args, **kwargs): segment = request.app.xray_recorder.current_segment() try: assert segment.sampled is bool( int(request.query_params.get("expected_sample"))) assert segment.in_progress is True except AssertionError: traceback.print_exc() raise return json({"i am": "service_2"}, status=201) class ErrorView(InsanicView): authentication_classes = [] permission_classes = [] async def get(self, request, *args, **kwargs): raise BadRequest("errors") insanic_application.add_route(MockView.as_view(), "/trace_2") insanic_application.add_route(ErrorView.as_view(), "/trace_error_2") return loop.run_until_complete( test_server(insanic_application, host="0.0.0.0"))
def test_init(self, insanic_application, monkeypatch): def mock_check_prerequisites(*args, **kwargs): return [] monkeypatch.setattr(Incendiary, "_check_prerequisites", mock_check_prerequisites) Incendiary.init_app(insanic_application) assert "start_trace" in [ m.__name__ for m in insanic_application.request_middleware ] assert "end_trace" in [ m.__name__ for m in insanic_application.response_middleware ] from insanic.services.registry import registry assert registry.service_class == IncendiaryService assert hasattr(registry.service_class, "xray_recorder") assert (insanic_application.listeners["before_server_start"] [1].__name__ == "before_server_start_start_tracing")
def incendiary_application(): app = Insanic("tracer") Incendiary.init_app(app, AsyncAWSXRayRecorder()) return app