瀏覽代碼

Fix version 3.1

Signed-off-by: Daniel Nephin <[email protected]>
Daniel Nephin 8 年之前
父節點
當前提交
c092fa37de
共有 3 個文件被更改,包括 13 次插入7 次删除
  1. 4 7
      compose/config/config.py
  2. 5 0
      docker-compose.spec
  3. 4 0
      tests/unit/config/config_test.py

+ 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