2
2
# (c) Copyright Instana Inc. 2020
3
3
4
4
from __future__ import absolute_import
5
+ from multiprocessing .pool import ThreadPool
6
+ from time import sleep
7
+ import unittest
5
8
6
9
import urllib3
7
- import unittest
8
- import sys
9
10
import requests
10
11
11
- from multiprocessing .pool import ThreadPool
12
- from time import sleep
13
-
14
12
import tests .apps .flask_app
15
13
from ..helpers import testenv
16
14
from instana .singletons import agent , tracer
@@ -81,7 +79,7 @@ def test_get_request(self):
81
79
urllib3_span = spans [1 ]
82
80
test_span = spans [2 ]
83
81
84
- assert (r )
82
+ self . assertTrue (r )
85
83
self .assertEqual (200 , r .status )
86
84
self .assertIsNone (tracer .active_span )
87
85
@@ -128,7 +126,7 @@ def test_get_request_with_query(self):
128
126
urllib3_span = spans [1 ]
129
127
test_span = spans [2 ]
130
128
131
- assert (r )
129
+ self . assertTrue (r )
132
130
self .assertEqual (200 , r .status )
133
131
self .assertIsNone (tracer .active_span )
134
132
@@ -176,7 +174,7 @@ def test_get_request_with_alt_query(self):
176
174
urllib3_span = spans [1 ]
177
175
test_span = spans [2 ]
178
176
179
- assert (r )
177
+ self . assertTrue (r )
180
178
self .assertEqual (200 , r .status )
181
179
self .assertIsNone (tracer .active_span )
182
180
@@ -224,7 +222,7 @@ def test_put_request(self):
224
222
urllib3_span = spans [1 ]
225
223
test_span = spans [2 ]
226
224
227
- assert (r )
225
+ self . assertTrue (r )
228
226
self .assertEqual (404 , r .status )
229
227
self .assertIsNone (tracer .active_span )
230
228
@@ -273,7 +271,7 @@ def test_301_redirect(self):
273
271
urllib3_span1 = spans [3 ]
274
272
test_span = spans [4 ]
275
273
276
- assert (r )
274
+ self . assertTrue (r )
277
275
self .assertEqual (200 , r .status )
278
276
self .assertIsNone (tracer .active_span )
279
277
@@ -345,7 +343,7 @@ def test_302_redirect(self):
345
343
urllib3_span1 = spans [3 ]
346
344
test_span = spans [4 ]
347
345
348
- assert (r )
346
+ self . assertTrue (r )
349
347
self .assertEqual (200 , r .status )
350
348
self .assertIsNone (tracer .active_span )
351
349
@@ -415,7 +413,7 @@ def test_5xx_request(self):
415
413
urllib3_span = spans [1 ]
416
414
test_span = spans [2 ]
417
415
418
- assert (r )
416
+ self . assertTrue (r )
419
417
self .assertEqual (504 , r .status )
420
418
self .assertIsNone (tracer .active_span )
421
419
@@ -478,7 +476,7 @@ def test_exception_logging(self):
478
476
479
477
wsgi_span , urllib3_span , test_span = spans
480
478
481
- assert (r )
479
+ self . assertTrue (r )
482
480
self .assertEqual (500 , r .status )
483
481
self .assertIsNone (tracer .active_span )
484
482
@@ -569,7 +567,7 @@ def test_requestspkg_get(self):
569
567
urllib3_span = spans [1 ]
570
568
test_span = spans [2 ]
571
569
572
- assert (r )
570
+ self . assertTrue (r )
573
571
self .assertEqual (200 , r .status_code )
574
572
self .assertIsNone (tracer .active_span )
575
573
@@ -619,7 +617,7 @@ def test_requestspkg_get_with_custom_headers(self):
619
617
urllib3_span = spans [1 ]
620
618
test_span = spans [2 ]
621
619
622
- assert (r )
620
+ self . assertTrue (r )
623
621
self .assertEqual (200 , r .status_code )
624
622
self .assertIsNone (tracer .active_span )
625
623
@@ -703,7 +701,7 @@ def test_requestspkg_put(self):
703
701
704
702
def test_response_header_capture (self ):
705
703
original_extra_http_headers = agent .options .extra_http_headers
706
- agent .options .extra_http_headers = ['X-Capture-This' ]
704
+ agent .options .extra_http_headers = ['X-Capture-This' , 'X-Capture-That' ]
707
705
708
706
with tracer .start_active_span ('test' ):
709
707
r = self .http .request ('GET' , testenv ["wsgi_server" ] + '/response_headers' )
@@ -715,7 +713,7 @@ def test_response_header_capture(self):
715
713
urllib3_span = spans [1 ]
716
714
test_span = spans [2 ]
717
715
718
- assert (r )
716
+ self . assertTrue (r )
719
717
self .assertEqual (200 , r .status )
720
718
self .assertIsNone (tracer .active_span )
721
719
@@ -751,8 +749,72 @@ def test_response_header_capture(self):
751
749
self .assertTrue (type (urllib3_span .stack ) is list )
752
750
self .assertTrue (len (urllib3_span .stack ) > 1 )
753
751
754
- assert "X-Capture-This" in urllib3_span .data ["http" ]["header" ]
752
+ self . assertIn ( "X-Capture-This" , urllib3_span .data ["http" ]["header" ])
755
753
self .assertEqual ("Ok" , urllib3_span .data ["http" ]["header" ]["X-Capture-This" ])
754
+ self .assertIn ("X-Capture-That" , urllib3_span .data ["http" ]["header" ])
755
+ self .assertEqual ("Ok too" , urllib3_span .data ["http" ]["header" ]["X-Capture-That" ])
756
756
757
757
agent .options .extra_http_headers = original_extra_http_headers
758
758
759
+ def test_request_header_capture (self ):
760
+ original_extra_http_headers = agent .options .extra_http_headers
761
+ agent .options .extra_http_headers = ['X-Capture-This-Too' , 'X-Capture-That-Too' ]
762
+
763
+ request_headers = {
764
+ "X-Capture-This-Too" : "this too" ,
765
+ "X-Capture-That-Too" : "that too" ,
766
+ }
767
+ with tracer .start_active_span ("test" ):
768
+ r = self .http .request (
769
+ "GET" , testenv ["wsgi_server" ] + "/" , headers = request_headers
770
+ )
771
+
772
+ spans = self .recorder .queued_spans ()
773
+ self .assertEqual (3 , len (spans ))
774
+
775
+ wsgi_span = spans [0 ]
776
+ urllib3_span = spans [1 ]
777
+ test_span = spans [2 ]
778
+
779
+ self .assertTrue (r )
780
+ self .assertEqual (200 , r .status )
781
+ self .assertIsNone (tracer .active_span )
782
+
783
+ # Same traceId
784
+ self .assertEqual (test_span .t , urllib3_span .t )
785
+ self .assertEqual (urllib3_span .t , wsgi_span .t )
786
+
787
+ # Parent relationships
788
+ self .assertEqual (urllib3_span .p , test_span .s )
789
+ self .assertEqual (wsgi_span .p , urllib3_span .s )
790
+
791
+ # Error logging
792
+ self .assertIsNone (test_span .ec )
793
+ self .assertIsNone (urllib3_span .ec )
794
+ self .assertIsNone (wsgi_span .ec )
795
+
796
+ # wsgi
797
+ self .assertEqual ("wsgi" , wsgi_span .n )
798
+ self .assertEqual ('127.0.0.1:' + str (testenv ["wsgi_port" ]), wsgi_span .data ["http" ]["host" ])
799
+ self .assertEqual ('/' , wsgi_span .data ["http" ]["url" ])
800
+ self .assertEqual ('GET' , wsgi_span .data ["http" ]["method" ])
801
+ self .assertEqual (200 , wsgi_span .data ["http" ]["status" ])
802
+ self .assertIsNone (wsgi_span .data ["http" ]["error" ])
803
+ self .assertIsNone (wsgi_span .stack )
804
+
805
+ # urllib3
806
+ self .assertEqual ("test" , test_span .data ["sdk" ]["name" ])
807
+ self .assertEqual ("urllib3" , urllib3_span .n )
808
+ self .assertEqual (200 , urllib3_span .data ["http" ]["status" ])
809
+ self .assertEqual (testenv ["wsgi_server" ] + "/" , urllib3_span .data ["http" ]["url" ])
810
+ self .assertEqual ("GET" , urllib3_span .data ["http" ]["method" ])
811
+ self .assertIsNotNone (urllib3_span .stack )
812
+ self .assertTrue (type (urllib3_span .stack ) is list )
813
+ self .assertTrue (len (urllib3_span .stack ) > 1 )
814
+
815
+ self .assertIn ("X-Capture-This-Too" , urllib3_span .data ["http" ]["header" ])
816
+ self .assertEqual ("this too" , urllib3_span .data ["http" ]["header" ]["X-Capture-This-Too" ])
817
+ self .assertIn ("X-Capture-That-Too" , urllib3_span .data ["http" ]["header" ])
818
+ self .assertEqual ("that too" , urllib3_span .data ["http" ]["header" ]["X-Capture-That-Too" ])
819
+
820
+ agent .options .extra_http_headers = original_extra_http_headers
0 commit comments