mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
grains state: more tests
This commit is contained in:
parent
cc844e4a2c
commit
c19cff517a
1 changed files with 52 additions and 2 deletions
|
@ -78,7 +78,7 @@ class GrainsTestCase(TestCase):
|
|||
with open(grains_file, "w+") as grf:
|
||||
grf.write(cstr)
|
||||
|
||||
# 'present' function tests: 10
|
||||
# 'present' function tests: 12
|
||||
|
||||
def test_present_add(self):
|
||||
# Set a non existing grain
|
||||
|
@ -128,6 +128,24 @@ class GrainsTestCase(TestCase):
|
|||
+ " bar: is a dict\n"
|
||||
)
|
||||
|
||||
def test_present_add_key_to_existing(self):
|
||||
self.setGrains({'a': 'aval', 'foo': {'k1': 'v1'}})
|
||||
# Fails setting a grain to a dict
|
||||
ret = grains.present(
|
||||
name='foo:k2',
|
||||
value='v2')
|
||||
self.assertEqual(ret['result'], True)
|
||||
self.assertEqual(ret['comment'], 'Set grain foo:k2 to v2')
|
||||
self.assertEqual(ret['changes'], {'foo': {'k2': 'v2', 'k1': 'v1'}})
|
||||
self.assertEqual(
|
||||
grains.__grains__,
|
||||
{'a': 'aval', 'foo': {'k1': 'v1', 'k2': 'v2'}})
|
||||
self.assertGrainFileContent("a: aval\n"
|
||||
+ "foo:\n"
|
||||
+ " k1: v1\n"
|
||||
+ " k2: v2\n"
|
||||
)
|
||||
|
||||
def test_present_already_set(self):
|
||||
self.setGrains({'a': 'aval', 'foo': 'bar'})
|
||||
# Grain already set
|
||||
|
@ -309,6 +327,24 @@ class GrainsTestCase(TestCase):
|
|||
grains.__grains__,
|
||||
{'a': 'aval', 'foo': {'is': {'nested': 'bar'}}})
|
||||
|
||||
def test_present_fail_merge_dict(self):
|
||||
self.setGrains({'a': 'aval', 'foo': {'k1': 'v1'}})
|
||||
# Fails setting a grain to a dict
|
||||
ret = grains.present(
|
||||
name='foo',
|
||||
value={'k2': 'v2'})
|
||||
self.assertEqual(ret['result'], False)
|
||||
self.assertEqual(ret['comment'], 'The key \'foo\' exists but '
|
||||
+ 'is a dict or a list. '
|
||||
+ 'Use \'force=True\' to overwrite.')
|
||||
self.assertEqual(
|
||||
grains.__grains__,
|
||||
{'a': 'aval', 'foo': {'k1': 'v1'}})
|
||||
self.assertGrainFileContent("a: aval\n"
|
||||
+ "foo:\n"
|
||||
+ " k1: v1\n"
|
||||
)
|
||||
|
||||
def test_present_force_to_set_dict_or_list(self):
|
||||
self.setGrains({'a': 'aval', 'foo': 'bar'})
|
||||
# Force to overwrite a grain to a list
|
||||
|
@ -471,7 +507,7 @@ class GrainsTestCase(TestCase):
|
|||
+ "foo: bar\n"
|
||||
)
|
||||
|
||||
# 'absent' function tests: 5
|
||||
# 'absent' function tests: 6
|
||||
|
||||
def test_absent_already(self):
|
||||
# Unset a non existent grain
|
||||
|
@ -549,6 +585,20 @@ class GrainsTestCase(TestCase):
|
|||
+ "- correct\n"
|
||||
)
|
||||
|
||||
def test_absent_unset_test(self):
|
||||
grains.__opts__['test'] = True
|
||||
self.setGrains({'a': 'aval', 'foo': 'bar'})
|
||||
# Overwrite an existing grain
|
||||
ret = grains.absent(name='foo')
|
||||
self.assertEqual(ret['result'], None)
|
||||
self.assertEqual(ret['changes'], {'grain': 'foo', 'value': None})
|
||||
self.assertEqual(
|
||||
grains.__grains__,
|
||||
{'a': 'aval', 'foo': 'bar'})
|
||||
self.assertGrainFileContent("a: aval\n"
|
||||
+ "foo: bar\n"
|
||||
)
|
||||
|
||||
def test_absent_fails_nested_complex_grain(self):
|
||||
# Unset a nested complex grain
|
||||
self.setGrains({'a': 'aval', 'foo': ['order', {'is': {'nested': 'bar'}}, 'correct']})
|
||||
|
|
Loading…
Add table
Reference in a new issue