Merge pull request #2938 from shin-/2927-buildargs-types
Constraint build argument types. Numbers are cast into strings.
This commit is contained in:
commit
d3a95c2892
5 changed files with 74 additions and 6 deletions
|
|
@ -231,7 +231,7 @@ class ConfigTest(unittest.TestCase):
|
|||
assert volumes['simple'] == {}
|
||||
assert volumes['other'] == {}
|
||||
|
||||
def test_volume_invalid_driver_opt(self):
|
||||
def test_volume_numeric_driver_opt(self):
|
||||
config_details = build_config_details({
|
||||
'version': '2',
|
||||
'services': {
|
||||
|
|
@ -241,6 +241,19 @@ class ConfigTest(unittest.TestCase):
|
|||
'simple': {'driver_opts': {'size': 42}},
|
||||
}
|
||||
})
|
||||
cfg = config.load(config_details)
|
||||
assert cfg.volumes['simple']['driver_opts']['size'] == '42'
|
||||
|
||||
def test_volume_invalid_driver_opt(self):
|
||||
config_details = build_config_details({
|
||||
'version': '2',
|
||||
'services': {
|
||||
'simple': {'image': 'busybox'}
|
||||
},
|
||||
'volumes': {
|
||||
'simple': {'driver_opts': {'size': True}},
|
||||
}
|
||||
})
|
||||
with pytest.raises(ConfigurationError) as exc:
|
||||
config.load(config_details)
|
||||
assert 'driver_opts.size contains an invalid type' in exc.exconly()
|
||||
|
|
@ -608,6 +621,34 @@ class ConfigTest(unittest.TestCase):
|
|||
self.assertTrue('context' in service[0]['build'])
|
||||
self.assertEqual(service[0]['build']['dockerfile'], 'Dockerfile-alt')
|
||||
|
||||
def test_load_with_buildargs(self):
|
||||
service = config.load(
|
||||
build_config_details(
|
||||
{
|
||||
'version': '2',
|
||||
'services': {
|
||||
'web': {
|
||||
'build': {
|
||||
'context': '.',
|
||||
'dockerfile': 'Dockerfile-alt',
|
||||
'args': {
|
||||
'opt1': 42,
|
||||
'opt2': 'foobar'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
'tests/fixtures/extends',
|
||||
'filename.yml'
|
||||
)
|
||||
).services[0]
|
||||
assert 'args' in service['build']
|
||||
assert 'opt1' in service['build']['args']
|
||||
assert isinstance(service['build']['args']['opt1'], str)
|
||||
assert service['build']['args']['opt1'] == '42'
|
||||
assert service['build']['args']['opt2'] == 'foobar'
|
||||
|
||||
def test_load_with_multiple_files_v2(self):
|
||||
base_file = config.ConfigFile(
|
||||
'base.yaml',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue