15
15
import os
16
16
import unittest
17
17
from collections import OrderedDict
18
- from unittest . mock import patch
18
+ from unittest import mock
19
19
20
20
# pylint:disable=no-name-in-module
21
21
# pylint:disable=import-error
34
34
OTEL_EXPORTER_JAEGER_ENDPOINT ,
35
35
OTEL_RESOURCE_ATTRIBUTES ,
36
36
)
37
- from opentelemetry .sdk .trace import Resource , TracerProvider
37
+ from opentelemetry .sdk .resources import SERVICE_NAME , Resource
38
+ from opentelemetry .sdk .trace import TracerProvider
39
+ from opentelemetry .sdk .trace .export import SpanExportResult
38
40
from opentelemetry .sdk .util .instrumentation import InstrumentationInfo
39
41
from opentelemetry .trace .status import Status , StatusCode
40
42
43
45
class TestJaegerExporter (unittest .TestCase ):
44
46
def setUp (self ):
45
47
# create and save span to be used in tests
46
- context = trace_api .SpanContext (
48
+ self . context = trace_api .SpanContext (
47
49
trace_id = 0x000000000000000000000000DEADBEEF ,
48
50
span_id = 0x00000000DEADBEF0 ,
49
51
is_remote = False ,
50
52
)
51
53
52
- self ._test_span = trace ._Span ("test_span" , context = context )
54
+ self ._test_span = trace ._Span ("test_span" , context = self . context )
53
55
self ._test_span .start ()
54
56
self ._test_span .end ()
55
57
@@ -62,7 +64,7 @@ def test_constructor_by_environment_variables(self):
62
64
63
65
collector_endpoint = "localhost:14250"
64
66
65
- env_patch = patch .dict (
67
+ env_patch = mock . patch .dict (
66
68
"os.environ" ,
67
69
{
68
70
OTEL_EXPORTER_JAEGER_ENDPOINT : collector_endpoint ,
@@ -438,3 +440,30 @@ def test_max_tag_value_length(self):
438
440
self .assertEqual ("hello" , tags_by_keys ["key_string" ])
439
441
self .assertEqual ("('tup" , tags_by_keys ["key_tuple" ])
440
442
self .assertEqual ("some_" , tags_by_keys ["key_resource" ])
443
+
444
+ def test_export (self ):
445
+ client_mock = mock .Mock ()
446
+ spans = []
447
+ exporter = JaegerExporter ()
448
+ exporter ._grpc_client = client_mock
449
+ status = exporter .export (spans )
450
+ self .assertEqual (SpanExportResult .SUCCESS , status )
451
+
452
+ def test_export_span_service_name (self ):
453
+ resource = Resource .create ({SERVICE_NAME : "test" })
454
+ span = trace ._Span (
455
+ "test_span" , context = self .context , resource = resource
456
+ )
457
+ span .start ()
458
+ span .end ()
459
+ client_mock = mock .Mock ()
460
+ exporter = JaegerExporter ()
461
+ exporter ._grpc_client = client_mock
462
+ exporter .export ([span ])
463
+ self .assertEqual (exporter .service_name , "test" )
464
+
465
+
466
+ class MockResponse :
467
+ def __init__ (self , status_code ):
468
+ self .status_code = status_code
469
+ self .text = status_code
0 commit comments