salt/tests/integration/states/test_compiler.py
2018-08-10 13:15:53 -04:00

50 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
'''
tests for host state
'''
# Import python libs
from __future__ import absolute_import, unicode_literals, print_function
# Import Salt Testing libs
from tests.support.case import ModuleCase
# Import Salt libs
import salt.utils.platform
# Import 3rd-Party libs
HAS_LSB_RELEASE = True
try:
import lsb_release
except ImportError:
HAS_LSB_RELEASE = False
class CompileTest(ModuleCase):
'''
Validate the state compiler
'''
def test_multi_state(self):
'''
Test the error with multiple states of the same type
'''
ret = self.run_function('state.sls', mods='fuzz.multi_state')
# Verify that the return is a list, aka, an error
self.assertIsInstance(ret, list)
def test_jinja_deep_error(self):
'''
Test when we have an error in a execution module
called by jinja
'''
if salt.utils.platform.is_linux() and HAS_LSB_RELEASE:
release = lsb_release.get_distro_information()
if release.get('ID') == 'Debian' and int(release.get('RELEASE', '0')[0]) < 9:
self.skipTest('This test is flaky on Debian 8. Skipping.')
ret = self.run_function('state.sls', ['issue-10010'])
self.assertTrue(
', in jinja_error' in ret[0].strip())
self.assertTrue(
ret[0].strip().endswith('Exception: hehehe'))