Simplify unit tests in config/config_test.py by using class variables instead of methods for parametrizing tests.

Signed-off-by: cr7pt0gr4ph7 <cr7pt0gr4ph7@gmail.com>
This commit is contained in:
cr7pt0gr4ph7 2016-02-08 21:57:15 +01:00
parent 5bd88f634f
commit 582de19a5a
1 changed files with 35 additions and 53 deletions

View File

@ -1506,57 +1506,54 @@ class VolumeConfigTest(unittest.TestCase):
class MergePathMappingTest(object):
def config_name(self):
return ""
config_name = ""
def test_empty(self):
service_dict = config.merge_service_dicts({}, {}, DEFAULT_VERSION)
assert self.config_name() not in service_dict
assert self.config_name not in service_dict
def test_no_override(self):
service_dict = config.merge_service_dicts(
{self.config_name(): ['/foo:/code', '/data']},
{self.config_name: ['/foo:/code', '/data']},
{},
DEFAULT_VERSION)
assert set(service_dict[self.config_name()]) == set(['/foo:/code', '/data'])
assert set(service_dict[self.config_name]) == set(['/foo:/code', '/data'])
def test_no_base(self):
service_dict = config.merge_service_dicts(
{},
{self.config_name(): ['/bar:/code']},
{self.config_name: ['/bar:/code']},
DEFAULT_VERSION)
assert set(service_dict[self.config_name()]) == set(['/bar:/code'])
assert set(service_dict[self.config_name]) == set(['/bar:/code'])
def test_override_explicit_path(self):
service_dict = config.merge_service_dicts(
{self.config_name(): ['/foo:/code', '/data']},
{self.config_name(): ['/bar:/code']},
{self.config_name: ['/foo:/code', '/data']},
{self.config_name: ['/bar:/code']},
DEFAULT_VERSION)
assert set(service_dict[self.config_name()]) == set(['/bar:/code', '/data'])
assert set(service_dict[self.config_name]) == set(['/bar:/code', '/data'])
def test_add_explicit_path(self):
service_dict = config.merge_service_dicts(
{self.config_name(): ['/foo:/code', '/data']},
{self.config_name(): ['/bar:/code', '/quux:/data']},
{self.config_name: ['/foo:/code', '/data']},
{self.config_name: ['/bar:/code', '/quux:/data']},
DEFAULT_VERSION)
assert set(service_dict[self.config_name()]) == set(['/bar:/code', '/quux:/data'])
assert set(service_dict[self.config_name]) == set(['/bar:/code', '/quux:/data'])
def test_remove_explicit_path(self):
service_dict = config.merge_service_dicts(
{self.config_name(): ['/foo:/code', '/quux:/data']},
{self.config_name(): ['/bar:/code', '/data']},
{self.config_name: ['/foo:/code', '/quux:/data']},
{self.config_name: ['/bar:/code', '/data']},
DEFAULT_VERSION)
assert set(service_dict[self.config_name()]) == set(['/bar:/code', '/data'])
assert set(service_dict[self.config_name]) == set(['/bar:/code', '/data'])
class MergeVolumesTest(unittest.TestCase, MergePathMappingTest):
def config_name(self):
return 'volumes'
config_name = 'volumes'
class MergeDevicesTest(unittest.TestCase, MergePathMappingTest):
def config_name(self):
return 'devices'
config_name = 'devices'
class BuildOrImageMergeTest(unittest.TestCase):
@ -1595,63 +1592,48 @@ class BuildOrImageMergeTest(unittest.TestCase):
class MergeListsTest(object):
def config_name(self):
return ""
def base_config(self):
return []
def override_config(self):
return []
config_name = ""
base_config = []
override_config = []
def merged_config(self):
return set(self.base_config()) | set(self.override_config())
return set(self.base_config) | set(self.override_config)
def test_empty(self):
assert self.config_name() not in config.merge_service_dicts({}, {}, DEFAULT_VERSION)
assert self.config_name not in config.merge_service_dicts({}, {}, DEFAULT_VERSION)
def test_no_override(self):
service_dict = config.merge_service_dicts(
{self.config_name(): self.base_config()},
{self.config_name: self.base_config},
{},
DEFAULT_VERSION)
assert set(service_dict[self.config_name()]) == set(self.base_config())
assert set(service_dict[self.config_name]) == set(self.base_config)
def test_no_base(self):
service_dict = config.merge_service_dicts(
{},
{self.config_name(): self.base_config()},
{self.config_name: self.base_config},
DEFAULT_VERSION)
assert set(service_dict[self.config_name()]) == set(self.base_config())
assert set(service_dict[self.config_name]) == set(self.base_config)
def test_add_item(self):
service_dict = config.merge_service_dicts(
{self.config_name(): self.base_config()},
{self.config_name(): self.override_config()},
{self.config_name: self.base_config},
{self.config_name: self.override_config},
DEFAULT_VERSION)
assert set(service_dict[self.config_name()]) == set(self.merged_config())
assert set(service_dict[self.config_name]) == set(self.merged_config())
class MergePortsTest(unittest.TestCase, MergeListsTest):
def config_name(self):
return 'ports'
def base_config(self):
return ['10:8000', '9000']
def override_config(self):
return ['20:8000']
config_name = 'ports'
base_config = ['10:8000', '9000']
override_config = ['20:8000']
class MergeNetworksTest(unittest.TestCase, MergeListsTest):
def config_name(self):
return 'networks'
def base_config(self):
return ['frontend', 'backend']
def override_config(self):
return ['monitoring']
config_name = 'networks'
base_config = ['frontend', 'backend']
override_config = ['monitoring']
class MergeStringsOrListsTest(unittest.TestCase):