Пример #1
0
    def test_finish(self):
        tracer = PyramidTracer(DummyTracer())
        req = DummyRequest()
        req.matched_route = DummyRoute()

        span = tracer._apply_tracing(req, [])
        tracer._finish_tracing(req)
        self.assertTrue(span._is_finished)
Пример #2
0
    def test_apply_tracing_operation_name(self):
        tracer = PyramidTracer(DummyTracer())
        req = DummyRequest()
        req.matched_route = DummyRoute('testing_foo')

        span = tracer._apply_tracing(req, [])
        tracer._finish_tracing(req)
        self.assertEqual('/', span.operation_name)
Пример #3
0
    def test_apply_tracing_matched_route(self):
        tracer = PyramidTracer(DummyTracer())
        req = DummyRequest()
        req.matched_route = DummyRoute('foo')

        span = tracer._apply_tracing(req, [])
        tracer._finish_tracing(req)
        self.assertEqual({
            'component': 'pyramid',
            'pyramid.route': 'foo',
        }, span._tags, '#A0')
Пример #4
0
    def test_apply_tracing_operation_name_func(self):
        def test_func(request):
            self.assertIsNotNone(request)
            return 'testing_name'

        tracer = PyramidTracer(DummyTracer(), operation_name_func=test_func)
        req = DummyRequest()
        req.matched_route = DummyRoute('testing_foo')

        span = tracer._apply_tracing(req, [])
        tracer._finish_tracing(req)
        self.assertEqual('testing_name', span.operation_name)
Пример #5
0
 def test_ctor_default(self):
     tracer = PyramidTracer(DummyTracer())
     self.assertIsNotNone(tracer._tracer, '#A0')
     self.assertFalse(tracer._trace_all, '#A1')
     self.assertEqual({}, tracer._current_spans, '#A2')
     self.assertEqual(default_operation_name_func,
                      tracer._operation_name_func, '#A3')
Пример #6
0
 def test_get_span(self):
     tracer = PyramidTracer(DummyTracer())
     req = DummyRequest()
     tracer._apply_tracing(req, [])
     self.assertIsNotNone(tracer.get_span(req), '#B0')
     self.assertIsNone(tracer.get_span(DummyRequest()), '#B1')
     self.assertEqual(1, len(tracer._current_spans), '#B2')
Пример #7
0
    def test_decorator_exc(self):
        base_tracer = DummyTracer()
        tracer = PyramidTracer(base_tracer)
        req = DummyRequest()

        @tracer.trace('method')
        def sample_func(req):
            raise ValueError('Testing exception')

        try:
            sample_func(req)
        except ValueError:
            pass

        self.assertIsNone(tracer.get_span(req), '#A0')
        self.assertEqual(1, len(base_tracer.spans), '#A1')
        self.assertTrue(base_tracer.spans[0]._is_finished, '#A2')
        self.assertEqual({
            'component': 'pyramid',
            'error': 'true',
            'method': 'GET',
        }, base_tracer.spans[0]._tags, '#A2')
Пример #8
0
    def test_decorator(self):
        base_tracer = DummyTracer()
        tracer = PyramidTracer(base_tracer)

        @tracer.trace()
        def sample_func(req):
            tracer.get_span(req).set_tag('component', 'pyramid-custom')
            return "Hello, Tests!"

        sample_func(DummyRequest())
        self.assertEqual(1, len(base_tracer.spans), '#A0')
        self.assertEqual({'component': 'pyramid-custom'}, base_tracer.spans[0]._tags, '#A1')
        self.assertEqual(True, base_tracer.spans[0]._is_finished, '#A2')
Пример #9
0
    def test_apply_tracing_child(self):
        tracer = PyramidTracer(DummyTracer(returnContext=True))
        span = tracer._apply_tracing(DummyRequest(), [])
        self.assertIsNotNone(span.child_of, '#A0')

        tracer = PyramidTracer(DummyTracer(returnContext=False))
        span = tracer._apply_tracing(DummyRequest(), [])
        self.assertIsNone(span.child_of, '#B0')
Пример #10
0
    def test_decorator_attributes(self):
        base_tracer = DummyTracer()
        tracer = PyramidTracer(base_tracer)

        @tracer.trace('method', 'dontexist')
        def sample_func(req):
            return "Hello, Tests!"

        sample_func(DummyRequest())
        self.assertEqual(1, len(base_tracer.spans), '#A0')
        self.assertEqual({
            'component': 'pyramid',
            'method': 'GET'
        }, base_tracer.spans[0]._tags, '#A1')
        self.assertEqual(True, base_tracer.spans[0]._is_finished, '#A2')
Пример #11
0
    def test_apply_tracing_attrs(self):
        tracer = PyramidTracer(DummyTracer())
        req = DummyRequest()

        # Make sure component is available since the start.
        span = tracer._apply_tracing(req, [])
        self.assertEqual({'component': 'pyramid'}, span._tags, 'A#0')
        tracer._finish_tracing(req)
        self.assertEqual({'component': 'pyramid'}, span._tags, '#A1')

        span = tracer._apply_tracing(req, ['dont', 'exist'])
        tracer._finish_tracing(req)
        self.assertEqual({'component': 'pyramid'}, span._tags, '#B0')

        span = tracer._apply_tracing(req, ['host', 'path'])
        tracer._finish_tracing(req)
        self.assertEqual(
            {
                'component': 'pyramid',
                'host': 'example.com:80',
                'path': '/'
            }, span._tags, '#C0')
Пример #12
0
 def test_apply_tracing_corrupted(self):
     tracer = PyramidTracer(
         DummyTracer(opentracing.SpanContextCorruptedException()))
     tracer._apply_tracing(DummyRequest(), [])
Пример #13
0
 def test_apply_tracing_invalid(self):
     tracer = PyramidTracer(
         DummyTracer(opentracing.InvalidCarrierException()))
     tracer._apply_tracing(DummyRequest(), [])
Пример #14
0
    def test_ctor(self):
        tracer = PyramidTracer(DummyTracer(), trace_all=True)
        self.assertTrue(tracer._trace_all, '#A0')

        tracer = PyramidTracer(DummyTracer(), trace_all=False)
        self.assertFalse(tracer._trace_all, '#B0')
Пример #15
0
    def test_ctor2(self):
        def test_func(request):
            return None

        tracer = PyramidTracer(DummyTracer(), operation_name_func=test_func)
        self.assertEqual(test_func, tracer._operation_name_func, '#A0')
Пример #16
0
 def test_finish_none(self):
     tracer = PyramidTracer(DummyTracer())
     tracer._finish_tracing(DummyRequest())
Пример #17
0
 def test_get_span_none(self):
     tracer = PyramidTracer(DummyTracer())
     self.assertIsNone(tracer.get_span(DummyRequest()), '#A0')