Bläddra i källkod

Use json to encode invalid values in configuration errors so that the user sees a proper repr of the value.

Signed-off-by: Daniel Nephin <[email protected]>
Daniel Nephin 10 år sedan
förälder
incheckning
bf1552da79

+ 3 - 0
compose/__main__.py

@@ -1,3 +1,6 @@
+from __future__ import absolute_import
+from __future__ import unicode_literals
+
 from compose.cli.main import main
 
 main()

+ 3 - 0
compose/config/sort_services.py

@@ -1,3 +1,6 @@
+from __future__ import absolute_import
+from __future__ import unicode_literals
+
 from compose.config.errors import DependencyError
 
 

+ 2 - 1
compose/config/validation.py

@@ -254,7 +254,8 @@ def _parse_oneof_validator(error):
             )
             return "{}contains {}, which is an invalid type, it should be {}".format(
                 invalid_config_key,
-                context.instance,
+                # Always print the json repr of the invalid value
+                json.dumps(context.instance),
                 _parse_valid_types_from_validator(context.validator_value))
 
         if context.validator == 'uniqueItems':

+ 1 - 0
compose/volume.py

@@ -1,3 +1,4 @@
+from __future__ import absolute_import
 from __future__ import unicode_literals
 
 

+ 1 - 1
script/travis/render-bintray-config.py

@@ -1,6 +1,6 @@
 #!/usr/bin/env python
-from __future__ import print_function
 from __future__ import absolute_import
+from __future__ import print_function
 from __future__ import unicode_literals
 
 import datetime

+ 1 - 0
tests/integration/volume_test.py

@@ -1,3 +1,4 @@
+from __future__ import absolute_import
 from __future__ import unicode_literals
 
 from docker.errors import DockerException

+ 3 - 1
tests/unit/config/config_test.py

@@ -552,7 +552,9 @@ class ConfigTest(unittest.TestCase):
             )
 
     def test_config_extra_hosts_list_of_dicts_validation_error(self):
-        expected_error_msg = "key 'extra_hosts' contains {'somehost': '162.242.195.82'}, which is an invalid type, it should be a string"
+        expected_error_msg = (
+            "key 'extra_hosts' contains {\"somehost\": \"162.242.195.82\"}, "
+            "which is an invalid type, it should be a string")
 
         with self.assertRaisesRegexp(ConfigurationError, expected_error_msg):
             config.load(

+ 3 - 0
tests/unit/config/types_test.py

@@ -1,3 +1,6 @@
+from __future__ import absolute_import
+from __future__ import unicode_literals
+
 import pytest
 
 from compose.config.errors import ConfigurationError