Esempio n. 1
0
    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
Esempio n. 2
0
    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"))
Esempio n. 3
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")
Esempio n. 4
0
def incendiary_application():
    app = Insanic("tracer")
    Incendiary.init_app(app, AsyncAWSXRayRecorder())

    return app