44import random
55
66from optimizely import bucketer
7+ from optimizely import entities
78from optimizely import logger
89from optimizely import optimizely
910from optimizely .helpers import enums
@@ -24,15 +25,18 @@ def test_bucket(self):
2425 # Variation 1
2526 with mock .patch ('optimizely.bucketer.Bucketer._generate_bucket_value' ,
2627 return_value = 42 ) as mock_generate_bucket_value :
27- self .assertEqual ('111128' , self .bucketer .bucket (self .project_config .get_experiment_from_key ('test_experiment' ),
28- 'test_user' ))
28+ self .assertEqual (entities .Variation ('111128' , 'control' ),
29+ self .bucketer .bucket (
30+ self .project_config .get_experiment_from_key ('test_experiment' ), 'test_user'
31+ ))
2932 mock_generate_bucket_value .assert_called_once_with ('test_user111127' )
3033
3134 # Variation 2
3235 with mock .patch ('optimizely.bucketer.Bucketer._generate_bucket_value' ,
3336 return_value = 4242 ) as mock_generate_bucket_value :
34- self .assertEqual ('111129' , self .bucketer .bucket (self .project_config .get_experiment_from_key ('test_experiment' ),
35- 'test_user' ))
37+ self .assertEqual (entities .Variation ('111129' , 'variation' ),
38+ self .bucketer .bucket (self .project_config .get_experiment_from_key ('test_experiment' ),
39+ 'test_user' ))
3640 mock_generate_bucket_value .assert_called_once_with ('test_user111127' )
3741
3842 # No matching variation
@@ -52,8 +56,8 @@ def test_bucket__user_in_forced_variation(self):
5256 """ Test that bucket returns variation ID for variation user is forced in. """
5357
5458 with mock .patch ('optimizely.bucketer.Bucketer._generate_bucket_value' ) as mock_generate_bucket_value :
55- self .assertEqual ('111128' , self . bucketer . bucket ( self . project_config . get_experiment_from_key ( 'test_experiment ' ),
56- 'user_1' ))
59+ self .assertEqual (entities . Variation ( '111128' , 'control ' ),
60+ self . bucketer . bucket ( self . project_config . get_experiment_from_key ( 'test_experiment' ), 'user_1' ))
5761
5862 # Confirm that bucket value generation did not happen
5963 self .assertEqual (0 , mock_generate_bucket_value .call_count )
@@ -62,7 +66,7 @@ def test_bucket__user_in_forced_variation__invalid_variation_id(self):
6266 """ Test that bucket returns None when variation user is forced in is invalid. """
6367
6468 with mock .patch ('optimizely.bucketer.Bucketer._generate_bucket_value' ) as mock_generate_bucket_value , \
65- mock .patch ('optimizely.project_config.ProjectConfig.get_variation_id ' ,
69+ mock .patch ('optimizely.project_config.ProjectConfig.get_variation_from_key ' ,
6670 return_value = None ) as mock_get_variation_id :
6771 self .assertIsNone (self .bucketer .bucket (self .project_config .get_experiment_from_key ('test_experiment' ),
6872 'user_1' ))
@@ -77,8 +81,8 @@ def test_bucket__experiment_in_group(self):
7781 # In group, matching experiment and variation
7882 with mock .patch ('optimizely.bucketer.Bucketer._generate_bucket_value' ,
7983 side_effect = [42 , 4242 ]) as mock_generate_bucket_value :
80- self .assertEqual ('28902' , self . bucketer . bucket ( self . project_config . get_experiment_from_key ( 'group_exp_1 ' ),
81- 'test_user' ))
84+ self .assertEqual (entities . Variation ( '28902' , 'group_exp_1_variation ' ),
85+ self . bucketer . bucket ( self . project_config . get_experiment_from_key ( 'group_exp_1' ), 'test_user' ))
8286
8387 self .assertEqual ([mock .call ('test_user19228' ), mock .call ('test_user32222' )],
8488 mock_generate_bucket_value .call_args_list )
@@ -110,8 +114,8 @@ def test_bucket__experiment_in_group__user_in_forced_variation(self):
110114 """ Test that bucket returns variation ID for variation user is forced in. """
111115
112116 with mock .patch ('optimizely.bucketer.Bucketer._generate_bucket_value' ) as mock_generate_bucket_value :
113- self .assertEqual ('28905' , self . bucketer . bucket ( self . project_config . get_experiment_from_key ( 'group_exp_2 ' ),
114- 'user_1' ))
117+ self .assertEqual (entities . Variation ( '28905' , 'group_exp_2_control ' ),
118+ self . bucketer . bucket ( self . project_config . get_experiment_from_key ( 'group_exp_2' ), 'user_1' ))
115119
116120 # Confirm that bucket value generation did not happen
117121 self .assertEqual (0 , mock_generate_bucket_value .call_count )
@@ -151,8 +155,9 @@ def test_bucket(self):
151155 # Variation 1
152156 with mock .patch ('optimizely.bucketer.Bucketer._generate_bucket_value' , return_value = 42 ),\
153157 mock .patch ('optimizely.logger.SimpleLogger.log' ) as mock_logging :
154- self .assertEqual ('111128' , self .bucketer .bucket (self .project_config .get_experiment_from_key ('test_experiment' ),
155- 'test_user' ))
158+ self .assertEqual (entities .Variation ('111128' , 'control' ),
159+ self .bucketer .bucket (self .project_config .get_experiment_from_key ('test_experiment' ),
160+ 'test_user' ))
156161
157162 self .assertEqual (2 , mock_logging .call_count )
158163 self .assertEqual (mock .call (enums .LogLevels .DEBUG , 'Assigned bucket 42 to user "test_user".' ),
@@ -165,8 +170,9 @@ def test_bucket(self):
165170 # Variation 2
166171 with mock .patch ('optimizely.bucketer.Bucketer._generate_bucket_value' , return_value = 4242 ),\
167172 mock .patch ('optimizely.logger.SimpleLogger.log' ) as mock_logging :
168- self .assertEqual ('111129' , self .bucketer .bucket (self .project_config .get_experiment_from_key ('test_experiment' ),
169- 'test_user' ))
173+ self .assertEqual (entities .Variation ('111129' , 'variation' ),
174+ self .bucketer .bucket (self .project_config .get_experiment_from_key ('test_experiment' ),
175+ 'test_user' ))
170176 self .assertEqual (2 , mock_logging .call_count )
171177 self .assertEqual (mock .call (enums .LogLevels .DEBUG , 'Assigned bucket 4242 to user "test_user".' ),
172178 mock_logging .call_args_list [0 ])
@@ -191,8 +197,8 @@ def test_bucket__user_in_forced_variation(self):
191197
192198 with mock .patch ('optimizely.bucketer.Bucketer._generate_bucket_value' ),\
193199 mock .patch ('optimizely.logger.SimpleLogger.log' ) as mock_logging :
194- self .assertEqual ('111128' , self . bucketer . bucket ( self . project_config . get_experiment_from_key ( 'test_experiment ' ),
195- 'user_1' ))
200+ self .assertEqual (entities . Variation ( '111128' , 'control ' ),
201+ self . bucketer . bucket ( self . project_config . get_experiment_from_key ( 'test_experiment' ), 'user_1' ))
196202
197203 mock_logging .assert_called_with (enums .LogLevels .INFO , 'User "user_1" is forced in variation "control".' )
198204
@@ -203,8 +209,8 @@ def test_bucket__experiment_in_group(self):
203209 with mock .patch ('optimizely.bucketer.Bucketer._generate_bucket_value' ,
204210 side_effect = [42 , 4242 ]),\
205211 mock .patch ('optimizely.logger.SimpleLogger.log' ) as mock_logging :
206- self .assertEqual ('28902' , self . bucketer . bucket ( self . project_config . get_experiment_from_key ( 'group_exp_1 ' ),
207- 'test_user' ))
212+ self .assertEqual (entities . Variation ( '28902' , 'group_exp_1_variation ' ),
213+ self . bucketer . bucket ( self . project_config . get_experiment_from_key ( 'group_exp_1' ), 'test_user' ))
208214 self .assertEqual (4 , mock_logging .call_count )
209215 self .assertEqual (mock .call (enums .LogLevels .DEBUG , 'Assigned bucket 42 to user "test_user".' ),
210216 mock_logging .call_args_list [0 ])
@@ -277,8 +283,8 @@ def test_bucket__experiment_in_group__user_in_forced_variation(self):
277283
278284 with mock .patch ('optimizely.bucketer.Bucketer._generate_bucket_value' ),\
279285 mock .patch ('optimizely.logger.SimpleLogger.log' ) as mock_logging :
280- self .assertEqual ('28905' , self . bucketer . bucket ( self . project_config . get_experiment_from_key ( 'group_exp_2 ' ),
281- 'user_1' ))
286+ self .assertEqual (entities . Variation ( '28905' , 'group_exp_2_control ' ),
287+ self . bucketer . bucket ( self . project_config . get_experiment_from_key ( 'group_exp_2' ), 'user_1' ))
282288
283289 # Confirm that bucket value generation did not happen
284290 mock_logging .assert_called_with (enums .LogLevels .INFO , 'User "user_1" is forced in variation "group_exp_2_control".' )
0 commit comments