@@ -199,10 +199,17 @@ def test_multi_instance(self):
199
199
first_id_gen = self ._create_id_generator ("first" , writers = ["first" , "second" ])
200
200
second_id_gen = self ._create_id_generator ("second" , writers = ["first" , "second" ])
201
201
202
- self .assertEqual (first_id_gen .get_positions (), {"first" : 3 , "second" : 7 })
203
- self .assertEqual (first_id_gen .get_current_token_for_writer ("first" ), 3 )
202
+ # The first ID gen will notice that it can advance its token to 7 as it
203
+ # has no in progress writes...
204
+ self .assertEqual (first_id_gen .get_positions (), {"first" : 7 , "second" : 7 })
205
+ self .assertEqual (first_id_gen .get_current_token_for_writer ("first" ), 7 )
204
206
self .assertEqual (first_id_gen .get_current_token_for_writer ("second" ), 7 )
205
207
208
+ # ... but the second ID gen doesn't know that.
209
+ self .assertEqual (second_id_gen .get_positions (), {"first" : 3 , "second" : 7 })
210
+ self .assertEqual (second_id_gen .get_current_token_for_writer ("first" ), 3 )
211
+ self .assertEqual (second_id_gen .get_current_token_for_writer ("second" ), 7 )
212
+
206
213
# Try allocating a new ID gen and check that we only see position
207
214
# advanced after we leave the context manager.
208
215
@@ -211,7 +218,7 @@ async def _get_next_async():
211
218
self .assertEqual (stream_id , 8 )
212
219
213
220
self .assertEqual (
214
- first_id_gen .get_positions (), {"first" : 3 , "second" : 7 }
221
+ first_id_gen .get_positions (), {"first" : 7 , "second" : 7 }
215
222
)
216
223
217
224
self .get_success (_get_next_async ())
@@ -279,7 +286,7 @@ def test_get_persisted_upto_position(self):
279
286
self ._insert_row_with_id ("first" , 3 )
280
287
self ._insert_row_with_id ("second" , 5 )
281
288
282
- id_gen = self ._create_id_generator ("first " , writers = ["first" , "second" ])
289
+ id_gen = self ._create_id_generator ("worker " , writers = ["first" , "second" ])
283
290
284
291
self .assertEqual (id_gen .get_positions (), {"first" : 3 , "second" : 5 })
285
292
@@ -319,14 +326,14 @@ def test_get_persisted_upto_position_get_next(self):
319
326
320
327
id_gen = self ._create_id_generator ("first" , writers = ["first" , "second" ])
321
328
322
- self .assertEqual (id_gen .get_positions (), {"first" : 3 , "second" : 5 })
329
+ self .assertEqual (id_gen .get_positions (), {"first" : 5 , "second" : 5 })
323
330
324
- self .assertEqual (id_gen .get_persisted_upto_position (), 3 )
331
+ self .assertEqual (id_gen .get_persisted_upto_position (), 5 )
325
332
326
333
async def _get_next_async ():
327
334
async with id_gen .get_next () as stream_id :
328
335
self .assertEqual (stream_id , 6 )
329
- self .assertEqual (id_gen .get_persisted_upto_position (), 3 )
336
+ self .assertEqual (id_gen .get_persisted_upto_position (), 5 )
330
337
331
338
self .get_success (_get_next_async ())
332
339
@@ -388,7 +395,7 @@ def test_writer_config_change(self):
388
395
self ._insert_row_with_id ("second" , 5 )
389
396
390
397
# Initial config has two writers
391
- id_gen = self ._create_id_generator ("first " , writers = ["first" , "second" ])
398
+ id_gen = self ._create_id_generator ("worker " , writers = ["first" , "second" ])
392
399
self .assertEqual (id_gen .get_persisted_upto_position (), 3 )
393
400
self .assertEqual (id_gen .get_current_token_for_writer ("first" ), 3 )
394
401
self .assertEqual (id_gen .get_current_token_for_writer ("second" ), 5 )
@@ -568,7 +575,7 @@ async def _get_next_async2():
568
575
569
576
self .get_success (_get_next_async2 ())
570
577
571
- self .assertEqual (id_gen_1 .get_positions (), {"first" : - 1 , "second" : - 2 })
578
+ self .assertEqual (id_gen_1 .get_positions (), {"first" : - 2 , "second" : - 2 })
572
579
self .assertEqual (id_gen_2 .get_positions (), {"first" : - 1 , "second" : - 2 })
573
580
self .assertEqual (id_gen_1 .get_persisted_upto_position (), - 2 )
574
581
self .assertEqual (id_gen_2 .get_persisted_upto_position (), - 2 )
0 commit comments