@@ -54,46 +54,61 @@ def test_volume_binding_with_home(self):
5454 self .assertEqual (d ['volumes' ], ['/home/user:/container/path' ])
5555
5656
57- class MergeVolumesTest (unittest .TestCase ):
57+ class MergePathMappingTest (object ):
58+ def config_name (self ):
59+ return ""
60+
5861 def test_empty (self ):
5962 service_dict = config .merge_service_dicts ({}, {})
60- self .assertNotIn ('volumes' , service_dict )
63+ self .assertNotIn (self . config_name () , service_dict )
6164
6265 def test_no_override (self ):
6366 service_dict = config .merge_service_dicts (
64- {'volumes' : ['/foo:/code' , '/data' ]},
67+ {self . config_name () : ['/foo:/code' , '/data' ]},
6568 {},
6669 )
67- self .assertEqual (set (service_dict ['volumes' ]), set (['/foo:/code' , '/data' ]))
70+ self .assertEqual (set (service_dict [self . config_name () ]), set (['/foo:/code' , '/data' ]))
6871
6972 def test_no_base (self ):
7073 service_dict = config .merge_service_dicts (
7174 {},
72- {'volumes' : ['/bar:/code' ]},
75+ {self . config_name () : ['/bar:/code' ]},
7376 )
74- self .assertEqual (set (service_dict ['volumes' ]), set (['/bar:/code' ]))
77+ self .assertEqual (set (service_dict [self . config_name () ]), set (['/bar:/code' ]))
7578
7679 def test_override_explicit_path (self ):
7780 service_dict = config .merge_service_dicts (
78- {'volumes' : ['/foo:/code' , '/data' ]},
79- {'volumes' : ['/bar:/code' ]},
81+ {self . config_name () : ['/foo:/code' , '/data' ]},
82+ {self . config_name () : ['/bar:/code' ]},
8083 )
81- self .assertEqual (set (service_dict ['volumes' ]), set (['/bar:/code' , '/data' ]))
84+ self .assertEqual (set (service_dict [self . config_name () ]), set (['/bar:/code' , '/data' ]))
8285
8386 def test_add_explicit_path (self ):
8487 service_dict = config .merge_service_dicts (
85- {'volumes' : ['/foo:/code' , '/data' ]},
86- {'volumes' : ['/bar:/code' , '/quux:/data' ]},
88+ {self . config_name () : ['/foo:/code' , '/data' ]},
89+ {self . config_name () : ['/bar:/code' , '/quux:/data' ]},
8790 )
88- self .assertEqual (set (service_dict ['volumes' ]), set (['/bar:/code' , '/quux:/data' ]))
91+ self .assertEqual (set (service_dict [self . config_name () ]), set (['/bar:/code' , '/quux:/data' ]))
8992
9093 def test_remove_explicit_path (self ):
9194 service_dict = config .merge_service_dicts (
92- {'volumes' : ['/foo:/code' , '/quux:/data' ]},
93- {'volumes' : ['/bar:/code' , '/data' ]},
95+ {self . config_name () : ['/foo:/code' , '/quux:/data' ]},
96+ {self . config_name () : ['/bar:/code' , '/data' ]},
9497 )
95- self .assertEqual (set (service_dict ['volumes' ]), set (['/bar:/code' , '/data' ]))
98+ self .assertEqual (set (service_dict [self .config_name ()]), set (['/bar:/code' , '/data' ]))
99+
100+
101+ class MergeVolumesTest (unittest .TestCase , MergePathMappingTest ):
102+ def config_name (self ):
103+ return 'volumes'
104+
105+
106+ class MergeDevicesTest (unittest .TestCase , MergePathMappingTest ):
107+ def config_name (self ):
108+ return 'devices'
109+
96110
111+ class BuildOrImageMergeTest (unittest .TestCase ):
97112 def test_merge_build_or_image_no_override (self ):
98113 self .assertEqual (
99114 config .merge_service_dicts ({'build' : '.' }, {}),
0 commit comments