Skip to content

Commit

Permalink
[OASIS-7757] - Added additional test cases to test_optimizely and tes…
Browse files Browse the repository at this point in the history
…t_user_context.
  • Loading branch information
The-inside-man committed Jun 17, 2021
1 parent 64a2899 commit 996584a
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 2 deletions.
11 changes: 9 additions & 2 deletions optimizely/optimizely_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ def get_environment_key(self):
Returns:
A string containing environment key.
"""
return self.environemnt_key
return self.environment_key


class OptimizelyExperiment(object):
def __init__(self, id, key, variations_map):
Expand Down Expand Up @@ -117,7 +118,13 @@ def get_config(self):
experiments_key_map, experiments_id_map = self._get_experiments_maps()
features_map = self._get_features_map(experiments_id_map)

return OptimizelyConfig(self.revision, experiments_key_map, features_map, self._datafile, self.sdk_key, self.environment_key)
return OptimizelyConfig(
self.revision,
experiments_key_map,
features_map,
self._datafile,
self.sdk_key,
self.environment_key)

def _create_lookup_maps(self):
""" Creates lookup maps to avoid redundant iteration of config objects. """
Expand Down
13 changes: 13 additions & 0 deletions tests/test_optimizely.py
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,19 @@ def test_init__sdk_key_and_datafile_access_token(self):

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

def test_init__invalid_default_decide_options(self):
"""
Test to confirm that default decide options passed not as a list will trigger setting
self.deafulat_decide_options as an empty list.
"""
invalid_decide_options = {"testKey": "testOption"}

mock_client_logger = mock.MagicMock()
with mock.patch('optimizely.logger.reset_logger', return_value=mock_client_logger):
opt_obj = optimizely.Optimizely(default_decide_options=invalid_decide_options)

self.assertEqual(opt_obj.default_decide_options, [])

def test_invalid_json_raises_schema_validation_off(self):
""" Test that invalid JSON logs error if schema validation is turned off. """

Expand Down
17 changes: 17 additions & 0 deletions tests/test_user_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,23 @@ def test_user_context(self):
self.assertEqual("firefox", uc.get_user_attributes()["browser"])
self.assertEqual("red", uc.get_user_attributes()["color"])

def test_user_and_attributes_as_json(self):
"""
tests user context as json
"""
uc = OptimizelyUserContext(self.optimizely, "test_user")

# set an attribute
uc.set_attribute("browser", "safari")

# set expected json obj
expected_json = {
"user_id": uc.user_id,
"attributes": uc.get_user_attributes(),
}

self.assertEqual(uc.as_json(), expected_json)

def test_attributes_are_cloned_when_passed_to_user_context(self):
user_id = 'test_user'
attributes = {"browser": "chrome"}
Expand Down

0 comments on commit 996584a

Please sign in to comment.