12
12
# See the License for the specific language governing permissions and
13
13
# limitations under the License.
14
14
15
+ from unittest .mock import patch
16
+
15
17
from flask import request
16
18
17
- from opentelemetry import trace as trace_api
19
+ from opentelemetry import trace
18
20
19
21
20
22
def expected_attributes (override_attributes ):
@@ -36,6 +38,7 @@ def expected_attributes(override_attributes):
36
38
37
39
38
40
class InstrumentationTest :
41
+
39
42
# pylint: disable=no-member
40
43
def test_only_strings_in_environ (self ):
41
44
"""
@@ -65,7 +68,7 @@ def test_simple_uninstrument(self):
65
68
span_list = self .memory_exporter .get_finished_spans ()
66
69
self .assertEqual (len (span_list ), 1 )
67
70
self .assertEqual (span_list [0 ].name , "hello_endpoint" )
68
- self .assertEqual (span_list [0 ].kind , trace_api .SpanKind .SERVER )
71
+ self .assertEqual (span_list [0 ].kind , trace .SpanKind .SERVER )
69
72
self .assertEqual (span_list [0 ].attributes , expected_attrs )
70
73
71
74
def test_404 (self ):
@@ -84,7 +87,7 @@ def test_404(self):
84
87
span_list = self .memory_exporter .get_finished_spans ()
85
88
self .assertEqual (len (span_list ), 1 )
86
89
self .assertEqual (span_list [0 ].name , "/bye" )
87
- self .assertEqual (span_list [0 ].kind , trace_api .SpanKind .SERVER )
90
+ self .assertEqual (span_list [0 ].kind , trace .SpanKind .SERVER )
88
91
self .assertEqual (span_list [0 ].attributes , expected_attrs )
89
92
90
93
def test_internal_error (self ):
@@ -102,5 +105,22 @@ def test_internal_error(self):
102
105
span_list = self .memory_exporter .get_finished_spans ()
103
106
self .assertEqual (len (span_list ), 1 )
104
107
self .assertEqual (span_list [0 ].name , "hello_endpoint" )
105
- self .assertEqual (span_list [0 ].kind , trace_api .SpanKind .SERVER )
108
+ self .assertEqual (span_list [0 ].kind , trace .SpanKind .SERVER )
106
109
self .assertEqual (span_list [0 ].attributes , expected_attrs )
110
+
111
+ @patch .dict (
112
+ "os.environ" , # type: ignore
113
+ {
114
+ "OPENTELEMETRY_PYTHON_FLASK_EXCLUDED_HOSTS" : (
115
+ "http://localhost/excluded"
116
+ ),
117
+ "OPENTELEMETRY_PYTHON_FLASK_EXCLUDED_PATHS" : "excluded2" ,
118
+ },
119
+ )
120
+ def test_excluded_path (self ):
121
+ self .client .get ("/hello/123" )
122
+ self .client .get ("/excluded" )
123
+ self .client .get ("/excluded2" )
124
+ span_list = self .memory_exporter .get_finished_spans ()
125
+ self .assertEqual (len (span_list ), 1 )
126
+ self .assertEqual (span_list [0 ].name , "hello_endpoint" )
0 commit comments