mirror of
https://github.com/docker/compose.git
synced 2025-07-21 04:34:38 +02:00
Falsy values in COMPOSE_CONVERT_WINDOWS_PATHS are properly recognized
Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
parent
838bdd71f3
commit
534b4ed820
@ -712,7 +712,7 @@ def finalize_service(service_config, service_names, version, environment):
|
|||||||
if 'volumes' in service_dict:
|
if 'volumes' in service_dict:
|
||||||
service_dict['volumes'] = [
|
service_dict['volumes'] = [
|
||||||
VolumeSpec.parse(
|
VolumeSpec.parse(
|
||||||
v, environment.get('COMPOSE_CONVERT_WINDOWS_PATHS')
|
v, environment.get_boolean('COMPOSE_CONVERT_WINDOWS_PATHS')
|
||||||
) for v in service_dict['volumes']
|
) for v in service_dict['volumes']
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -105,3 +105,14 @@ class Environment(dict):
|
|||||||
super(Environment, self).get(key.upper(), *args, **kwargs)
|
super(Environment, self).get(key.upper(), *args, **kwargs)
|
||||||
)
|
)
|
||||||
return super(Environment, self).get(key, *args, **kwargs)
|
return super(Environment, self).get(key, *args, **kwargs)
|
||||||
|
|
||||||
|
def get_boolean(self, key):
|
||||||
|
# Convert a value to a boolean using "common sense" rules.
|
||||||
|
# Unset, empty, "0" and "false" (i-case) yield False.
|
||||||
|
# All other values yield True.
|
||||||
|
value = self.get(key)
|
||||||
|
if not value:
|
||||||
|
return False
|
||||||
|
if value.lower() in ['0', 'false']:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
40
tests/unit/config/environment_test.py
Normal file
40
tests/unit/config/environment_test.py
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# encoding: utf-8
|
||||||
|
from __future__ import absolute_import
|
||||||
|
from __future__ import print_function
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from compose.config.environment import Environment
|
||||||
|
from tests import unittest
|
||||||
|
|
||||||
|
|
||||||
|
class EnvironmentTest(unittest.TestCase):
|
||||||
|
def test_get_simple(self):
|
||||||
|
env = Environment({
|
||||||
|
'FOO': 'bar',
|
||||||
|
'BAR': '1',
|
||||||
|
'BAZ': ''
|
||||||
|
})
|
||||||
|
|
||||||
|
assert env.get('FOO') == 'bar'
|
||||||
|
assert env.get('BAR') == '1'
|
||||||
|
assert env.get('BAZ') == ''
|
||||||
|
|
||||||
|
def test_get_undefined(self):
|
||||||
|
env = Environment({
|
||||||
|
'FOO': 'bar'
|
||||||
|
})
|
||||||
|
assert env.get('FOOBAR') is None
|
||||||
|
|
||||||
|
def test_get_boolean(self):
|
||||||
|
env = Environment({
|
||||||
|
'FOO': '',
|
||||||
|
'BAR': '0',
|
||||||
|
'BAZ': 'FALSE',
|
||||||
|
'FOOBAR': 'true',
|
||||||
|
})
|
||||||
|
|
||||||
|
assert env.get_boolean('FOO') is False
|
||||||
|
assert env.get_boolean('BAR') is False
|
||||||
|
assert env.get_boolean('BAZ') is False
|
||||||
|
assert env.get_boolean('FOOBAR') is True
|
||||||
|
assert env.get_boolean('UNDEFINED') is False
|
Loading…
x
Reference in New Issue
Block a user