Skip to content

Commit 8569369

Browse files
committed
added edge cases test
1 parent 8bf2030 commit 8569369

File tree

2 files changed

+56
-1
lines changed

2 files changed

+56
-1
lines changed

tests/integration/test_streaming_e2e.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import time
66
import json
77
import base64
8+
import pytest
89

910
from queue import Queue
1011
from splitio.client.factory import get_factory
@@ -108,6 +109,17 @@ def test_happiness(self):
108109
assert factory.client().get_treatment('pindon', 'split2') == 'off'
109110
assert factory.client().get_treatment('maldo', 'split2') == 'on'
110111

112+
# test if changeNumber is missing
113+
# split_changes = make_split_fast_change_event(4)
114+
# data = json.loads(split_changes['data'])
115+
# inner_data = json.loads(data['data'])
116+
# inner_data['changeNumber'] = None
117+
# data['data'] = json.dumps(inner_data)
118+
# split_changes['data'] = json.dumps(data)
119+
# sse_server.publish(split_changes)
120+
# time.sleep(1)
121+
# assert factory.client().get_treatment('maldo', 'split1') == 'off'
122+
111123
sse_server.publish(make_split_fast_change_event(4))
112124
time.sleep(1)
113125
assert factory.client().get_treatment('maldo', 'split1') == 'on'

tests/push/test_split_worker.py

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,4 +118,47 @@ def put(feature_flag):
118118
self._feature_flag = None
119119
q.put(SplitChangeUpdate('some', 'SPLIT_UPDATE', 123456790, 2345, 'H4sIAAkVZWQC/8WST0+DQBDFv0qzZ0ig/BF6a2xjGismUk2MaZopzOKmy9Isy0EbvrtDwbY2Xo233Tdv5se85cCMBs5FtvrYYwIlsglratTMYiKns+chcAgc24UwsF0Xczt2cm5z8Jw8DmPH9wPyqr5zKyTITb2XwpA4TJ5KWWVgRKXYxHWcX/QUkVi264W+68bjaGyxupdCJ4i9KPI9UgyYpibI9Ha1eJnT/J2QsnNxkDVaLEcOjTQrjWBKVIasFefky95BFZg05Zb2mrhh5I9vgsiL44BAIIuKTeiQVYqLotHHLyLOoT1quRjub4fztQuLxj89LpePzytClGCyd9R3umr21ErOcitUh2PTZHY29HN2+JGixMxUujNfvMB3+u2pY1AXySad3z3Mk46msACDp8W7jhly4uUpFt3qD33vDAx0gLpXkx+P1GusbdcE24M2F4uaywwVEWvxSa1Oa13Vjvn2RXradm0xCVuUVBJqNCBGV0DrX4OcLpeb+/lreh3jH8Uw/JQj3UhkxPgCCurdEnADAAA=', 1))
120120
time.sleep(0.1)
121-
assert self._feature_flag.name == 'bilal_split'
121+
assert self._feature_flag.name == 'bilal_split'
122+
123+
def test_edge_cases(self, mocker):
124+
q = queue.Queue()
125+
split_worker = SplitWorker(handler_sync, q, mocker.Mock())
126+
global change_number_received
127+
split_worker.start()
128+
129+
def get_change_number():
130+
return 2345
131+
132+
def put(feature_flag):
133+
self._feature_flag = feature_flag
134+
135+
split_worker._feature_flag_storage.get_change_number = get_change_number
136+
split_worker._feature_flag_storage.put = put
137+
138+
# should Not call the handler
139+
self._feature_flag = None
140+
change_number_received = 0
141+
q.put(SplitChangeUpdate('some', 'SPLIT_UPDATE', 123456, 2345, "/2X9I7+N8R/FcPmUd76zjH7X/w4AAP//90glTw==", 2))
142+
time.sleep(0.1)
143+
assert self._feature_flag == None
144+
145+
# should Not call the handler
146+
self._feature_flag = None
147+
change_number_received = 0
148+
q.put(SplitChangeUpdate('some', 'SPLIT_UPDATE', 123456, 2345, "/2X9I7+N8R/FcPmUd76zjH7X/w4AAP//90glTw==", 4))
149+
time.sleep(0.1)
150+
assert self._feature_flag == None
151+
152+
# should Not call the handler
153+
self._feature_flag = None
154+
change_number_received = 0
155+
q.put(SplitChangeUpdate('some', 'SPLIT_UPDATE', 123456, None, 'eJzEUtFq20AQ/JUwz2c4WZZr3ZupTQh1FKjcQinGrKU95cjpZE6nh9To34ssJ3FNX0sfd3Zm53b2TgietDbF9vXIGdUMha5lDwFTQiGOmTQlchLRPJlEEZeTVJZ6oimWZTpP5WyWQMCNyoOxZPft0ZoA8TZ5aW1TUDCNg4qk/AueM5dQkyiez6IonS6mAu0IzWWSxovFLBZoA4WuhcLy8/bh+xoCL8bagaXJtixQsqbOhq1nCjW7AIVGawgUz+Qqzrr6wB4qmi9m00/JIk7TZCpAtmqgpgJF47SpOn9+UQt16s9YaS71z9NHOYQFha9Pm83Tty0EagrFM/t733RHqIFZH4wb7LDMVh+Ecc4Lv+ZsuQiNH8hXF3hLv39XXNCHbJ+v7x/X2eDmuKLA74sPihVr47jMuRpWfxy1Kwo0GLQjmv1xpBFD3+96gSP5cLVouM7QQaA1vxhK9uKmd853bEZS9jsBSwe2UDDu7mJxd2Mo/muQy81m/2X9I7+N8R/FcPmUd76zjH7X/w4AAP//90glTw==', 2))
156+
time.sleep(0.1)
157+
assert self._feature_flag == None
158+
159+
# should Not call the handler
160+
self._feature_flag = None
161+
change_number_received = 0
162+
q.put(SplitChangeUpdate('some', 'SPLIT_UPDATE', 123456, 2345, None, 1))
163+
time.sleep(0.1)
164+
assert self._feature_flag == None

0 commit comments

Comments
 (0)