2012-05-05 14:09:23 +00:00
|
|
|
# Import python libs
|
2012-08-25 23:38:39 +00:00
|
|
|
import os
|
2012-03-29 23:18:32 +00:00
|
|
|
import integration
|
2012-05-05 14:09:23 +00:00
|
|
|
|
2012-03-29 23:18:32 +00:00
|
|
|
|
|
|
|
class StateModuleTest(integration.ModuleCase):
|
|
|
|
'''
|
|
|
|
Validate the test module
|
|
|
|
'''
|
|
|
|
def test_show_highstate(self):
|
|
|
|
'''
|
|
|
|
state.show_highstate
|
|
|
|
'''
|
|
|
|
high = self.run_function('state.show_highstate')
|
|
|
|
self.assertTrue(isinstance(high, dict))
|
|
|
|
self.assertTrue('/testfile' in high)
|
|
|
|
self.assertEqual(high['/testfile']['__env__'], 'base')
|
|
|
|
|
|
|
|
def test_show_lowstate(self):
|
|
|
|
'''
|
|
|
|
state.show_lowstate
|
|
|
|
'''
|
|
|
|
low = self.run_function('state.show_lowstate')
|
|
|
|
self.assertTrue(isinstance(low, list))
|
|
|
|
self.assertTrue(isinstance(low[0], dict))
|
|
|
|
|
2012-05-14 03:31:46 +00:00
|
|
|
def test_catch_recurse(self):
|
|
|
|
'''
|
|
|
|
state.show_sls used to catch a recursive ref
|
|
|
|
'''
|
|
|
|
err = self.run_function('state.sls', mods='recurse_fail')
|
2012-05-14 05:16:45 +00:00
|
|
|
self.assertIn('recursive', err[0])
|
2012-05-14 03:31:46 +00:00
|
|
|
|
2012-06-16 04:41:36 +00:00
|
|
|
def test_no_recurse(self):
|
|
|
|
'''
|
2012-06-19 16:29:14 +00:00
|
|
|
verify that a sls structure is NOT a recursive ref
|
2012-06-16 04:41:36 +00:00
|
|
|
'''
|
|
|
|
sls = self.run_function('state.show_sls', mods='recurse_ok')
|
|
|
|
self.assertIn('snmpd', sls)
|
|
|
|
|
2012-06-19 16:29:14 +00:00
|
|
|
def test_no_recurse_two(self):
|
|
|
|
'''
|
|
|
|
verify that a sls structure is NOT a recursive ref
|
|
|
|
'''
|
|
|
|
sls = self.run_function('state.show_sls', mods='recurse_ok_two')
|
|
|
|
self.assertIn('/etc/nagios/nrpe.cfg', sls)
|
|
|
|
|
2012-08-25 13:44:07 +00:00
|
|
|
def test_issue_1876_syntax_error(self):
|
|
|
|
'''
|
|
|
|
verify that we catch the following syntax error::
|
|
|
|
|
|
|
|
/tmp/salttest/issue-1876:
|
|
|
|
|
|
|
|
file:
|
|
|
|
- managed
|
|
|
|
- source: salt://testfile
|
|
|
|
|
|
|
|
file.append:
|
|
|
|
- text: foo
|
|
|
|
|
|
|
|
'''
|
|
|
|
sls = self.run_function('state.sls', mods='issue-1876')
|
|
|
|
self.assertIn(
|
|
|
|
'Name "/tmp/salttest/issue-1876" in sls "issue-1876" contains '
|
|
|
|
'multiple state decs of the same type', sls
|
|
|
|
)
|
|
|
|
|
2012-08-28 09:03:11 +00:00
|
|
|
maxDiff = None
|
|
|
|
|
2012-08-25 23:38:39 +00:00
|
|
|
def test_issue_1879_too_simple_contains_check(self):
|
2012-08-28 09:03:11 +00:00
|
|
|
contents = """\
|
2012-08-25 23:38:39 +00:00
|
|
|
# set variable identifying the chroot you work in (used in the prompt below)
|
|
|
|
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
|
|
|
|
debian_chroot=$(cat /etc/debian_chroot)
|
|
|
|
fi
|
2012-08-28 09:03:11 +00:00
|
|
|
|
2012-08-25 23:38:39 +00:00
|
|
|
# enable bash completion in interactive shells
|
|
|
|
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
|
|
|
|
. /etc/bash_completion
|
2012-08-28 09:03:11 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
"""
|
|
|
|
# Create the file
|
|
|
|
self.run_function('state.sls', mods='issue-1879')
|
|
|
|
# The first append
|
|
|
|
self.run_function('state.sls', mods='issue-1879.step-1')
|
|
|
|
# The seccond append
|
|
|
|
self.run_function('state.sls', mods='issue-1879.step-2')
|
|
|
|
# Does it match?
|
|
|
|
try:
|
|
|
|
self.assertMultiLineEqual(
|
|
|
|
contents, open("/tmp/salttest/issue-1879", "r").read()
|
|
|
|
)
|
|
|
|
# Make sure we don't re-append existing text
|
|
|
|
self.run_function('state.sls', mods='issue-1879.step-1')
|
|
|
|
self.run_function('state.sls', mods='issue-1879.step-2')
|
|
|
|
self.assertMultiLineEqual(
|
|
|
|
contents, open("/tmp/salttest/issue-1879", "r").read()
|
|
|
|
)
|
|
|
|
except Exception:
|
|
|
|
import shutil
|
|
|
|
shutil.copy('/tmp/salttest/issue-1879', '/tmp/salttest/issue-1879.bak')
|
|
|
|
raise
|
|
|
|
finally:
|
|
|
|
os.unlink('/tmp/salttest/issue-1879')
|
2012-08-25 23:38:39 +00:00
|
|
|
|
|
|
|
|
2012-07-20 06:21:01 +00:00
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
from integration import run_tests
|
|
|
|
run_tests(StateModuleTest)
|