8000 [OASIS-7757] - Added additional test cases to test_optimizely and tes… · optimizely/python-sdk@996584a · GitHub
[go: up one dir, main page]

Skip to content

Commit 996584a

Browse files
[OASIS-7757] - Added additional test cases to test_optimizely and test_user_context.
1 parent 64a2899 commit 996584a

File tree

3 files changed

+39
-2
lines changed

3 files changed

+39
-2
lines changed

optimizely/optimizely_config.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ def get_environment_key(self):
4747
Returns:
4848
A string containing environment key.
4949
"""
50-
return self.environemnt_key
50+
return self.environment_key
51+
5152

5253
class OptimizelyExperiment(object):
5354
def __init__(self, id, key, variations_map):
@@ -117,7 +118,13 @@ def get_config(self):
117118
experiments_key_map, experiments_id_map = self._get_experiments_maps()
118119
features_map = self._get_features_map(experiments_id_map)
119120

120-
return OptimizelyConfig(self.revision, experiments_key_map, features_map, self._datafile, self.sdk_key, self.environment_key)
121+
return OptimizelyConfig(
122+
self.revision,
123+
experiments_key_map,
124+
features_map,
125+
self._datafile,
126+
self.sdk_key,
127+
self.environment_key)
121128

122129
def _create_lookup_maps(self):
123130
""" Creates lookup maps to avoid redundant iteration of config objects. """

tests/test_optimizely.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,19 @@ def test_init__sdk_key_and_datafile_access_token(self):
266266

267267
self.assertIs(type(opt_obj.config_manager), config_manager.AuthDatafilePollingConfigManager)
268268

269+
def test_init__invalid_default_decide_options(self):
270+
"""
271+
Test to confirm that default decide options passed not as a list will trigger setting
272+
self.deafulat_decide_options as an empty list.
273+
"""
274+
invalid_decide_options = {"testKey": "testOption"}
275+
276+
mock_client_logger = mock.MagicMock()
277+
with mock.patch('optimizely.logger.reset_logger', return_value=mock_client_logger):
278+
opt_obj = optimizely.Optimizely(default_decide_options=invalid_decide_options)
279+
280+
self.assertEqual(opt_obj.default_decide_options, [])
281+
269282
def test_invalid_json_raises_schema_validation_off(self):
270283
""" Test that invalid JSON logs error if schema validation is turned off. """
271284

tests/test_user_context.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,23 @@ def test_user_context(self):
6060
self.assertEqual("firefox", uc.get_user_attributes()["browser"])
6161
self.assertEqual("red", uc.get_user_attributes()["color"])
6262

63+
def test_user_and_attributes_as_json(self):
64+
"""
65+
tests user context as json
66+
"""
67+
uc = OptimizelyUserContext(self.optimizely, "test_user")
68+
69+
# set an attribute
70+
uc.set_attribute("browser", "safari")
71+
72+
# set expected json obj
73+
expected_json = {
74+
"user_id": uc.user_id,
75+
"attributes": uc.get_user_attributes(),
76+
}
77+
78+
self.assertEqual(uc.as_json(), expected_json)
79+
6380
def test_attributes_are_cloned_when_passed_to_user_context(self):
6481
user_id = 'test_user'
6582
attributes = {"browser": "chrome"}

0 commit comments

Comments
 (0)
0