forked from ungleich-public/cdist
Merge branch 'master' into autorequire
Conflicts: lib/cdist/test/emulator/__init__.py Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
commit
8ac375e8a6
3 changed files with 38 additions and 2 deletions
|
@ -98,10 +98,10 @@ class Emulator(object):
|
||||||
|
|
||||||
for parameter in self.cdist_type.optional_parameters:
|
for parameter in self.cdist_type.optional_parameters:
|
||||||
argument = "--" + parameter
|
argument = "--" + parameter
|
||||||
parser.add_argument(argument, action='store', required=False)
|
parser.add_argument(argument, dest=parameter, action='store', required=False)
|
||||||
for parameter in self.cdist_type.required_parameters:
|
for parameter in self.cdist_type.required_parameters:
|
||||||
argument = "--" + parameter
|
argument = "--" + parameter
|
||||||
parser.add_argument(argument, action='store', required=True)
|
parser.add_argument(argument, dest=parameter, action='store', required=True)
|
||||||
|
|
||||||
# If not singleton support one positional parameter
|
# If not singleton support one positional parameter
|
||||||
if not self.cdist_type.is_singleton:
|
if not self.cdist_type.is_singleton:
|
||||||
|
|
|
@ -117,3 +117,38 @@ class AutoRequireEmulatorTestCase(test.CdistTestCase):
|
||||||
self.manifest.run_type_manifest(cdist_object)
|
self.manifest.run_type_manifest(cdist_object)
|
||||||
expected = ['__planet/Saturn', '__moon/Prometheus']
|
expected = ['__planet/Saturn', '__moon/Prometheus']
|
||||||
self.assertEqual(sorted(cdist_object.requirements), sorted(expected))
|
self.assertEqual(sorted(cdist_object.requirements), sorted(expected))
|
||||||
|
|
||||||
|
|
||||||
|
class ArgumentsWithDashesTestCase(test.CdistTestCase):
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.temp_dir = self.mkdtemp()
|
||||||
|
self.target_host = 'localhost'
|
||||||
|
out_path = self.temp_dir
|
||||||
|
handle, self.script = self.mkstemp(dir=self.temp_dir)
|
||||||
|
os.close(handle)
|
||||||
|
_local_base_path = fixtures
|
||||||
|
self.local = local.Local(self.target_host, _local_base_path, out_path)
|
||||||
|
self.local.create_directories()
|
||||||
|
self.local.link_emulator(test.cdist_exec_path)
|
||||||
|
self.env = {
|
||||||
|
'PATH': "%s:%s" % (self.local.bin_path, os.environ['PATH']),
|
||||||
|
'__target_host': self.target_host,
|
||||||
|
'__global': self.local.out_path,
|
||||||
|
'__cdist_type_base_path': self.local.type_path, # for use in type emulator
|
||||||
|
'__manifest': self.local.manifest_path,
|
||||||
|
'__cdist_manifest': self.script,
|
||||||
|
}
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
shutil.rmtree(self.temp_dir)
|
||||||
|
|
||||||
|
def test_arguments_with_dashes(self):
|
||||||
|
argv = ['__arguments_with_dashes', 'some-id', '--with-dash', 'some value']
|
||||||
|
os.environ.update(self.env)
|
||||||
|
emu = emulator.Emulator(argv)
|
||||||
|
emu.run()
|
||||||
|
|
||||||
|
cdist_type = core.Type(self.local.type_path, '__arguments_with_dashes')
|
||||||
|
cdist_object = core.Object(cdist_type, self.local.object_path, 'some-id')
|
||||||
|
self.assertTrue('with-dash' in cdist_object.parameters)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
with-dash
|
Loading…
Reference in a new issue