Skip to content

Commit

Permalink
Merge branch 'master' into ali/update_badges
Browse files Browse the repository at this point in the history
  • Loading branch information
aliabbasrizvi committed Apr 24, 2018
2 parents 7093ac5 + f1b64ed commit c82e70d
Show file tree
Hide file tree
Showing 7 changed files with 130 additions and 146 deletions.
10 changes: 6 additions & 4 deletions tests/helpers_tests/test_audience.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,13 @@ def test_is_user_in_experiment__no_audience(self):
def test_is_user_in_experiment__no_attributes(self):
""" Test that is_user_in_experiment returns True when experiment is using no audience. """

self.assertFalse(audience.is_user_in_experiment(self.project_config,
self.project_config.get_experiment_from_key('test_experiment'), None))
self.assertFalse(audience.is_user_in_experiment(
self.project_config, self.project_config.get_experiment_from_key('test_experiment'), None)
)

self.assertFalse(audience.is_user_in_experiment(self.project_config,
self.project_config.get_experiment_from_key('test_experiment'), {}))
self.assertFalse(audience.is_user_in_experiment(
self.project_config, self.project_config.get_experiment_from_key('test_experiment'), {})
)

def test_is_user_in_experiment__audience_conditions_are_met(self):
""" Test that is_user_in_experiment returns True when audience conditions are met. """
Expand Down
38 changes: 19 additions & 19 deletions tests/test_bucketing.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,12 @@ def test_bucket(self):
# Variation 1
with mock.patch('optimizely.bucketer.Bucketer._generate_bucket_value',
return_value=42) as mock_generate_bucket_value:
self.assertEqual(entities.Variation('111128', 'control'),
self.bucketer.bucket(
self.project_config.get_experiment_from_key('test_experiment'),
'test_user', 'test_user'
))
self.assertEqual(
entities.Variation('111128', 'control'),
self.bucketer.bucket(
self.project_config.get_experiment_from_key('test_experiment'),
'test_user', 'test_user'
))
mock_generate_bucket_value.assert_called_once_with('test_user111127')

# Empty entity ID
Expand All @@ -56,12 +57,11 @@ def test_bucket(self):
# Variation 2
with mock.patch('optimizely.bucketer.Bucketer._generate_bucket_value',
return_value=5042) as mock_generate_bucket_value:
self.assertEqual(entities.Variation('111129', 'variation'),
self.bucketer.bucket(
self.project_config.get_experiment_from_key('test_experiment'),
'test_user',
'test_user'
))
self.assertEqual(
entities.Variation('111129', 'variation'),
self.bucketer.bucket(
self.project_config.get_experiment_from_key('test_experiment'), 'test_user', 'test_user'
))
mock_generate_bucket_value.assert_called_once_with('test_user111127')

# No matching variation
Expand Down Expand Up @@ -165,7 +165,7 @@ def test_bucket(self):

# Variation 1
with mock.patch('optimizely.bucketer.Bucketer._generate_bucket_value', return_value=42),\
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
self.assertEqual(entities.Variation('111128', 'control'),
self.bucketer.bucket(self.project_config.get_experiment_from_key('test_experiment'),
'test_user',
Expand Down Expand Up @@ -196,7 +196,7 @@ def test_bucket(self):

# Variation 2
with mock.patch('optimizely.bucketer.Bucketer._generate_bucket_value', return_value=5042),\
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
self.assertEqual(entities.Variation('111129', 'variation'),
self.bucketer.bucket(self.project_config.get_experiment_from_key('test_experiment'),
'test_user',
Expand All @@ -211,7 +211,7 @@ def test_bucket(self):

# No matching variation
with mock.patch('optimizely.bucketer.Bucketer._generate_bucket_value', return_value=424242),\
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
self.assertIsNone(self.bucketer.bucket(self.project_config.get_experiment_from_key('test_experiment'),
'test_user',
'test_user'))
Expand All @@ -227,7 +227,7 @@ def test_bucket__experiment_in_group(self):
# In group, matching experiment and variation
with mock.patch('optimizely.bucketer.Bucketer._generate_bucket_value',
side_effect=[42, 4242]),\
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
self.assertEqual(entities.Variation('28902', 'group_exp_1_variation'),
self.bucketer.bucket(self.project_config.get_experiment_from_key('group_exp_1'),
'test_user',
Expand All @@ -248,7 +248,7 @@ def test_bucket__experiment_in_group(self):
# In group, but in no experiment
with mock.patch('optimizely.bucketer.Bucketer._generate_bucket_value',
side_effect=[8400, 9500]),\
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
self.assertIsNone(self.bucketer.bucket(self.project_config.get_experiment_from_key('group_exp_1'),
'test_user',
'test_user'))
Expand All @@ -261,7 +261,7 @@ def test_bucket__experiment_in_group(self):
# In group, no matching experiment
with mock.patch('optimizely.bucketer.Bucketer._generate_bucket_value',
side_effect=[42, 9500]),\
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
self.assertIsNone(self.bucketer.bucket(
self.project_config.get_experiment_from_key('group_exp_1'), 'test_user', 'test_user'))
self.assertEqual(4, mock_logging.call_count)
Expand All @@ -277,7 +277,7 @@ def test_bucket__experiment_in_group(self):
# In group, experiment does not match
with mock.patch('optimizely.bucketer.Bucketer._generate_bucket_value',
side_effect=[42, 4242]),\
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
self.assertIsNone(self.bucketer.bucket(self.project_config.get_experiment_from_key('group_exp_2'),
'test_user',
'test_user'))
Expand All @@ -292,7 +292,7 @@ def test_bucket__experiment_in_group(self):
# In group no matching variation
with mock.patch('optimizely.bucketer.Bucketer._generate_bucket_value',
side_effect=[42, 424242]),\
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
mock.patch('optimizely.logger.SimpleLogger.log') as mock_logging:
self.assertIsNone(self.bucketer.bucket(self.project_config.get_experiment_from_key('group_exp_1'),
'test_user',
'test_user'))
Expand Down
6 changes: 2 additions & 4 deletions tests/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,7 @@ def test_init(self):
}, {
'entityId': '111129',
'endOfRange': 9000
}],
'111182'),
}], '111182'),
'group_exp_1': entities.Experiment(
'32222', 'group_exp_1', 'Running', [], [{
'key': 'group_exp_1_control',
Expand Down Expand Up @@ -425,8 +424,7 @@ def test_init__with_v4_datafile(self):
}, {
'entityId': '111129',
'endOfRange': 9000
}],
'111182'),
}], '111182'),
'group_exp_1': entities.Experiment(
'32222', 'group_exp_1', 'Running', [], [{
'key': 'group_exp_1_control',
Expand Down
18 changes: 9 additions & 9 deletions tests/test_decision_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,9 @@ def test_get_variation__user_has_stored_decision(self):
# Assert that stored variation is returned and bucketing service is not involved
mock_get_forced_variation.assert_called_once_with(experiment, 'test_user')
mock_lookup.assert_called_once_with('test_user')
mock_get_stored_variation.assert_called_once_with(experiment,
user_profile.UserProfile('test_user',
{'111127': {'variation_id': '111128'}}))
mock_get_stored_variation.assert_called_once_with(
experiment, user_profile.UserProfile('test_user', {'111127': {'variation_id': '111128'}})
)
self.assertEqual(0, mock_audience_check.call_count)
self.assertEqual(0, mock_bucket.call_count)
self.assertEqual(0, mock_save.call_count)
Expand Down Expand Up @@ -459,7 +459,8 @@ def test_get_variation_for_rollout__skips_to_everyone_else_rule(self, mock_loggi
mock.call(enums.LogLevels.DEBUG, 'User "test_user" is not in the traffic group for the targeting else. '
'Checking "Everyone Else" rule now.'),
mock.call(enums.LogLevels.DEBUG, 'User "test_user" meets conditions for targeting rule "Everyone Else".')],
mock_logging.call_args_list)
mock_logging.call_args_list
)

def test_get_variation_for_rollout__returns_none_for_user_not_in_rollout(self, mock_logging):
""" Test that get_variation_for_rollout returns None for the user not in the associated rollout. """
Expand Down Expand Up @@ -604,11 +605,10 @@ def test_get_variation_for_feature__returns_none_for_invalid_group_id(self, mock
feature = self.project_config.get_feature_from_key('test_feature_in_group')
feature.groupId = 'aabbccdd'

self.assertEqual(decision_service.Decision(None,
None,
decision_service.DECISION_SOURCE_EXPERIMENT),
self.decision_service.get_variation_for_feature(feature, 'test_user')
)
self.assertEqual(
decision_service.Decision(None, None, decision_service.DECISION_SOURCE_EXPERIMENT),
self.decision_service.get_variation_for_feature(feature, 'test_user')
)
mock_logging.assert_called_with(enums.LogLevels.ERROR,
enums.Errors.INVALID_GROUP_ID_ERROR.format('_get_variation_for_feature'))

Expand Down
4 changes: 2 additions & 2 deletions tests/test_event_dispatcher.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2016, Optimizely
# Copyright 2016, 2018, Optimizely
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
Expand Down Expand Up @@ -72,7 +72,7 @@ def test_dispatch_event__handle_request_exception(self):

with mock.patch('requests.post',
side_effect=request_exception.RequestException('Failed Request')) as mock_request_post,\
mock.patch('logging.error') as mock_log_error:
mock.patch('logging.error') as mock_log_error:
event_dispatcher.EventDispatcher.dispatch_event(event)

mock_request_post.assert_called_once_with(url, data=json.dumps(params),
Expand Down

0 comments on commit c82e70d

Please sign in to comment.