Skip to content

Commit 573140b

Browse files
committed
return from exposure() if variant_name not passed in
1 parent 938148d commit 573140b

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

reddit_decider/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,10 @@ def expose(
392392
if decider is None:
393393
return
394394

395+
if variant_name is None or variant_name is "":
396+
logger.warning(f"`variant_name` not provided in expose() call for experiment: {experiment_name}")
397+
return
398+
395399
experiment = decider.get_experiment(experiment_name)
396400
error = experiment.err()
397401
if error:

tests/decider_tests.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -749,6 +749,24 @@ def test_expose(self):
749749
experiment_name="exp_1", variant=variant, event_fields=event_fields
750750
)
751751

752+
def test_expose_without_variant_name(self):
753+
with create_temp_config_file(self.exp_base_config) as f:
754+
decider = self.setup_decider(f.name, self.dc)
755+
756+
self.assertEqual(self.event_logger.log.call_count, 0)
757+
variant = "variant_4"
758+
with self.assertLogs() as captured:
759+
decider.expose("exp_1", None)
760+
761+
assert any(
762+
'`variant_name` not provided in expose() call for experiment: exp_1'
763+
in x.getMessage()
764+
for x in captured.records
765+
)
766+
767+
# exposure assertions
768+
self.assertEqual(self.event_logger.log.call_count, 0)
769+
752770
def test_get_variant_for_identifier_without_expose_user_id(self):
753771
identifier = USER_ID
754772
bucket_val = "user_id"

0 commit comments

Comments
 (0)