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)
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)
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')
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)
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')
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')
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')
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')
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')
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')
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')
def test_apply_tracing_corrupted(self): tracer = PyramidTracer( DummyTracer(opentracing.SpanContextCorruptedException())) tracer._apply_tracing(DummyRequest(), [])
def test_apply_tracing_invalid(self): tracer = PyramidTracer( DummyTracer(opentracing.InvalidCarrierException())) tracer._apply_tracing(DummyRequest(), [])
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')
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')
def test_finish_none(self): tracer = PyramidTracer(DummyTracer()) tracer._finish_tracing(DummyRequest())
def test_get_span_none(self): tracer = PyramidTracer(DummyTracer()) self.assertIsNone(tracer.get_span(DummyRequest()), '#A0')