@@ -337,7 +337,6 @@ def rbs_change_number_mock():
337337 rbs_1 = copy .deepcopy (json_body ['rbs' ]['d' ])
338338 def get_changes (* args , ** kwargs ):
339339 get_changes .called += 1
340- # pytest.set_trace()
341340 if get_changes .called == 1 :
342341 return { 'ff' : { 'd' : self .splits , 's' : - 1 , 't' : 123 },
343342 'rbs' : {"t" : 555 , "s" : - 1 , "d" : rbs_1 }}
@@ -392,6 +391,8 @@ def intersect(sets):
392391 inserted_split = storage .update .mock_calls [0 ][1 ][0 ][0 ]
393392 assert isinstance (inserted_split , Split )
394393 assert inserted_split .name == 'some_name'
394+ inserted_rbs = rbs_storage .update .mock_calls [0 ][1 ][0 ][0 ]
395+ assert inserted_rbs .excluded .get_excluded_keys () == ["mauro@split.io" ,"gaston@split.io" ]
395396
396397 split_synchronizer ._backoff = Backoff (1 , 0.1 )
397398 split_synchronizer .synchronize_splits (None , 666 )
@@ -664,7 +665,11 @@ async def rbs_change_number_mock():
664665 rbs_change_number_mock ._calls += 1
665666 if rbs_change_number_mock ._calls == 1 :
666667 return - 1
667- return 12345 # Return proper cn for CDN Bypass
668+ elif change_number_mock ._calls >= 2 and change_number_mock ._calls <= 3 :
669+ return 555
670+ elif change_number_mock ._calls <= 9 :
671+ return 555
672+ return 666 # Return proper cn for CDN Bypass
668673
669674 change_number_mock ._calls = 0
670675 rbs_change_number_mock ._calls = 0
@@ -677,8 +682,10 @@ async def update(parsed_split, deleted, change_number):
677682 self .parsed_split = parsed_split
678683 storage .update = update
679684
685+ self .parsed_rbs = None
680686 async def rbs_update (parsed , deleted , change_number ):
681- pass
687+ if len (parsed ) > 0 :
688+ self .parsed_rbs = parsed
682689 rbs_storage .update = rbs_update
683690
684691 api = mocker .Mock ()
@@ -688,32 +695,38 @@ async def rbs_update(parsed, deleted, change_number):
688695 self .fetch_options_2 = None
689696 self .change_number_3 = None
690697 self .fetch_options_3 = None
698+ rbs_1 = copy .deepcopy (json_body ['rbs' ]['d' ])
699+
691700 async def get_changes (change_number , rbs_change_number , fetch_options ):
692701 get_changes .called += 1
693702 if get_changes .called == 1 :
694703 self .change_number_1 = change_number
695704 self .fetch_options_1 = fetch_options
696705 return { 'ff' : { 'd' : self .splits , 's' : - 1 , 't' : 123 },
697- 'rbs' : {"t" : 123 , "s" : - 1 , "d" : [] }}
706+ 'rbs' : {"t" : 555 , "s" : - 1 , "d" : rbs_1 }}
698707 elif get_changes .called == 2 :
699708 self .change_number_2 = change_number
700709 self .fetch_options_2 = fetch_options
701710 return { 'ff' : { 'd' : [], 's' : 123 , 't' : 123 },
702- 'rbs' : {"t" : 123 , "s" : 123 , "d" : []}}
711+ 'rbs' : {"t" : 555 , "s" : 555 , "d" : []}}
703712 elif get_changes .called == 3 :
704713 return { 'ff' : { 'd' : [], 's' : 123 , 't' : 1234 },
705- 'rbs' : {"t" : 123 , "s" : 123 , "d" : []}}
714+ 'rbs' : {"t" : 555 , "s" : 555 , "d" : []}}
706715 elif get_changes .called >= 4 and get_changes .called <= 6 :
707716 return { 'ff' : { 'd' : [], 's' : 1234 , 't' : 1234 },
708- 'rbs' : {"t" : 123 , "s" : 123 , "d" : []}}
717+ 'rbs' : {"t" : 555 , "s" : 555 , "d" : []}}
709718 elif get_changes .called == 7 :
710719 return { 'ff' : { 'd' : [], 's' : 1234 , 't' : 12345 },
711- 'rbs' : {"t" : 123 , "s" : 123 , "d" : []}}
712- self .change_number_3 = change_number
713- self .fetch_options_3 = fetch_options
720+ 'rbs' : {"t" : 555 , "s" : 555 , "d" : []}}
721+ elif get_changes .called == 8 :
722+ self .change_number_3 = change_number
723+ self .fetch_options_3 = fetch_options
724+ return { 'ff' : { 'd' : [], 's' : 12345 , 't' : 12345 },
725+ 'rbs' : {"t" : 555 , "s" : 555 , "d" : []}}
726+ rbs_1 [0 ]['excluded' ]['keys' ] = ['bilal@split.io' ]
714727 return { 'ff' : { 'd' : [], 's' : 12345 , 't' : 12345 },
715- 'rbs' : {"t" : 123 , "s" : 123 , "d" : []}}
716-
728+ 'rbs' : {"t" : 666 , "s" : 666 , "d" : rbs_1 }}
729+
717730 get_changes .called = 0
718731 api .fetch_splits = get_changes
719732
@@ -743,7 +756,14 @@ def intersect(sets):
743756 inserted_split = self .parsed_split [0 ]
744757 assert isinstance (inserted_split , Split )
745758 assert inserted_split .name == 'some_name'
759+ inserted_rbs = self .parsed_rbs [0 ]
760+ assert inserted_rbs .excluded .get_excluded_keys () == ["mauro@split.io" ,"gaston@split.io" ]
746761
762+ split_synchronizer ._backoff = Backoff (1 , 0.1 )
763+ await split_synchronizer .synchronize_splits (None , 666 )
764+ inserted_rbs = self .parsed_rbs [0 ]
765+ assert inserted_rbs .excluded .get_excluded_keys () == ['bilal@split.io' ]
766+
747767 @pytest .mark .asyncio
748768 async def test_sync_flag_sets_with_config_sets (self , mocker ):
749769 """Test split sync with flag sets."""
0 commit comments