diff --git a/optimizely/project_config.py b/optimizely/project_config.py index 82da17c9..12fd1086 100644 --- a/optimizely/project_config.py +++ b/optimizely/project_config.py @@ -41,7 +41,7 @@ def __init__(self, datafile, logger, error_handler): """ config = json.loads(datafile) - self._datafile = u'{}'.format(datafile) + self._datafile = datafile.decode('utf-8') if isinstance(datafile, bytes) else datafile self.logger = logger self.error_handler = error_handler self.version = config.get('version') diff --git a/tests/test_config.py b/tests/test_config.py index 96450368..83ebb18c 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -1011,6 +1011,19 @@ def test_to_datafile(self): self.assertEqual(expected_datafile, actual_datafile) + def test_to_datafile_from_bytes(self): + """ Test that to_datafile returns the expected datafile when given bytes. """ + + expected_datafile = json.dumps(self.config_dict_with_features) + bytes_datafile = bytes(expected_datafile, 'utf-8') + + opt_obj = optimizely.Optimizely(bytes_datafile) + project_config = opt_obj.config_manager.get_config() + + actual_datafile = project_config.to_datafile() + + self.assertEqual(expected_datafile, actual_datafile) + class ConfigLoggingTest(base.BaseTest): def setUp(self): diff --git a/tests/test_optimizely_config.py b/tests/test_optimizely_config.py index c37a8434..640100d7 100644 --- a/tests/test_optimizely_config.py +++ b/tests/test_optimizely_config.py @@ -1525,6 +1525,18 @@ def test__get_datafile(self): self.assertEqual(expected_datafile, actual_datafile) + def test__get_datafile_from_bytes(self): + """ Test that get_datafile returns the expected datafile when provided as bytes. """ + + expected_datafile = json.dumps(self.config_dict_with_features) + bytes_datafile = bytes(expected_datafile, 'utf-8') + + opt_instance = optimizely.Optimizely(bytes_datafile) + opt_config = opt_instance.config_manager.optimizely_config + actual_datafile = opt_config.get_datafile() + + self.assertEqual(expected_datafile, actual_datafile) + def test__get_sdk_key(self): """ Test that get_sdk_key returns the expected value. """