47
47
48
48
49
49
class Test_restart_on_unavailable (OpenTelemetryBase ):
50
- def _call_fut (self , restart , span_name = None , session = None , attributes = None ):
50
+ def _call_fut (
51
+ self , restart , request , span_name = None , session = None , attributes = None
52
+ ):
51
53
from google .cloud .spanner_v1 .snapshot import _restart_on_unavailable
52
54
53
- return _restart_on_unavailable (restart , span_name , session , attributes )
55
+ return _restart_on_unavailable (restart , request , span_name , session , attributes )
54
56
55
57
def _make_item (self , value , resume_token = b"" ):
56
58
return mock .Mock (
@@ -59,18 +61,21 @@ def _make_item(self, value, resume_token=b""):
59
61
60
62
def test_iteration_w_empty_raw (self ):
61
63
raw = _MockIterator ()
64
+ request = mock .Mock (test = "test" , spec = ["test" , "resume_token" ])
62
65
restart = mock .Mock (spec = [], return_value = raw )
63
- resumable = self ._call_fut (restart )
66
+ resumable = self ._call_fut (restart , request )
64
67
self .assertEqual (list (resumable ), [])
68
+ restart .assert_called_once_with (request = request )
65
69
self .assertNoSpans ()
66
70
67
71
def test_iteration_w_non_empty_raw (self ):
68
72
ITEMS = (self ._make_item (0 ), self ._make_item (1 ))
69
73
raw = _MockIterator (* ITEMS )
74
+ request = mock .Mock (test = "test" , spec = ["test" , "resume_token" ])
70
75
restart = mock .Mock (spec = [], return_value = raw )
71
- resumable = self ._call_fut (restart )
76
+ resumable = self ._call_fut (restart , request )
72
77
self .assertEqual (list (resumable ), list (ITEMS ))
73
- restart .assert_called_once_with ()
78
+ restart .assert_called_once_with (request = request )
74
79
self .assertNoSpans ()
75
80
76
81
def test_iteration_w_raw_w_resume_tken (self ):
@@ -81,10 +86,11 @@ def test_iteration_w_raw_w_resume_tken(self):
81
86
self ._make_item (3 ),
82
87
)
83
88
raw = _MockIterator (* ITEMS )
89
+ request = mock .Mock (test = "test" , spec = ["test" , "resume_token" ])
84
90
restart = mock .Mock (spec = [], return_value = raw )
85
- resumable = self ._call_fut (restart )
91
+ resumable = self ._call_fut (restart , request )
86
92
self .assertEqual (list (resumable ), list (ITEMS ))
87
- restart .assert_called_once_with ()
93
+ restart .assert_called_once_with (request = request )
88
94
self .assertNoSpans ()
89
95
90
96
def test_iteration_w_raw_raising_unavailable_no_token (self ):
@@ -97,10 +103,12 @@ def test_iteration_w_raw_raising_unavailable_no_token(self):
97
103
)
98
104
before = _MockIterator (fail_after = True , error = ServiceUnavailable ("testing" ))
99
105
after = _MockIterator (* ITEMS )
106
+ request = mock .Mock (test = "test" , spec = ["test" , "resume_token" ])
100
107
restart = mock .Mock (spec = [], side_effect = [before , after ])
101
- resumable = self ._call_fut (restart )
108
+ resumable = self ._call_fut (restart , request )
102
109
self .assertEqual (list (resumable ), list (ITEMS ))
103
- self .assertEqual (restart .mock_calls , [mock .call (), mock .call (resume_token = b"" )])
110
+ self .assertEqual (len (restart .mock_calls ), 2 )
111
+ self .assertEqual (request .resume_token , b"" )
104
112
self .assertNoSpans ()
105
113
106
114
def test_iteration_w_raw_raising_retryable_internal_error_no_token (self ):
@@ -118,10 +126,12 @@ def test_iteration_w_raw_raising_retryable_internal_error_no_token(self):
118
126
),
119
127
)
120
128
after = _MockIterator (* ITEMS )
129
+ request = mock .Mock (test = "test" , spec = ["test" , "resume_token" ])
121
130
restart = mock .Mock (spec = [], side_effect = [before , after ])
122
- resumable = self ._call_fut (restart )
131
+ resumable = self ._call_fut (restart , request )
123
132
self .assertEqual (list (resumable ), list (ITEMS ))
124
- self .assertEqual (restart .mock_calls , [mock .call (), mock .call (resume_token = b"" )])
133
+ self .assertEqual (len (restart .mock_calls ), 2 )
134
+ self .assertEqual (request .resume_token , b"" )
125
135
self .assertNoSpans ()
126
136
127
137
def test_iteration_w_raw_raising_non_retryable_internal_error_no_token (self ):
@@ -134,11 +144,12 @@ def test_iteration_w_raw_raising_non_retryable_internal_error_no_token(self):
134
144
)
135
145
before = _MockIterator (fail_after = True , error = InternalServerError ("testing" ))
136
146
after = _MockIterator (* ITEMS )
147
+ request = mock .Mock (spec = ["resume_token" ])
137
148
restart = mock .Mock (spec = [], side_effect = [before , after ])
138
- resumable = self ._call_fut (restart )
149
+ resumable = self ._call_fut (restart , request )
139
150
with self .assertRaises (InternalServerError ):
140
151
list (resumable )
141
- self . assertEqual ( restart .mock_calls , [ mock . call ()] )
152
+ restart .assert_called_once_with ( request = request )
142
153
self .assertNoSpans ()
143
154
144
155
def test_iteration_w_raw_raising_unavailable (self ):
@@ -151,12 +162,12 @@ def test_iteration_w_raw_raising_unavailable(self):
151
162
* (FIRST + SECOND ), fail_after = True , error = ServiceUnavailable ("testing" )
152
163
)
153
164
after = _MockIterator (* LAST )
165
+ request = mock .Mock (test = "test" , spec = ["test" , "resume_token" ])
154
166
restart = mock .Mock (spec = [], side_effect = [before , after ])
155
- resumable = self ._call_fut (restart )
167
+ resumable = self ._call_fut (restart , request )
156
168
self .assertEqual (list (resumable ), list (FIRST + LAST ))
157
- self .assertEqual (
158
- restart .mock_calls , [mock .call (), mock .call (resume_token = RESUME_TOKEN )]
159
- )
169
+ self .assertEqual (len (restart .mock_calls ), 2 )
170
+ self .assertEqual (request .resume_token , RESUME_TOKEN )
160
171
self .assertNoSpans ()
161
172
162
173
def test_iteration_w_raw_raising_retryable_internal_error (self ):
@@ -173,12 +184,12 @@ def test_iteration_w_raw_raising_retryable_internal_error(self):
173
184
)
174
185
)
175
186
after = _MockIterator (* LAST )
187
+ request = mock .Mock (test = "test" , spec = ["test" , "resume_token" ])
176
188
restart = mock .Mock (spec = [], side_effect = [before , after ])
177
- resumable = self ._call_fut (restart )
189
+ resumable = self ._call_fut (restart , request )
178
190
self .assertEqual (list (resumable ), list (FIRST + LAST ))
179
- self .assertEqual (
180
- restart .mock_calls , [mock .call (), mock .call (resume_token = RESUME_TOKEN )]
181
- )
191
+ self .assertEqual (len (restart .mock_calls ), 2 )
192
+ self .assertEqual (request .resume_token , RESUME_TOKEN )
182
193
self .assertNoSpans ()
183
194
184
195
def test_iteration_w_raw_raising_non_retryable_internal_error (self ):
@@ -191,11 +202,12 @@ def test_iteration_w_raw_raising_non_retryable_internal_error(self):
191
202
* (FIRST + SECOND ), fail_after = True , error = InternalServerError ("testing" )
192
203
)
193
204
after = _MockIterator (* LAST )
205
+ request = mock .Mock (test = "test" , spec = ["test" , "resume_token" ])
194
206
restart = mock .Mock (spec = [], side_effect = [before , after ])
195
- resumable = self ._call_fut (restart )
207
+ resumable = self ._call_fut (restart , request )
196
208
with self .assertRaises (InternalServerError ):
197
209
list (resumable )
198
- self . assertEqual ( restart .mock_calls , [ mock . call ()] )
210
+ restart .assert_called_once_with ( request = request )
199
211
self .assertNoSpans ()
200
212
201
213
def test_iteration_w_raw_raising_unavailable_after_token (self ):
@@ -207,12 +219,12 @@ def test_iteration_w_raw_raising_unavailable_after_token(self):
207
219
* FIRST , fail_after = True , error = ServiceUnavailable ("testing" )
208
220
)
209
221
after = _MockIterator (* SECOND )
222
+ request = mock .Mock (test = "test" , spec = ["test" , "resume_token" ])
210
223
restart = mock .Mock (spec = [], side_effect = [before , after ])
211
- resumable = self ._call_fut (restart )
224
+ resumable = self ._call_fut (restart , request )
212
225
self .assertEqual (list (resumable ), list (FIRST + SECOND ))
213
- self .assertEqual (
214
- restart .mock_calls , [mock .call (), mock .call (resume_token = RESUME_TOKEN )]
215
- )
226
+ self .assertEqual (len (restart .mock_calls ), 2 )
227
+ self .assertEqual (request .resume_token , RESUME_TOKEN )
216
228
self .assertNoSpans ()
217
229
218
230
def test_iteration_w_raw_raising_retryable_internal_error_after_token (self ):
@@ -228,12 +240,12 @@ def test_iteration_w_raw_raising_retryable_internal_error_after_token(self):
228
240
)
229
241
)
230
242
after = _MockIterator (* SECOND )
243
+ request = mock .Mock (test = "test" , spec = ["test" , "resume_token" ])
231
244
restart = mock .Mock (spec = [], side_effect = [before , after ])
232
- resumable = self ._call_fut (restart )
245
+ resumable = self ._call_fut (restart , request )
233
246
self .assertEqual (list (resumable ), list (FIRST + SECOND ))
234
- self .assertEqual (
235
- restart .mock_calls , [mock .call (), mock .call (resume_token = RESUME_TOKEN )]
236
- )
247
+ self .assertEqual (len (restart .mock_calls ), 2 )
248
+ self .assertEqual (request .resume_token , RESUME_TOKEN )
237
249
self .assertNoSpans ()
238
250
239
251
def test_iteration_w_raw_raising_non_retryable_internal_error_after_token (self ):
@@ -245,19 +257,23 @@ def test_iteration_w_raw_raising_non_retryable_internal_error_after_token(self):
245
257
* FIRST , fail_after = True , error = InternalServerError ("testing" )
246
258
)
247
259
after = _MockIterator (* SECOND )
260
+ request = mock .Mock (test = "test" , spec = ["test" , "resume_token" ])
248
261
restart = mock .Mock (spec = [], side_effect = [before , after ])
249
- resumable = self ._call_fut (restart )
262
+ resumable = self ._call_fut (restart , request )
250
263
with self .assertRaises (InternalServerError ):
251
264
list (resumable )
252
- self . assertEqual ( restart .mock_calls , [ mock . call ()] )
265
+ restart .assert_called_once_with ( request = request )
253
266
self .assertNoSpans ()
254
267
255
268
def test_iteration_w_span_creation (self ):
256
269
name = "TestSpan"
257
270
extra_atts = {"test_att" : 1 }
258
271
raw = _MockIterator ()
272
+ request = mock .Mock (test = "test" , spec = ["test" , "resume_token" ])
259
273
restart = mock .Mock (spec = [], return_value = raw )
260
- resumable = self ._call_fut (restart , name , _Session (_Database ()), extra_atts )
274
+ resumable = self ._call_fut (
275
+ restart , request , name , _Session (_Database ()), extra_atts
276
+ )
261
277
self .assertEqual (list (resumable ), [])
262
278
self .assertSpanAttributes (name , attributes = dict (BASE_ATTRIBUTES , test_att = 1 ))
263
279
@@ -272,13 +288,13 @@ def test_iteration_w_multiple_span_creation(self):
272
288
* (FIRST + SECOND ), fail_after = True , error = ServiceUnavailable ("testing" )
273
289
)
274
290
after = _MockIterator (* LAST )
291
+ request = mock .Mock (test = "test" , spec = ["test" , "resume_token" ])
275
292
restart = mock .Mock (spec = [], side_effect = [before , after ])
276
293
name = "TestSpan"
277
- resumable = self ._call_fut (restart , name , _Session (_Database ()))
294
+ resumable = self ._call_fut (restart , request , name , _Session (_Database ()))
278
295
self .assertEqual (list (resumable ), list (FIRST + LAST ))
279
- self .assertEqual (
280
- restart .mock_calls , [mock .call (), mock .call (resume_token = RESUME_TOKEN )]
281
- )
296
+ self .assertEqual (len (restart .mock_calls ), 2 )
297
+ self .assertEqual (request .resume_token , RESUME_TOKEN )
282
298
283
299
span_list = self .memory_exporter .get_finished_spans ()
284
300
self .assertEqual (len (span_list ), 2 )
0 commit comments