forked from ungleich-public/cdist
Merge branch 'feature_unittest_override' of git://github.com/dheule/cdist
This commit is contained in:
commit
689bf9f320
4 changed files with 45 additions and 7 deletions
|
@ -130,7 +130,6 @@ class Emulator(object):
|
||||||
self.args = parser.parse_args(self.argv[1:])
|
self.args = parser.parse_args(self.argv[1:])
|
||||||
self.log.debug('Args: %s' % self.args)
|
self.log.debug('Args: %s' % self.args)
|
||||||
|
|
||||||
|
|
||||||
def setup_object(self):
|
def setup_object(self):
|
||||||
# Setup object_id - FIXME: unset / do not setup anymore!
|
# Setup object_id - FIXME: unset / do not setup anymore!
|
||||||
if not self.cdist_type.is_singleton:
|
if not self.cdist_type.is_singleton:
|
||||||
|
@ -146,7 +145,7 @@ class Emulator(object):
|
||||||
if value is not None:
|
if value is not None:
|
||||||
self.parameters[key] = value
|
self.parameters[key] = value
|
||||||
|
|
||||||
if self.cdist_object.exists and not 'CDIST_OVERRIDE' in os.environ:
|
if self.cdist_object.exists and not 'CDIST_OVERRIDE' in self.env:
|
||||||
if self.cdist_object.parameters != self.parameters:
|
if self.cdist_object.parameters != self.parameters:
|
||||||
raise cdist.Error("Object %s already exists with conflicting parameters:\n%s: %s\n%s: %s"
|
raise cdist.Error("Object %s already exists with conflicting parameters:\n%s: %s\n%s: %s"
|
||||||
% (self.cdist_object.name, " ".join(self.cdist_object.source), self.cdist_object.parameters, self.object_source, self.parameters)
|
% (self.cdist_object.name, " ".join(self.cdist_object.source), self.cdist_object.parameters, self.object_source, self.parameters)
|
||||||
|
|
|
@ -58,10 +58,10 @@ class ObjectClassTestCase(test.CdistTestCase):
|
||||||
|
|
||||||
def test_list_type_names(self):
|
def test_list_type_names(self):
|
||||||
type_names = list(cdist.core.CdistObject.list_type_names(object_base_path))
|
type_names = list(cdist.core.CdistObject.list_type_names(object_base_path))
|
||||||
self.assertEqual(type_names, ['__first', '__second', '__third'])
|
self.assertEqual(sorted(type_names), ['__first', '__second', '__third'])
|
||||||
|
|
||||||
def test_list_objects(self):
|
def test_list_objects(self):
|
||||||
found_objects = list(core.CdistObject.list_objects(object_base_path, type_base_path))
|
found_objects = sorted(list(core.CdistObject.list_objects(object_base_path, type_base_path)))
|
||||||
self.assertEqual(found_objects, self.expected_objects)
|
self.assertEqual(found_objects, self.expected_objects)
|
||||||
|
|
||||||
def test_create_singleton(self):
|
def test_create_singleton(self):
|
||||||
|
|
|
@ -34,7 +34,7 @@ class TypeTestCase(test.CdistTestCase):
|
||||||
def test_list_type_names(self):
|
def test_list_type_names(self):
|
||||||
base_path = op.join(fixtures, 'list_types')
|
base_path = op.join(fixtures, 'list_types')
|
||||||
type_names = core.CdistType.list_type_names(base_path)
|
type_names = core.CdistType.list_type_names(base_path)
|
||||||
self.assertEqual(type_names, ['__first', '__second', '__third'])
|
self.assertEqual(sorted(type_names), ['__first', '__second', '__third'])
|
||||||
|
|
||||||
def test_list_types(self):
|
def test_list_types(self):
|
||||||
base_path = op.join(fixtures, 'list_types')
|
base_path = op.join(fixtures, 'list_types')
|
||||||
|
@ -44,7 +44,7 @@ class TypeTestCase(test.CdistTestCase):
|
||||||
core.CdistType(base_path, '__second'),
|
core.CdistType(base_path, '__second'),
|
||||||
core.CdistType(base_path, '__third'),
|
core.CdistType(base_path, '__third'),
|
||||||
]
|
]
|
||||||
self.assertEqual(types, types_expected)
|
self.assertEqual(sorted(types), types_expected)
|
||||||
|
|
||||||
def test_only_one_instance(self):
|
def test_only_one_instance(self):
|
||||||
base_path = fixtures
|
base_path = fixtures
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#
|
#
|
||||||
# 2010-2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
# 2010-2011 Steven Armstrong (steven-cdist at armstrong.cc)
|
||||||
# 2012-2013 Nico Schottelius (nico-cdist at schottelius.org)
|
# 2012-2013 Nico Schottelius (nico-cdist at schottelius.org)
|
||||||
|
# 2014 Daniel Heule (hda at sfs.biz)
|
||||||
#
|
#
|
||||||
# This file is part of cdist.
|
# This file is part of cdist.
|
||||||
#
|
#
|
||||||
|
@ -129,6 +130,44 @@ class AutoRequireEmulatorTestCase(test.CdistTestCase):
|
||||||
expected = ['__planet/Saturn', '__moon/Prometheus']
|
expected = ['__planet/Saturn', '__moon/Prometheus']
|
||||||
self.assertEqual(sorted(cdist_object.autorequire), sorted(expected))
|
self.assertEqual(sorted(cdist_object.autorequire), sorted(expected))
|
||||||
|
|
||||||
|
class OverrideTestCase(test.CdistTestCase):
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.temp_dir = self.mkdtemp()
|
||||||
|
handle, self.script = self.mkstemp(dir=self.temp_dir)
|
||||||
|
os.close(handle)
|
||||||
|
base_path = self.temp_dir
|
||||||
|
|
||||||
|
self.local = local.Local(
|
||||||
|
target_host=self.target_host,
|
||||||
|
base_path=base_path,
|
||||||
|
exec_path=test.cdist_exec_path,
|
||||||
|
add_conf_dirs=[conf_dir])
|
||||||
|
self.local.create_files_dirs()
|
||||||
|
|
||||||
|
self.manifest = core.Manifest(self.target_host, self.local)
|
||||||
|
self.env = self.manifest.env_initial_manifest(self.script)
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
shutil.rmtree(self.temp_dir)
|
||||||
|
|
||||||
|
def test_override_negative(self):
|
||||||
|
argv = ['__file', '/tmp/foobar']
|
||||||
|
emu = emulator.Emulator(argv, env=self.env)
|
||||||
|
emu.run()
|
||||||
|
argv = ['__file', '/tmp/foobar','--mode','404']
|
||||||
|
emu = emulator.Emulator(argv, env=self.env)
|
||||||
|
self.assertRaises(cdist.Error, emu.run)
|
||||||
|
|
||||||
|
def test_override_feature(self):
|
||||||
|
argv = ['__file', '/tmp/foobar']
|
||||||
|
emu = emulator.Emulator(argv, env=self.env)
|
||||||
|
emu.run()
|
||||||
|
argv = ['__file', '/tmp/foobar','--mode','404']
|
||||||
|
self.env['CDIST_OVERRIDE'] = 'on'
|
||||||
|
emu = emulator.Emulator(argv, env=self.env)
|
||||||
|
emu.run()
|
||||||
|
|
||||||
|
|
||||||
class ArgumentsTestCase(test.CdistTestCase):
|
class ArgumentsTestCase(test.CdistTestCase):
|
||||||
|
|
||||||
|
@ -182,7 +221,7 @@ class ArgumentsTestCase(test.CdistTestCase):
|
||||||
object_id = 'some-id'
|
object_id = 'some-id'
|
||||||
value = 'some value'
|
value = 'some value'
|
||||||
argv = [type_name, object_id, '--required1', value, '--required2', value]
|
argv = [type_name, object_id, '--required1', value, '--required2', value]
|
||||||
print(self.env)
|
# print(self.env)
|
||||||
os.environ.update(self.env)
|
os.environ.update(self.env)
|
||||||
emu = emulator.Emulator(argv)
|
emu = emulator.Emulator(argv)
|
||||||
emu.run()
|
emu.run()
|
||||||
|
|
Loading…
Reference in a new issue