Skip to content

Commit

Permalink
validate project config
Browse files Browse the repository at this point in the history
  • Loading branch information
oakbani committed Dec 16, 2019
1 parent ec4f84f commit caad32d
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
13 changes: 12 additions & 1 deletion optimizely/optimizely_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@

import copy

from .project_config import ProjectConfig


class OptimizelyConfig(object):
def __init__(self, revision, experiments_map, features_map):
Expand Down Expand Up @@ -60,6 +62,12 @@ def __init__(self, project_config):
Args:
project_config ProjectConfig
"""
self.is_valid = True

if not isinstance(project_config, ProjectConfig):
self.is_valid = False
return

self.experiments = project_config.experiments
self.feature_flags = project_config.feature_flags
self.groups = project_config.groups
Expand All @@ -71,9 +79,12 @@ def get_config(self):
""" Returns instance of OptimizelyConfig
Returns:
Optimizely Config instance.
Optimizely Config instance or None if OptimizelyConfigService is invalid.
"""

if not self.is_valid:
return None

experiments_key_map, experiments_id_map = self._get_experiments_maps()
features_map = self._get_features_map(experiments_id_map)

Expand Down
6 changes: 6 additions & 0 deletions tests/test_optimizely_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -404,6 +404,12 @@ def test__get_config(self):
self.assertIsInstance(self.actual_config, optimizely_config.OptimizelyConfig)
self.assertEqual(self.expected_config, self.actual_config_dict)

def test__get_config__invalid_project_config(self):
""" Test that get_config returns None when invalid project config supplied. """

opt_service = optimizely_config.OptimizelyConfigService({"key": "invalid"})
self.assertIsNone(opt_service.get_config())

def test__get_experiments_maps(self):
""" Test that get_experiments_map returns expected experiment key and id maps. """

Expand Down

0 comments on commit caad32d

Please sign in to comment.