@@ -34,6 +34,7 @@ def test_override_gate(self):
34
34
35
35
user_one = StatsigUser ("123" , email = "testuser@statsig.com" )
36
36
user_two = StatsigUser ("456" , email = "test@statsig.com" )
37
+ user_custom = StatsigUser ("789" , custom_ids = {"statsigId" : "abc" })
37
38
38
39
self .assertEqual (
39
40
server .check_gate (user_one , "any_gate" ),
@@ -47,12 +48,25 @@ def test_override_gate(self):
47
48
True
48
49
)
49
50
51
+ self .assertEqual (
52
+ server .check_gate (user_custom , "any_gate" ),
53
+ False
54
+ )
55
+
56
+ server .override_gate ("any_gate" , True , "abc" )
57
+
58
+ self .assertEqual (
59
+ server .check_gate (user_custom , "any_gate" ),
60
+ True
61
+ )
62
+
50
63
self .assertEqual (
51
64
server .check_gate (user_two , "any_gate" ),
52
65
False
53
66
)
54
67
55
68
server .override_gate ("any_gate" , False , "123" )
69
+ server .override_gate ("any_gate" , False , "abc" )
56
70
server .override_gate ("any_gate" , True , "456" )
57
71
58
72
self .assertEqual (
@@ -79,22 +93,37 @@ def test_override_gate(self):
79
93
server .check_gate (StatsigUser ("4123980" ), "any_gate" ),
80
94
True
81
95
)
96
+ self .assertEqual (
97
+ server .check_gate (user_custom , "any_gate" ),
98
+ False
99
+ )
82
100
83
101
# remove user override first
84
102
server .remove_gate_override ("any_gate" , "123" )
85
- # user one should now use global override
103
+ server .remove_gate_override ("any_gate" , "abc" )
104
+
105
+ # user one and user custom should now use global override
86
106
self .assertEqual (
87
107
server .check_gate (user_one , "any_gate" ),
88
108
True
89
109
)
90
110
111
+ self .assertEqual (
112
+ server .check_gate (user_custom , "any_gate" ),
113
+ True
114
+ )
115
+
91
116
# remove global override
92
117
server .remove_gate_override ("any_gate" )
93
- # user one should now have no override
118
+ # user one and user custom should now have no override
94
119
self .assertEqual (
95
120
server .check_gate (user_one , "any_gate" ),
96
121
False
97
122
)
123
+ self .assertEqual (
124
+ server .check_gate (user_custom , "any_gate" ),
125
+ False
126
+ )
98
127
99
128
# remove all overrides
100
129
server .remove_all_overrides ()
@@ -113,6 +142,7 @@ def test_override_all(self):
113
142
114
143
user_one = StatsigUser ("123" , email = "testuser@statsig.com" )
115
144
user_two = StatsigUser ("456" , email = "test@statsig.com" )
145
+ user_custom = StatsigUser ("789" , custom_ids = {"statsigId" : "abc" })
116
146
117
147
self .assertEqual (
118
148
server .check_gate (user_one , "any_gate" ),
@@ -124,6 +154,11 @@ def test_override_all(self):
124
154
False
125
155
)
126
156
157
+ self .assertEqual (
158
+ server .check_gate (user_custom , "any_gate" ),
159
+ False
160
+ )
161
+
127
162
server .override_gate ("any_gate" , True )
128
163
129
164
self .assertEqual (
@@ -136,6 +171,11 @@ def test_override_all(self):
136
171
True
137
172
)
138
173
174
+ self .assertEqual (
175
+ server .check_gate (user_custom , "any_gate" ),
176
+ True
177
+ )
178
+
139
179
server .override_experiment ("my_experiment" , {"test" : False })
140
180
141
181
self .assertEqual (
@@ -148,13 +188,19 @@ def test_override_all(self):
148
188
{"test" : False }
149
189
)
150
190
191
+ self .assertEqual (
192
+ server .get_experiment (user_custom , "my_experiment" ).get_value (),
193
+ {"test" : False }
194
+ )
195
+
151
196
def test_override_config (self ):
152
197
options = StatsigOptions (local_mode = True , disable_diagnostics = True )
153
198
server = StatsigServer ()
154
199
server .initialize ("secret-key" , options )
155
200
156
201
user_one = StatsigUser ("123" , email = "testuser@statsig.com" )
157
202
user_two = StatsigUser ("456" , email = "test@statsig.com" )
203
+ user_custom = StatsigUser ("789" , custom_ids = {"statsigId" : "abc" })
158
204
159
205
self .assertEqual (
160
206
server .get_config (user_one , "config" ).get_value (),
@@ -166,20 +212,32 @@ def test_override_config(self):
166
212
{}
167
213
)
168
214
215
+ self .assertEqual (
216
+ server .get_config (user_custom , "config" ).get_value (),
217
+ {}
218
+ )
219
+
169
220
override = {"test" : 123 }
170
221
server .override_config ("config" , override , "123" )
222
+ server .override_config ("config" , override , "abc" )
171
223
172
224
self .assertEqual (
173
225
server .get_config (user_one , "config" ).get_value (),
174
226
override
175
227
)
176
228
229
+ self .assertEqual (
230
+ server .get_config (user_custom , "config" ).get_value (),
231
+ override
232
+ )
233
+
177
234
self .assertEqual (
178
235
server .get_config (user_two , "config" ).get_value (),
179
236
{}
180
237
)
181
238
182
239
server .override_experiment ("config" , {}, "123" )
240
+ server .override_experiment ("config" , {}, "def" )
183
241
new_override = {"abc" : "def" }
184
242
server .override_experiment ("config" , new_override , "456" )
185
243
@@ -188,6 +246,11 @@ def test_override_config(self):
188
246
{}
189
247
)
190
248
249
+ self .assertEqual (
250
+ server .get_config (user_custom , "config" ).get_value (),
251
+ override
252
+ )
253
+
191
254
self .assertEqual (
192
255
server .get_config (user_two , "config" ).get_value (),
193
256
new_override
@@ -206,17 +269,30 @@ def test_override_config(self):
206
269
new_override
207
270
)
208
271
self .assertEqual (
209
- server .get_config (StatsigUser ("anyuser" ), "config" ).get_value (),
272
+ server .get_config (user_custom , "config" ).get_value (),
273
+ override
274
+ )
275
+ self .assertEqual (
276
+ server .get_config (StatsigUser ("789" ), "config" ).get_value (),
277
+ new_override_2
278
+ )
279
+ self .assertEqual (
280
+ server .get_config (StatsigUser ("000" , custom_ids = {"statsigId" : "ghi" }), "config" ).get_value (),
210
281
new_override_2
211
282
)
212
283
213
284
# remove user override first
214
285
server .remove_config_override ("config" , "123" )
215
- # user one should now use global override
286
+ server .remove_config_override ("config" , "abc" )
287
+ # user one and user custom should now use global override
216
288
self .assertEqual (
217
289
server .get_config (user_one , "config" ).get_value (),
218
290
new_override_2 ,
219
291
)
292
+ self .assertEqual (
293
+ server .get_config (user_custom , "config" ).get_value (),
294
+ new_override_2 ,
295
+ )
220
296
221
297
# remove global override
222
298
server .remove_config_override ("config" )
@@ -243,6 +319,7 @@ def test_override_layer(self):
243
319
244
320
user_one = StatsigUser ("123" , email = "testuser@statsig.com" )
245
321
user_two = StatsigUser ("456" , email = "test@statsig.com" )
322
+ user_custom = StatsigUser ("789" , custom_ids = {"statsigId" : "abc" })
246
323
247
324
# no override
248
325
self .assertEqual (
@@ -253,9 +330,14 @@ def test_override_layer(self):
253
330
server .get_layer (user_two , "a_layer" ).get ("a_string" , "fallback" ),
254
331
"fallback"
255
332
)
333
+ self .assertEqual (
334
+ server .get_layer (user_custom , "a_layer" ).get ("a_string" , "fallback" ),
335
+ "fallback"
336
+ )
256
337
257
338
# add override
258
339
server .override_layer ("a_layer" , {"a_string" : "override_str" }, "123" )
340
+ server .override_layer ("a_layer" , {"a_string" : "override_str" }, "abc" )
259
341
self .assertEqual (
260
342
server .get_layer (user_one , "a_layer" ).get ("a_string" , "fallback" ),
261
343
"override_str"
@@ -264,14 +346,23 @@ def test_override_layer(self):
264
346
server .get_layer (user_two , "a_layer" ).get ("a_string" , "fallback" ),
265
347
"fallback"
266
348
)
349
+ self .assertEqual (
350
+ server .get_layer (user_custom , "a_layer" ).get ("a_string" , "fallback" ),
351
+ "override_str"
352
+ )
267
353
268
- # change user 1, add to user 2
354
+ # change user 1 and user custom , add to user 2
269
355
server .override_layer ("a_layer" , {"a_bool" : True }, "123" )
356
+ server .override_layer ("a_layer" , {"a_bool" : True }, "abc" )
270
357
server .override_layer ("a_layer" , {"a_string" : "override_str" }, "456" )
271
358
self .assertEqual (
272
359
server .get_layer (user_one , "a_layer" ).get ("a_string" , "fallback" ),
273
360
"fallback"
274
361
)
362
+ self .assertEqual (
363
+ server .get_layer (user_custom , "a_layer" ).get ("a_string" , "fallback" ),
364
+ "fallback"
365
+ )
275
366
self .assertEqual (
276
367
server .get_layer (user_two , "a_layer" ).get ("a_string" , "fallback" ),
277
368
"override_str"
@@ -286,19 +377,28 @@ def test_override_layer(self):
286
377
287
378
# remove user override first
288
379
server .remove_layer_override ("a_layer" , "123" )
289
- # user one should now use global override
380
+ server .remove_layer_override ("a_layer" , "abc" )
381
+ # user one and user custom should now use global override
290
382
self .assertEqual (
291
383
server .get_layer (user_one , "a_layer" ).get ("a_string" , "fallback" ),
292
384
"global_override"
293
385
)
386
+ self .assertEqual (
387
+ server .get_layer (user_custom , "a_layer" ).get ("a_string" , "fallback" ),
388
+ "global_override"
389
+ )
294
390
295
391
# remove global override
296
392
server .remove_layer_override ("a_layer" )
297
- # user one should now have no override
393
+ # user one and user custom should now have no override
298
394
self .assertEqual (
299
395
server .get_layer (user_one , "a_layer" ).get ("a_string" , "fallback" ),
300
396
"fallback"
301
397
)
398
+ self .assertEqual (
399
+ server .get_layer (user_custom , "a_layer" ).get ("a_string" , "fallback" ),
400
+ "fallback"
401
+ )
302
402
303
403
# remove all overrides
304
404
server .remove_all_overrides ()
0 commit comments