2727class SplitFactoryTests (object ):
2828 """Split factory test cases."""
2929
30- def test_flag_sets_counts (self ):
30+ def test_flag_sets_counts (self ):
3131 factory = get_factory ("none" , config = {
3232 'flagSetsFilter' : ['set1' , 'set2' , 'set3' ]
3333 })
3434
3535 assert factory ._telemetry_init_producer ._telemetry_storage ._tel_config ._flag_sets == 3
3636 assert factory ._telemetry_init_producer ._telemetry_storage ._tel_config ._flag_sets_invalid == 0
37- factory .destroy ()
38-
37+ event = threading .Event ()
38+ factory .destroy (event )
39+ event .wait ()
40+
3941 factory = get_factory ("none" , config = {
4042 'flagSetsFilter' : ['s#et1' , 'set2' , 'set3' ]
4143 })
4244 assert factory ._telemetry_init_producer ._telemetry_storage ._tel_config ._flag_sets == 3
4345 assert factory ._telemetry_init_producer ._telemetry_storage ._tel_config ._flag_sets_invalid == 1
44- factory .destroy ()
46+ event = threading .Event ()
47+ factory .destroy (event )
48+ event .wait ()
4549
4650 factory = get_factory ("none" , config = {
4751 'flagSetsFilter' : ['s#et1' , 22 , 'set3' ]
4852 })
4953 assert factory ._telemetry_init_producer ._telemetry_storage ._tel_config ._flag_sets == 3
5054 assert factory ._telemetry_init_producer ._telemetry_storage ._tel_config ._flag_sets_invalid == 2
51- factory .destroy ()
55+ event = threading .Event ()
56+ factory .destroy (event )
57+ event .wait ()
5258
5359 def test_inmemory_client_creation_streaming_false (self , mocker ):
5460 """Test that a client with in-memory storage is created correctly."""
55-
5661 # Setup synchronizer
5762 def _split_synchronizer (self , ready_flag , some , auth_api , streaming_enabled , sdk_matadata , telemetry_runtime_producer , sse_url = None , client_key = None ):
5863 synchronizer = mocker .Mock (spec = Synchronizer )
@@ -518,9 +523,15 @@ def synchronize_config(*_):
518523 event .wait ()
519524 assert _INSTANTIATED_FACTORIES ['some_other_api_key' ] == 1
520525 assert _INSTANTIATED_FACTORIES ['some_api_key' ] == 2
521- factory2 .destroy ()
522- factory3 .destroy ()
523- factory4 .destroy ()
526+ event = threading .Event ()
527+ factory2 .destroy (event )
528+ event .wait ()
529+ event = threading .Event ()
530+ factory3 .destroy (event )
531+ event .wait ()
532+ event = threading .Event ()
533+ factory4 .destroy (event )
534+ event .wait ()
524535
525536 def test_uwsgi_preforked (self , mocker ):
526537 """Test preforked initializations."""
@@ -740,47 +751,53 @@ async def test_flag_sets_counts(self):
740751 @pytest .mark .asyncio
741752 async def test_inmemory_client_creation_streaming_false_async (self , mocker ):
742753 """Test that a client with in-memory storage is created correctly for async."""
743-
744754 # Setup synchronizer
745755 def _split_synchronizer (self , ready_flag , some , auth_api , streaming_enabled , sdk_matadata , telemetry_runtime_producer , sse_url = None , client_key = None ):
746756 synchronizer = mocker .Mock (spec = SynchronizerAsync )
747757 async def sync_all (* _ ):
748758 return None
749759 synchronizer .sync_all = sync_all
760+
761+ def start_periodic_fetching ():
762+ pass
763+ synchronizer .start_periodic_fetching = start_periodic_fetching
764+
750765 self ._ready_flag = ready_flag
751766 self ._synchronizer = synchronizer
752767 self ._streaming_enabled = False
753768 self ._telemetry_runtime_producer = telemetry_runtime_producer
769+
754770 mocker .patch ('splitio.sync.manager.ManagerAsync.__init__' , new = _split_synchronizer )
755771
756772 async def synchronize_config (* _ ):
757773 pass
758774 mocker .patch ('splitio.sync.telemetry.InMemoryTelemetrySubmitterAsync.synchronize_config' , new = synchronize_config )
759775
760776 # Start factory and make assertions
761- factory = await get_factory_async ('some_api_key' , config = {'streamingEmabled' : False })
762- assert isinstance (factory , SplitFactoryAsync )
763- assert isinstance (factory ._storages ['splits' ], inmemmory .InMemorySplitStorageAsync )
764- assert isinstance (factory ._storages ['segments' ], inmemmory .InMemorySegmentStorageAsync )
765- assert isinstance (factory ._storages ['impressions' ], inmemmory .InMemoryImpressionStorageAsync )
766- assert factory ._storages ['impressions' ]._impressions .maxsize == 10000
767- assert isinstance (factory ._storages ['events' ], inmemmory .InMemoryEventStorageAsync )
768- assert factory ._storages ['events' ]._events .maxsize == 10000
777+ factory2 = await get_factory_async ('some_api_key' , config = {'streamingEmabled' : False })
769778
770- assert isinstance (factory ._sync_manager , ManagerAsync )
779+ assert isinstance (factory2 , SplitFactoryAsync )
780+ assert isinstance (factory2 ._storages ['splits' ], inmemmory .InMemorySplitStorageAsync )
781+ assert isinstance (factory2 ._storages ['segments' ], inmemmory .InMemorySegmentStorageAsync )
782+ assert isinstance (factory2 ._storages ['impressions' ], inmemmory .InMemoryImpressionStorageAsync )
783+ assert factory2 ._storages ['impressions' ]._impressions .maxsize == 10000
784+ assert isinstance (factory2 ._storages ['events' ], inmemmory .InMemoryEventStorageAsync )
785+ assert factory2 ._storages ['events' ]._events .maxsize == 10000
771786
772- assert isinstance (factory ._recorder , StandardRecorderAsync )
773- assert isinstance (factory ._recorder ._impressions_manager , ImpressionsManager )
774- assert isinstance (factory ._recorder ._event_sotrage , inmemmory .EventStorage )
775- assert isinstance (factory ._recorder ._impression_storage , inmemmory .ImpressionStorage )
787+ assert isinstance (factory2 ._sync_manager , ManagerAsync )
776788
777- assert factory ._labels_enabled is True
789+ assert isinstance (factory2 ._recorder , StandardRecorderAsync )
790+ assert isinstance (factory2 ._recorder ._impressions_manager , ImpressionsManager )
791+ assert isinstance (factory2 ._recorder ._event_sotrage , inmemmory .EventStorage )
792+ assert isinstance (factory2 ._recorder ._impression_storage , inmemmory .ImpressionStorage )
793+
794+ assert factory2 ._labels_enabled is True
778795 try :
779- await factory .block_until_ready (1 )
796+ await factory2 .block_until_ready (1 )
780797 except :
781798 pass
782- assert factory . ready
783- await factory .destroy ()
799+ assert factory2 . _status == Status . READY
800+ await factory2 .destroy ()
784801
785802 @pytest .mark .asyncio
786803 async def test_destroy_async (self , mocker ):
@@ -884,7 +901,7 @@ async def start(*_):
884901 await factory .block_until_ready (1 )
885902 except :
886903 pass
887- assert factory .ready
904+ assert factory ._status == Status . READY
888905 assert factory .destroyed is False
889906
890907 await factory .destroy ()
@@ -925,7 +942,7 @@ async def test_pluggable_client_creation_async(self, mocker):
925942 await factory .block_until_ready (1 )
926943 except :
927944 pass
928- assert factory .ready
945+ assert factory ._status == Status . READY
929946 await factory .destroy ()
930947
931948 @pytest .mark .asyncio
@@ -954,3 +971,4 @@ async def _make_factory_with_apikey(apikey, *_, **__):
954971 await asyncio .sleep (0.5 )
955972 assert factory .destroyed
956973 assert len (build_redis .mock_calls ) == 2
974+
0 commit comments