1212# See the License for the specific language governing permissions and
1313# limitations under the License.
1414
15+ from unittest .mock import patch
16+
1517from flask import request
1618
17- from opentelemetry import trace as trace_api
19+ from opentelemetry import trace
1820
1921
2022def expected_attributes (override_attributes ):
@@ -36,6 +38,7 @@ def expected_attributes(override_attributes):
3638
3739
3840class InstrumentationTest :
41+
3942 # pylint: disable=no-member
4043 def test_only_strings_in_environ (self ):
4144 """
@@ -65,7 +68,7 @@ def test_simple_uninstrument(self):
6568 span_list = self .memory_exporter .get_finished_spans ()
6669 self .assertEqual (len (span_list ), 1 )
6770 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 )
6972 self .assertEqual (span_list [0 ].attributes , expected_attrs )
7073
7174 def test_404 (self ):
@@ -84,7 +87,7 @@ def test_404(self):
8487 span_list = self .memory_exporter .get_finished_spans ()
8588 self .assertEqual (len (span_list ), 1 )
8689 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 )
8891 self .assertEqual (span_list [0 ].attributes , expected_attrs )
8992
9093 def test_internal_error (self ):
@@ -102,5 +105,22 @@ def test_internal_error(self):
102105 span_list = self .memory_exporter .get_finished_spans ()
103106 self .assertEqual (len (span_list ), 1 )
104107 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 )
106109 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