Fix version 3.1

Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
Daniel Nephin 2017-02-09 10:27:06 -05:00 committed by Joffrey F
parent 4e2e383282
commit c79a1c7288
3 changed files with 13 additions and 7 deletions

View File

@ -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)

View File

@ -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',

View File

@ -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