|
|
@@ -2847,6 +2847,74 @@ class MergeLabelsTest(unittest.TestCase):
|
|
|
assert service_dict['labels'] == {'foo': '1', 'bar': ''}
|
|
|
|
|
|
|
|
|
+class MergeBuildTest(unittest.TestCase):
|
|
|
+ def test_full(self):
|
|
|
+ base = {
|
|
|
+ 'context': '.',
|
|
|
+ 'dockerfile': 'Dockerfile',
|
|
|
+ 'args': {
|
|
|
+ 'x': '1',
|
|
|
+ 'y': '2',
|
|
|
+ },
|
|
|
+ 'cache_from': ['ubuntu'],
|
|
|
+ 'labels': ['com.docker.compose.test=true']
|
|
|
+ }
|
|
|
+
|
|
|
+ override = {
|
|
|
+ 'context': './prod',
|
|
|
+ 'dockerfile': 'Dockerfile.prod',
|
|
|
+ 'args': ['x=12'],
|
|
|
+ 'cache_from': ['debian'],
|
|
|
+ 'labels': {
|
|
|
+ 'com.docker.compose.test': 'false',
|
|
|
+ 'com.docker.compose.prod': 'true',
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ result = config.merge_build(None, {'build': base}, {'build': override})
|
|
|
+ assert result['context'] == override['context']
|
|
|
+ assert result['dockerfile'] == override['dockerfile']
|
|
|
+ assert result['args'] == {'x': '12', 'y': '2'}
|
|
|
+ assert set(result['cache_from']) == set(['ubuntu', 'debian'])
|
|
|
+ assert result['labels'] == override['labels']
|
|
|
+
|
|
|
+ def test_empty_override(self):
|
|
|
+ base = {
|
|
|
+ 'context': '.',
|
|
|
+ 'dockerfile': 'Dockerfile',
|
|
|
+ 'args': {
|
|
|
+ 'x': '1',
|
|
|
+ 'y': '2',
|
|
|
+ },
|
|
|
+ 'cache_from': ['ubuntu'],
|
|
|
+ 'labels': {
|
|
|
+ 'com.docker.compose.test': 'true'
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ override = {}
|
|
|
+
|
|
|
+ result = config.merge_build(None, {'build': base}, {'build': override})
|
|
|
+ assert result == base
|
|
|
+
|
|
|
+ def test_empty_base(self):
|
|
|
+ base = {}
|
|
|
+
|
|
|
+ override = {
|
|
|
+ 'context': './prod',
|
|
|
+ 'dockerfile': 'Dockerfile.prod',
|
|
|
+ 'args': {'x': '12'},
|
|
|
+ 'cache_from': ['debian'],
|
|
|
+ 'labels': {
|
|
|
+ 'com.docker.compose.test': 'false',
|
|
|
+ 'com.docker.compose.prod': 'true',
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ result = config.merge_build(None, {'build': base}, {'build': override})
|
|
|
+ assert result == override
|
|
|
+
|
|
|
+
|
|
|
class MemoryOptionsTest(unittest.TestCase):
|
|
|
|
|
|
def test_validation_fails_with_just_memswap_limit(self):
|