def test_stop_non_root(self, mock_time): tracer = MockTracer() tracer.set_transport_configured(configured=True) tracer.get_context().push(zipkin.create_attrs_for_span()) context = tracer.zipkin_span( service_name="test_service", span_name="test_span", ) context.start() context.stop() assert len(tracer.get_spans()) == 1 endpoint = create_endpoint(service_name="test_service") assert tracer.get_spans()[0] == Span( trace_id=context.zipkin_attrs.trace_id, name="test_span", parent_id=context.zipkin_attrs.parent_span_id, span_id=context.zipkin_attrs.span_id, kind=Kind.LOCAL, timestamp=123, duration=0, annotations={}, local_endpoint=endpoint, remote_endpoint=None, tags={}, ) assert tracer.is_transport_configured() is True
def test_stop_non_root_ts_duration_overridden(self): tracer = MockTracer() tracer.set_transport_configured(configured=True) tracer.get_context().push(zipkin.create_attrs_for_span()) ts = time.time() context = tracer.zipkin_span( service_name='test_service', span_name='test_span', timestamp=ts, duration=25, ) context.start() context.stop() assert len(tracer.get_spans()) == 1 endpoint = create_endpoint(service_name='test_service') assert tracer.get_spans()[0] == Span( trace_id=context.zipkin_attrs.trace_id, name='test_span', parent_id=context.zipkin_attrs.parent_span_id, span_id=context.zipkin_attrs.span_id, kind=Kind.LOCAL, timestamp=ts, duration=25, annotations={}, local_endpoint=endpoint, remote_endpoint=None, tags={}, ) assert tracer.is_transport_configured() is True
def test_init(self, mock_generate_kind): # Test that all arguments are correctly saved zipkin_attrs = ZipkinAttrs(None, None, None, None, None) transport = MockTransportHandler() firehose = MockTransportHandler() stack = Stack([]) span_storage = SpanStorage() tracer = MockTracer() context = tracer.zipkin_span( service_name="test_service", span_name="test_span", zipkin_attrs=zipkin_attrs, transport_handler=transport, max_span_batch_size=10, annotations={"test_annotation": 1}, binary_annotations={"status": "200"}, port=80, sample_rate=100.0, include=("cs", "cr"), add_logging_annotation=True, report_root_timestamp=True, use_128bit_trace_id=True, host="127.0.0.255", context_stack=stack, span_storage=span_storage, firehose_handler=firehose, kind=Kind.CLIENT, timestamp=1234, duration=10, encoding=Encoding.V2_JSON, ) assert context.service_name == "test_service" assert context.span_name == "test_span" assert context.zipkin_attrs_override == zipkin_attrs assert context.transport_handler == transport assert context.max_span_batch_size == 10 assert context.annotations == {"test_annotation": 1} assert context.binary_annotations == {"status": "200"} assert context.port == 80 assert context.sample_rate == 100.0 assert context.add_logging_annotation is True assert context.report_root_timestamp_override is True assert context.use_128bit_trace_id is True assert context.host == "127.0.0.255" assert context._context_stack == stack assert context._span_storage == span_storage assert context.firehose_handler == firehose assert mock_generate_kind.call_count == 1 assert mock_generate_kind.call_args == mock.call( context, Kind.CLIENT, ("cs", "cr"), ) assert context.timestamp == 1234 assert context.duration == 10 assert context.encoding == Encoding.V2_JSON assert context._tracer == tracer # Check for backward compatibility assert tracer.get_spans() == span_storage assert tracer.get_context() == stack