@@ -34,18 +34,42 @@ def test_get_bucketing_id__no_bucketing_id_attribute(self):
3434 """ Test that _get_bucketing_id returns correct bucketing ID when there is no bucketing ID attribute. """
3535
3636 # No attributes
37- self .assertEqual ('test_user' , decision_service . DecisionService ._get_bucketing_id ('test_user' , None ))
37+ self .assertEqual ('test_user' , self . decision_service ._get_bucketing_id ('test_user' , None ))
3838
3939 # With attributes, but no bucketing ID
40- self .assertEqual ('test_user' , decision_service . DecisionService ._get_bucketing_id ('test_user' ,
40+ self .assertEqual ('test_user' , self . decision_service ._get_bucketing_id ('test_user' ,
4141 {'random_key' : 'random_value' }))
4242
4343 def test_get_bucketing_id__bucketing_id_attribute (self ):
4444 """ Test that _get_bucketing_id returns correct bucketing ID when there is bucketing ID attribute. """
45+ with mock .patch .object (self .decision_service , 'logger' ) as mock_decision_logging :
46+ self .assertEqual ('user_bucket_value' ,
47+ self .decision_service ._get_bucketing_id ('test_user' ,
48+ {'$opt_bucketing_id' : 'user_bucket_value' }))
49+ mock_decision_logging .debug .assert_not_called ()
4550
46- self .assertEqual ('user_bucket_value' ,
47- decision_service .DecisionService ._get_bucketing_id ('test_user' ,
48- {'$opt_bucketing_id' : 'user_bucket_value' }))
51+ def test_get_bucketing_id__bucketing_id_attribute_not_a_string (self ):
52+ """ Test that _get_bucketing_id returns user ID as bucketing ID when bucketing ID attribute is not a string"""
53+ with mock .patch .object (self .decision_service , 'logger' ) as mock_decision_logging :
54+ self .assertEqual ('test_user' ,
55+ self .decision_service ._get_bucketing_id ('test_user' ,
56+ {'$opt_bucketing_id' : True }))
57+ mock_decision_logging .warning .assert_called_once_with (
58+ 'Bucketing ID attribute is not a string. Defaulted to user_id.' )
59+ mock_decision_logging .reset_mock ()
60+
61+ self .assertEqual ('test_user' ,
62+ self .decision_service ._get_bucketing_id ('test_user' ,
63+ {'$opt_bucketing_id' : 5.9 }))
64+ mock_decision_logging .warning .assert_called_once_with (
65+ 'Bucketing ID attribute is not a string. Defaulted to user_id.' )
66+ mock_decision_logging .reset_mock ()
67+
68+ self .assertEqual ('test_user' ,
69+ self .decision_service ._get_bucketing_id ('test_user' ,
70+ {'$opt_bucketing_id' : 5 }))
71+ mock_decision_logging .warning .assert_called_once_with (
72+ 'Bucketing ID attribute is not a string. Defaulted to user_id.' )
4973
5074 def test_get_forced_variation__user_in_forced_variation (self ):
5175 """ Test that expected variation is returned if user is forced in a variation. """
0 commit comments