@@ -110,13 +110,19 @@ def test_streaming(
110110 spans = [item .payload for item in items ]
111111 assert len (spans ) == 3
112112
113- (span1 ,) = (
114- item
115- for item in spans
116- if item ["attributes" ].get ("sentry.op" ) == "http.client"
117- )
118- assert span1 ["attributes" ]["sentry.op" ] == "http.client"
119- assert span1 ["name" ] == "aws.s3.GetObject"
113+ stream_span , client_span , parent_span = spans
114+ assert stream_span ["attributes" ]["sentry.op" ] == "http.client.stream"
115+ assert stream_span ["name" ] == "aws.s3.GetObject"
116+ assert stream_span ["parent_span_id" ] == client_span ["span_id" ]
117+
118+ assert client_span ["attributes" ]["sentry.op" ] == "http.client"
119+ assert client_span ["name" ] == "aws.s3.GetObject"
120+ assert client_span ["parent_span_id" ] == parent_span ["span_id" ]
121+
122+ assert parent_span ["name" ] == "custom parent"
123+ assert parent_span ["start_timestamp" ] <= client_span ["start_timestamp" ]
124+ assert client_span ["start_timestamp" ] <= stream_span ["start_timestamp" ]
125+ assert stream_span ["end_timestamp" ] <= client_span ["end_timestamp" ]
120126
121127 expected_attrs = {
122128 "http.request.method" : "GET" ,
@@ -136,22 +142,12 @@ def test_streaming(
136142 }
137143 if send_default_pii :
138144 expected_attrs ["url.full" ] = "https://bucket.s3.amazonaws.com/foo.pdf"
139- assert span1 ["attributes" ] == ApproxDict (expected_attrs )
145+ assert client_span ["attributes" ] == ApproxDict (expected_attrs )
140146
141- assert "url.fragment" not in span1 ["attributes" ]
142- assert "url.query" not in span1 ["attributes" ]
147+ assert "url.fragment" not in client_span ["attributes" ]
148+ assert "url.query" not in client_span ["attributes" ]
143149 if not send_default_pii :
144- assert "url.full" not in span1 ["attributes" ]
145-
146- (span2 ,) = (
147- item
148- for item in spans
149- if item ["attributes" ].get ("sentry.op" ) == "http.client.stream"
150- )
151- assert span2 ["attributes" ]["sentry.op" ] == "http.client.stream"
152- assert span2 ["name" ] == "aws.s3.GetObject"
153- assert span2 ["parent_span_id" ] == span1 ["span_id" ]
154- assert span2 ["end_timestamp" ] <= span1 ["end_timestamp" ]
150+ assert "url.full" not in client_span ["attributes" ]
155151 else :
156152 events = capture_events ()
157153
@@ -217,20 +213,20 @@ def test_streaming_close(
217213 sentry_sdk .flush ()
218214 spans = [item .payload for item in items ]
219215 assert len (spans ) == 3
220- ( span1 ,) = (
221- item
222- for item in spans
223- if item [ "attributes" ]. get ( "sentry.op" ) == "http.client "
224- )
225- assert span1 [ "attributes" ][ "sentry.op" ] == "http.client"
226- ( span2 ,) = (
227- item
228- for item in spans
229- if item [ "attributes" ]. get ( "sentry.op" ) == "http.client.stream"
230- )
231- assert span2 [ "attributes" ][ "sentry.op" ] == "http.client.stream"
232- assert span2 [ "parent_span_id " ] == span1 [ "span_id " ]
233- assert span2 ["end_timestamp" ] <= span1 ["end_timestamp" ]
216+
217+ stream_span , client_span , parent_span = spans
218+ assert stream_span [ "attributes" ][ "sentry.op" ] == "http.client.stream"
219+ assert stream_span [ "name" ] == "aws.s3.GetObject "
220+ assert stream_span [ "parent_span_id" ] == client_span [ "span_id" ]
221+
222+ assert client_span [ "attributes" ][ "sentry.op" ] == "http.client"
223+ assert client_span [ "name" ] == "aws.s3.GetObject"
224+ assert client_span [ "parent_span_id" ] == parent_span [ "span_id" ]
225+
226+ assert parent_span [ "name" ] == "custom parent"
227+ assert parent_span [ "start_timestamp" ] <= client_span [ "start_timestamp" ]
228+ assert client_span [ "start_timestamp " ] <= stream_span [ "start_timestamp " ]
229+ assert stream_span ["end_timestamp" ] <= client_span ["end_timestamp" ]
234230 else :
235231 events = capture_events ()
236232
0 commit comments