@@ -18,7 +18,11 @@ def test_two_phase_init():
1818 td_initializer .update (td_initializer .flag ("feature-flag" ).on (True ))
1919
2020 td_synchronizer = TestDataV2 .data_source ()
21- td_synchronizer .update (td_synchronizer .flag ("feature-flag" ).on (True ))
21+ # Set this to true, and then to false to ensure the version number exceeded
22+ # the initializer version number. Otherwise, they start as the same version
23+ # and the latest value is ignored.
24+ td_initializer .update (td_initializer .flag ("feature-flag" ).on (True ))
25+ td_synchronizer .update (td_synchronizer .flag ("feature-flag" ).on (False ))
2226 data_system_config = DataSystemConfig (
2327 initializers = [td_initializer .build_initializer ],
2428 primary_synchronizer = td_synchronizer .build_synchronizer ,
@@ -27,7 +31,8 @@ def test_two_phase_init():
2731 set_on_ready = Event ()
2832 fdv2 = FDv2 (Config (sdk_key = "dummy" ), data_system_config )
2933
30- changed = Event ()
34+ initialized = Event ()
35+ modified = Event ()
3136 changes : List [FlagChange ] = []
3237 count = 0
3338
@@ -37,18 +42,22 @@ def listener(flag_change: FlagChange):
3742 changes .append (flag_change )
3843
3944 if count == 2 :
40- changed .set ()
45+ initialized .set ()
46+ if count == 3 :
47+ modified .set ()
4148
4249 fdv2 .flag_tracker .add_listener (listener )
4350
4451 fdv2 .start (set_on_ready )
4552 assert set_on_ready .wait (1 ), "Data system did not become ready in time"
53+ assert initialized .wait (1 ), "Flag change listener was not called in time"
4654
4755 td_synchronizer .update (td_synchronizer .flag ("feature-flag" ).on (False ))
48- assert changed .wait (1 ), "Flag change listener was not called in time"
49- assert len (changes ) == 2
56+ assert modified .wait (1 ), "Flag change listener was not called in time"
57+ assert len (changes ) == 3
5058 assert changes [0 ].key == "feature-flag"
5159 assert changes [1 ].key == "feature-flag"
60+ assert changes [2 ].key == "feature-flag"
5261
5362
5463def test_can_stop_fdv2 ():
0 commit comments