1
0
Эх сурвалжийг харах

Fix version 3.1

Signed-off-by: Daniel Nephin <[email protected]>
Daniel Nephin 8 жил өмнө
parent
commit
c092fa37de

+ 4 - 7
compose/config/config.py

@@ -186,11 +186,6 @@ class ConfigFile(namedtuple('_ConfigFile', 'filename config')):
         if version == '3':
             version = V3_0
 
-        if version not in (V2_0, V2_1, V3_0):
-            raise ConfigurationError(
-                'Version in "{}" is unsupported. {}'
-                .format(self.filename, VERSION_EXPLANATION))
-
         return version
 
     def get_service(self, name):
@@ -479,7 +474,7 @@ def process_config_file(config_file, environment, service_name=None):
         'service',
         environment)
 
-    if config_file.version in (V2_0, V2_1, V3_0):
+    if config_file.version in (V2_0, V2_1, V3_0, V3_1):
         processed_config = dict(config_file.config)
         processed_config['services'] = services
         processed_config['volumes'] = interpolate_config_section(
@@ -495,7 +490,9 @@ def process_config_file(config_file, environment, service_name=None):
     elif config_file.version == V1:
         processed_config = services
     else:
-        raise Exception("Unsupported version: {}".format(repr(config_file.version)))
+        raise ConfigurationError(
+            'Version in "{}" is unsupported. {}'
+            .format(config_file.filename, VERSION_EXPLANATION))
 
     config_file = config_file._replace(config=processed_config)
     validate_against_config_schema(config_file)

+ 5 - 0
docker-compose.spec

@@ -37,6 +37,11 @@ exe = EXE(pyz,
                 'compose/config/config_schema_v3.0.json',
                 'DATA'
             ),
+            (
+                'compose/config/config_schema_v3.1.json',
+                'compose/config/config_schema_v3.1.json',
+                'DATA'
+            ),
             (
                 'compose/GITSHA',
                 'compose/GITSHA',

+ 4 - 0
tests/unit/config/config_test.py

@@ -19,6 +19,7 @@ from compose.config.config import V1
 from compose.config.config import V2_0
 from compose.config.config import V2_1
 from compose.config.config import V3_0
+from compose.config.config import V3_1
 from compose.config.environment import Environment
 from compose.config.errors import ConfigurationError
 from compose.config.errors import VERSION_EXPLANATION
@@ -168,6 +169,9 @@ class ConfigTest(unittest.TestCase):
             cfg = config.load(build_config_details({'version': version}))
             assert cfg.version == V3_0
 
+        cfg = config.load(build_config_details({'version': '3.1'}))
+        assert cfg.version == V3_1
+
     def test_v1_file_version(self):
         cfg = config.load(build_config_details({'web': {'image': 'busybox'}}))
         assert cfg.version == V1