@@ -122,6 +122,41 @@ def get(sdk, splitChanges, sdk_key, extra_headers, query):
122122 assert self .query [2 ] == {'s' : '1.3' , 'since' : 123 , 'rbSince' : - 1 }
123123 assert response == {"ff" : {"d" : [], "s" : 123 , "t" : 456 }, "rbs" : {"d" : [], "s" : 123 , "t" : - 1 }}
124124 assert split_api .clear_storage
125+
126+ def test_using_old_spec_since (self , mocker ):
127+ """Test using old_spec_since variable."""
128+ httpclient = mocker .Mock (spec = client .HttpClient )
129+ self .counter = 0
130+ self .query = []
131+ def get (sdk , splitChanges , sdk_key , extra_headers , query ):
132+ self .counter += 1
133+ self .query .append (query )
134+ if self .counter == 1 :
135+ return client .HttpResponse (400 , 'error' , {})
136+ if self .counter == 2 :
137+ return client .HttpResponse (200 , '{"splits": [], "since": 123, "till": 456}' , {})
138+ if self .counter == 3 :
139+ return client .HttpResponse (400 , 'error' , {})
140+ if self .counter == 4 :
141+ return client .HttpResponse (200 , '{"splits": [], "since": 456, "till": 456}' , {})
142+
143+ httpclient .is_sdk_endpoint_overridden .return_value = True
144+ httpclient .get = get
145+ split_api = splits .SplitsAPI (httpclient , 'some_api_key' , SdkMetadata ('1.0' , 'some' , '1.2.3.4' ), mocker .Mock ())
146+ response = split_api .fetch_splits (123 , - 1 , FetchOptions (False , None , None , None ))
147+ assert response == {"ff" : {"d" : [], "s" : 123 , "t" : 456 }, "rbs" : {"d" : [], "s" : - 1 , "t" : - 1 }}
148+ assert self .query == [{'s' : '1.3' , 'since' : 123 , 'rbSince' : - 1 }, {'s' : '1.1' , 'since' : 123 }]
149+ assert not split_api .clear_storage
150+
151+ time .sleep (1 )
152+ splits ._PROXY_CHECK_INTERVAL_MILLISECONDS_SS = 10
153+
154+ response = split_api .fetch_splits (456 , - 1 , FetchOptions (False , None , None , None ))
155+ time .sleep (1 )
156+ splits ._PROXY_CHECK_INTERVAL_MILLISECONDS_SS = 1000000
157+ assert self .query [2 ] == {'s' : '1.3' , 'since' : 456 , 'rbSince' : - 1 }
158+ assert self .query [3 ] == {'s' : '1.1' , 'since' : 456 }
159+ assert response == {"ff" : {"d" : [], "s" : 456 , "t" : 456 }, "rbs" : {"d" : [], "s" : - 1 , "t" : - 1 }}
125160
126161class SplitAPIAsyncTests (object ):
127162 """Split async API test cases."""
@@ -253,9 +288,45 @@ async def get(sdk, splitChanges, sdk_key, extra_headers, query):
253288 assert self .query == [{'s' : '1.3' , 'since' : 123 , 'rbSince' : - 1 }, {'s' : '1.1' , 'since' : 123 }]
254289 assert not split_api .clear_storage
255290
256- time .sleep (1 )
291+ time .sleep (1 )
257292 splits ._PROXY_CHECK_INTERVAL_MILLISECONDS_SS = 10
258293 response = await split_api .fetch_splits (123 , - 1 , FetchOptions (False , None , None , None ))
259294 assert self .query [2 ] == {'s' : '1.3' , 'since' : 123 , 'rbSince' : - 1 }
260295 assert response == {"ff" : {"d" : [], "s" : 123 , "t" : 456 }, "rbs" : {"d" : [], "s" : 123 , "t" : - 1 }}
261296 assert split_api .clear_storage
297+
298+ @pytest .mark .asyncio
299+ async def test_using_old_spec_since (self , mocker ):
300+ """Test using old_spec_since variable."""
301+ httpclient = mocker .Mock (spec = client .HttpClient )
302+ self .counter = 0
303+ self .query = []
304+ async def get (sdk , splitChanges , sdk_key , extra_headers , query ):
305+ self .counter += 1
306+ self .query .append (query )
307+ if self .counter == 1 :
308+ return client .HttpResponse (400 , 'error' , {})
309+ if self .counter == 2 :
310+ return client .HttpResponse (200 , '{"splits": [], "since": 123, "till": 456}' , {})
311+ if self .counter == 3 :
312+ return client .HttpResponse (400 , 'error' , {})
313+ if self .counter == 4 :
314+ return client .HttpResponse (200 , '{"splits": [], "since": 456, "till": 456}' , {})
315+
316+ httpclient .is_sdk_endpoint_overridden .return_value = True
317+ httpclient .get = get
318+ split_api = splits .SplitsAPIAsync (httpclient , 'some_api_key' , SdkMetadata ('1.0' , 'some' , '1.2.3.4' ), mocker .Mock ())
319+ response = await split_api .fetch_splits (123 , - 1 , FetchOptions (False , None , None , None ))
320+ assert response == {"ff" : {"d" : [], "s" : 123 , "t" : 456 }, "rbs" : {"d" : [], "s" : - 1 , "t" : - 1 }}
321+ assert self .query == [{'s' : '1.3' , 'since' : 123 , 'rbSince' : - 1 }, {'s' : '1.1' , 'since' : 123 }]
322+ assert not split_api .clear_storage
323+
324+ time .sleep (1 )
325+ splits ._PROXY_CHECK_INTERVAL_MILLISECONDS_SS = 10
326+
327+ response = await split_api .fetch_splits (456 , - 1 , FetchOptions (False , None , None , None ))
328+ time .sleep (1 )
329+ splits ._PROXY_CHECK_INTERVAL_MILLISECONDS_SS = 1000000
330+ assert self .query [2 ] == {'s' : '1.3' , 'since' : 456 , 'rbSince' : - 1 }
331+ assert self .query [3 ] == {'s' : '1.1' , 'since' : 456 }
332+ assert response == {"ff" : {"d" : [], "s" : 456 , "t" : 456 }, "rbs" : {"d" : [], "s" : - 1 , "t" : - 1 }}
0 commit comments