Skip to content

Commit e6c1772

Browse files
committed
create get_default method for empty experiment object
1 parent 44373e9 commit e6c1772

File tree

3 files changed

+18
-26
lines changed

3 files changed

+18
-26
lines changed

optimizely/entities.py

+17
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,23 @@ def get_audience_conditions_or_ids(self):
7474
def __str__(self):
7575
return self.key
7676

77+
@staticmethod
78+
def get_default():
79+
""" returns an empty experiment object. """
80+
experiment = Experiment(
81+
id='',
82+
key='',
83+
layerId='',
84+
status='',
85+
variations=[],
86+
trafficAllocation=[],
87+
audienceIds=[],
88+
audienceConditions=[],
89+
forcedVariations={}
90+
)
91+
92+
return experiment
93+
7794

7895
class FeatureFlag(BaseEntity):
7996
def __init__(self, id, key, experimentIds, rolloutId, variables, groupId=None, **kwargs):

optimizely/optimizely.py

+1-11
Original file line numberDiff line numberDiff line change
@@ -199,17 +199,7 @@ def _send_impression_event(self, project_config, experiment, variation, flag_key
199199
attributes: Dict representing user attributes and values which need to be recorded.
200200
"""
201201
if not experiment:
202-
experiment = entities.Experiment(
203-
id='',
204-
key='',
205-
layerId='',
206-
status='',
207-
variations=[],
208-
trafficAllocation=[],
209-
audienceIds=[],
210-
audienceConditions=[],
211-
forcedVariations={}
212-
)
202+
experiment = entities.Experiment.get_default()
213203

214204
variation_id = variation.id if variation is not None else None
215205
user_event = user_event_factory.UserEventFactory.create_impression_event(

tests/test_user_context.py

-15
Original file line numberDiff line numberDiff line change
@@ -1568,9 +1568,6 @@ def test_should_return_valid_decision_after_setting_invalid_delivery_rule_variat
15681568
'rule (211127) and user (test_user) in the forced decision map.'
15691569
])))
15701570

1571-
# TODO - JAE: Can we change the test name and description? Not clear which part is invalid.
1572-
# Also, I see the forced set flag and decide flag is different. Is it intentional?
1573-
# TODO - CHECK WITH JAE if this test should return valid decision like docstring says!
15741571
def test_should_return_valid_decision_after_setting_invalid_experiment_rule_variation_in_forced_decision(self):
15751572
"""
15761573
Should return valid decision after setting invalid experiment rule variation in forced decision.
@@ -1596,18 +1593,6 @@ def test_should_return_valid_decision_after_setting_invalid_experiment_rule_vari
15961593
self.assertEqual(decide_decision.user_context.user_id, 'test_user')
15971594
self.assertEqual(decide_decision.user_context.get_user_attributes(), {})
15981595

1599-
# expected_reasons = [
1600-
# 'Evaluating audiences for rule 1: ["11154"].', 'Audiences for rule 1 collectively evaluated to FALSE.',
1601-
# 'User "test_user" does not meet audience conditions for targeting rule 1.',
1602-
# 'Evaluating audiences for rule 2: ["11159"].', 'Audiences for rule 2 collectively evaluated to FALSE.',
1603-
# 'User "test_user" does not meet audience conditions for targeting rule 2.',
1604-
# 'Evaluating audiences for rule Everyone Else: [].',
1605-
# 'Audiences for rule Everyone Else collectively evaluated to TRUE.',
1606-
# 'User "test_user" meets audience conditions for targeting rule Everyone Else.',
1607-
# 'User "test_user" bucketed into a targeting rule Everyone Else.'
1608-
# ]
1609-
1610-
# TODO - BELOW ARE NEW UPDATED REASONS
16111596
expected_reasons = [
16121597
'Invalid variation is mapped to flag (test_feature_in_experiment), rule (test_experiment) '
16131598
'and user (test_user) in the forced decision map.',

0 commit comments

Comments
 (0)