Skip to content

Commit f59ff28

Browse files
Revert "DRY user context"
This reverts commit 13bb958.
1 parent 06acf6e commit f59ff28

File tree

1 file changed

+21
-22
lines changed

1 file changed

+21
-22
lines changed

‎mixpanel/flags/test_local_feature_flags.py‎

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
TEST_FLAG_KEY = "test_flag"
1313
DISTINCT_ID = "user123"
14-
USER_CONTEXT = {"distinct_id": DISTINCT_ID}
1514

1615
def create_test_flag(
1716
flag_key: str = TEST_FLAG_KEY,
@@ -108,7 +107,7 @@ async def setup_flags_with_polling(self, flags_in_order: List[List[Experimentati
108107
@respx.mock
109108
async def test_get_variant_value_returns_fallback_when_no_flag_definitions(self):
110109
await self.setup_flags([])
111-
result = self._flags.get_variant_value("nonexistent_flag", "control", USER_CONTEXT)
110+
result = self._flags.get_variant_value("nonexistent_flag", "control", {"distinct_id": DISTINCT_ID})
112111
assert result == "control"
113112

114113
@respx.mock
@@ -118,14 +117,14 @@ async def test_get_variant_value_returns_fallback_if_flag_definition_call_fails(
118117
)
119118

120119
await self._flags.astart_polling_for_definitions()
121-
result = self._flags.get_variant_value("nonexistent_flag", "control", USER_CONTEXT)
120+
result = self._flags.get_variant_value("nonexistent_flag", "control", {"distinct_id": DISTINCT_ID})
122121
assert result == "control"
123122

124123
@respx.mock
125124
async def test_get_variant_value_returns_fallback_when_flag_does_not_exist(self):
126125
other_flag = create_test_flag("other_flag")
127126
await self.setup_flags([other_flag])
128-
result = self._flags.get_variant_value("nonexistent_flag", "control", USER_CONTEXT)
127+
result = self._flags.get_variant_value("nonexistent_flag", "control", {"distinct_id": DISTINCT_ID})
129128
assert result == "control"
130129

131130
@respx.mock
@@ -139,7 +138,7 @@ async def test_get_variant_value_returns_fallback_when_no_context(self):
139138
async def test_get_variant_value_returns_fallback_when_wrong_context_key(self):
140139
flag = create_test_flag(context="user_id")
141140
await self.setup_flags([flag])
142-
result = self._flags.get_variant_value(TEST_FLAG_KEY, "fallback", USER_CONTEXT)
141+
result = self._flags.get_variant_value(TEST_FLAG_KEY, "fallback", {"distinct_id": DISTINCT_ID})
143142
assert result == "fallback"
144143

145144
@respx.mock
@@ -177,14 +176,14 @@ async def test_get_variant_value_returns_fallback_when_test_user_variant_not_con
177176
async def test_get_variant_value_returns_fallback_when_rollout_percentage_zero(self):
178177
flag = create_test_flag(rollout_percentage=0.0)
179178
await self.setup_flags([flag])
180-
result = self._flags.get_variant_value(TEST_FLAG_KEY, "fallback", USER_CONTEXT)
179+
result = self._flags.get_variant_value(TEST_FLAG_KEY, "fallback", {"distinct_id": DISTINCT_ID})
181180
assert result == "fallback"
182181

183182
@respx.mock
184183
async def test_get_variant_value_returns_variant_when_rollout_percentage_hundred(self):
185184
flag = create_test_flag(rollout_percentage=100.0)
186185
await self.setup_flags([flag])
187-
result = self._flags.get_variant_value(TEST_FLAG_KEY, "fallback", USER_CONTEXT)
186+
result = self._flags.get_variant_value(TEST_FLAG_KEY, "fallback", {"distinct_id": DISTINCT_ID})
188187
assert result != "fallback"
189188

190189
# TODO Joshua start here
@@ -262,7 +261,7 @@ async def test_get_variant_value_picks_correct_variant_with_hundred_percent_spli
262261
]
263262
flag = create_test_flag(variants=variants, rollout_percentage=100.0)
264263
await self.setup_flags([flag])
265-
result = self._flags.get_variant_value(TEST_FLAG_KEY, "fallback", USER_CONTEXT)
264+
result = self._flags.get_variant_value(TEST_FLAG_KEY, "fallback", {"distinct_id": DISTINCT_ID})
266265
assert result == "variant_a"
267266

268267
@respx.mock
@@ -275,7 +274,7 @@ async def test_get_variant_value_picks_correct_variant_with_half_migrated_group_
275274
variant_splits = {"A": 0.0, "B": 100.0, "C": 0.0}
276275
flag = create_test_flag(variants=variants, rollout_percentage=100.0, variant_splits=variant_splits)
277276
await self.setup_flags([flag])
278-
result = self._flags.get_variant_value(TEST_FLAG_KEY, "fallback", USER_CONTEXT)
277+
result = self._flags.get_variant_value(TEST_FLAG_KEY, "fallback", {"distinct_id": DISTINCT_ID})
279278
assert result == "variant_b"
280279

281280
@respx.mock
@@ -288,7 +287,7 @@ async def test_get_variant_value_picks_correct_variant_with_full_migrated_group_
288287
variant_splits = {"A": 0.0, "B": 0.0, "C": 100.0}
289288
flag = create_test_flag(variants=variants, rollout_percentage=100.0, variant_splits=variant_splits)
290289
await self.setup_flags([flag])
291-
result = self._flags.get_variant_value(TEST_FLAG_KEY, "fallback", USER_CONTEXT)
290+
result = self._flags.get_variant_value(TEST_FLAG_KEY, "fallback", {"distinct_id": DISTINCT_ID})
292291
assert result == "variant_c"
293292

294293
@respx.mock
@@ -299,7 +298,7 @@ async def test_get_variant_value_picks_overriden_variant(self):
299298
]
300299
flag = create_test_flag(variants=variants, variant_override=VariantOverride(key="B"))
301300
await self.setup_flags([flag])
302-
result = self._flags.get_variant_value(TEST_FLAG_KEY, "control", USER_CONTEXT)
301+
result = self._flags.get_variant_value(TEST_FLAG_KEY, "control", {"distinct_id": DISTINCT_ID})
303302
assert result == "variant_b"
304303

305304
@respx.mock
@@ -308,7 +307,7 @@ async def test_get_variant_value_tracks_exposure_when_variant_selected(self):
308307
await self.setup_flags([flag])
309308
with patch('mixpanel.flags.utils.normalized_hash') as mock_hash:
310309
mock_hash.return_value = 0.5
311-
_ = self._flags.get_variant_value(TEST_FLAG_KEY, "fallback", USER_CONTEXT)
310+
_ = self._flags.get_variant_value(TEST_FLAG_KEY, "fallback", {"distinct_id": DISTINCT_ID})
312311
self._mock_tracker.assert_called_once()
313312

314313
@respx.mock
@@ -351,7 +350,7 @@ async def test_get_variant_value_tracks_exposure_with_correct_properties(self, e
351350
@respx.mock
352351
async def test_get_variant_value_does_not_track_exposure_on_fallback(self):
353352
await self.setup_flags([])
354-
_ = self._flags.get_variant_value("nonexistent_flag", "fallback", USER_CONTEXT)
353+
_ = self._flags.get_variant_value("nonexistent_flag", "fallback", {"distinct_id": DISTINCT_ID})
355354
self._mock_tracker.assert_not_called()
356355

357356
@respx.mock
@@ -367,7 +366,7 @@ async def test_get_all_variants_returns_all_variants_when_user_in_rollout(self):
367366
flag2 = create_test_flag(flag_key="flag2", rollout_percentage=100.0)
368367
await self.setup_flags([flag1, flag2])
369368

370-
result = self._flags.get_all_variants(USER_CONTEXT)
369+
result = self._flags.get_all_variants({"distinct_id": DISTINCT_ID})
371370

372371
assert len(result) == 2 and "flag1" in result and "flag2" in result
373372

@@ -377,15 +376,15 @@ async def test_get_all_variants_returns_partial_variants_when_user_in_some_rollo
377376
flag2 = create_test_flag(flag_key="flag2", rollout_percentage=0.0)
378377
await self.setup_flags([flag1, flag2])
379378

380-
result = self._flags.get_all_variants(USER_CONTEXT)
379+
result = self._flags.get_all_variants({"distinct_id": DISTINCT_ID})
381380

382381
assert len(result) == 1 and "flag1" in result and "flag2" not in result
383382

384383
@respx.mock
385384
async def test_get_all_variants_returns_empty_dict_when_no_flags_configured(self):
386385
await self.setup_flags([])
387386

388-
result = self._flags.get_all_variants(USER_CONTEXT)
387+
result = self._flags.get_all_variants({"distinct_id": DISTINCT_ID})
389388

390389
assert result == {}
391390

@@ -395,7 +394,7 @@ async def test_get_all_variants_does_not_track_exposure_events(self):
395394
flag2 = create_test_flag(flag_key="flag2", rollout_percentage=100.0)
396395
await self.setup_flags([flag1, flag2])
397396

398-
_ = self._flags.get_all_variants(USER_CONTEXT)
397+
_ = self._flags.get_all_variants({"distinct_id": DISTINCT_ID})
399398

400399
self._mock_tracker.assert_not_called()
401400

@@ -405,7 +404,7 @@ async def test_track_exposure_event_successfully_tracks(self):
405404
await self.setup_flags([flag])
406405

407406
variant = SelectedVariant(key="treatment", variant_value="treatment")
408-
self._flags.track_exposure_event(TEST_FLAG_KEY, variant, USER_CONTEXT)
407+
self._flags.track_exposure_event(TEST_FLAG_KEY, variant, {"distinct_id": DISTINCT_ID})
409408

410409
self._mock_tracker.assert_called_once()
411410

@@ -425,7 +424,7 @@ async def test_are_flags_ready_returns_true_when_empty_flags_loaded(self):
425424
@respx.mock
426425
async def test_is_enabled_returns_false_for_nonexistent_flag(self):
427426
await self.setup_flags([])
428-
result = self._flags.is_enabled("nonexistent_flag", USER_CONTEXT)
427+
result = self._flags.is_enabled("nonexistent_flag", {"distinct_id": DISTINCT_ID})
429428
assert result == False
430429

431430
@respx.mock
@@ -435,7 +434,7 @@ async def test_is_enabled_returns_true_for_true_variant_value(self):
435434
]
436435
flag = create_test_flag(variants=variants, rollout_percentage=100.0)
437436
await self.setup_flags([flag])
438-
result = self._flags.is_enabled(TEST_FLAG_KEY, USER_CONTEXT)
437+
result = self._flags.is_enabled(TEST_FLAG_KEY, {"distinct_id": DISTINCT_ID})
439438
assert result == True
440439

441440
@respx.mock
@@ -460,7 +459,7 @@ async def track_fetch_calls(self):
460459
async with polling_limit_check:
461460
await polling_limit_check.wait_for(lambda: polling_iterations >= len(flags_in_order))
462461

463-
result2 = self._flags_with_polling.get_variant_value(TEST_FLAG_KEY, "fallback", USER_CONTEXT)
462+
result2 = self._flags_with_polling.get_variant_value(TEST_FLAG_KEY, "fallback", {"distinct_id": DISTINCT_ID})
464463
assert result2 != "fallback"
465464

466465
class TestLocalFeatureFlagsProviderSync:
@@ -506,5 +505,5 @@ def track_fetch_calls(self):
506505
self.setup_flags_with_polling(flags_in_order)
507506
polling_event.wait(timeout=5.0)
508507
assert (polling_iterations >= 3 )
509-
result2 = self._flags_with_polling.get_variant_value(TEST_FLAG_KEY, "fallback", USER_CONTEXT)
508+
result2 = self._flags_with_polling.get_variant_value(TEST_FLAG_KEY, "fallback", {"distinct_id": DISTINCT_ID})
510509
assert result2 != "fallback"

0 commit comments

Comments
 (0)