From a924606d26eb4dc18cbb1e4b9bdcb9d5f992e379 Mon Sep 17 00:00:00 2001 From: Zack Cerza Date: Fri, 11 Jul 2014 09:55:34 -0600 Subject: [PATCH] Run tests for base class in subclass tests Also remove test_defaults() since it was a bad idea. Signed-off-by: Zack Cerza --- teuthology/test/test_config.py | 61 +++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/teuthology/test/test_config.py b/teuthology/test/test_config.py index 5b443a2a30186..f3d03e0bdedbd 100644 --- a/teuthology/test/test_config.py +++ b/teuthology/test/test_config.py @@ -2,8 +2,11 @@ from .. import config class TestYamlConfig(object): + def setup(self): + self.test_class = config.YamlConfig + def test_set_multiple(self): - conf_obj = config.YamlConfig() + conf_obj = self.test_class() conf_obj.foo = 'foo' conf_obj.bar = 'bar' assert conf_obj.foo == 'foo' @@ -12,75 +15,79 @@ class TestYamlConfig(object): def test_from_dict(self): in_dict = dict(foo='bar') - conf_obj = config.YamlConfig.from_dict(in_dict) + conf_obj = self.test_class.from_dict(in_dict) assert conf_obj.foo == 'bar' def test_to_dict(self): in_dict = dict(foo='bar') - conf_obj = config.YamlConfig.from_dict(in_dict) + conf_obj = self.test_class.from_dict(in_dict) assert conf_obj.to_dict() == in_dict def test_from_str(self): in_str = "foo: bar" - conf_obj = config.YamlConfig.from_str(in_str) + conf_obj = self.test_class.from_str(in_str) assert conf_obj.foo == 'bar' def test_to_str(self): in_str = "foo: bar" - conf_obj = config.YamlConfig.from_str(in_str) + conf_obj = self.test_class.from_str(in_str) assert conf_obj.to_str() == in_str def test_update(self): - conf_obj = config.YamlConfig() + conf_obj = self.test_class() conf_obj.foo = 'foo' conf_obj.bar = 'bar' conf_obj.update(dict(bar='baz')) assert conf_obj.to_dict() == dict(foo='foo', bar='baz') - def test_defaults(self): - conf_obj = config.YamlConfig() - # Save a copy of the original defaults so we can restore them later. - # Not doing so would break other tests. - old_defaults = dict(conf_obj.defaults) - conf_obj.defaults['foo'] = 'bar' - assert conf_obj.foo == 'bar' - # restore defaults - conf_obj.__class__.defaults = old_defaults - def test_delattr(self): - conf_obj = config.YamlConfig() + conf_obj = self.test_class() conf_obj.foo = 'bar' assert conf_obj.foo == 'bar' del conf_obj.foo assert conf_obj.foo is None -class TestTeuthologyConfig(object): +class TestTeuthologyConfig(TestYamlConfig): + def setup(self): + self.test_class = config.TeuthologyConfig + def test_defaults(self): - conf_obj = config.TeuthologyConfig() + conf_obj = self.test_class() conf_obj.defaults['archive_base'] = 'bar' assert conf_obj.archive_base == 'bar' def test_get_ceph_git_base_default(self): - conf_obj = config.TeuthologyConfig() + conf_obj = self.test_class() conf_obj.yaml_path = '' conf_obj.load() assert conf_obj.ceph_git_base_url == "https://github.com/ceph/" def test_set_ceph_git_base_via_private(self): - conf_obj = config.TeuthologyConfig() + conf_obj = self.test_class() conf_obj._YamlConfig__conf['ceph_git_base_url'] = \ "git://ceph.com/" assert conf_obj.ceph_git_base_url == "git://ceph.com/" def test_set_nonstandard(self): - conf_obj = config.TeuthologyConfig() + conf_obj = self.test_class() conf_obj.something = 'something else' assert conf_obj.something == 'something else' + def test_update(self): + """ + This is slightly different thank TestYamlConfig.update() in that it + only tests what was updated - since to_dict() yields all values, + including defaults. + """ + conf_obj = self.test_class() + conf_obj.foo = 'foo' + conf_obj.bar = 'bar' + conf_obj.update(dict(bar='baz')) + assert conf_obj.foo == 'foo' + assert conf_obj.bar == 'baz' + -class TestJobConfig(object): - def test_to_str(self): - in_str = "foo: bar" - conf_obj = config.JobConfig.from_str(in_str) - assert conf_obj.to_str() == in_str +class TestJobConfig(TestYamlConfig): + def setup(self): + self.test_class = config.JobConfig -- 2.39.5