salt/tests/integration/runners/state.py

56 lines
1.6 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
'''
Tests for the state runner
'''
# Import Python Libs
from __future__ import absolute_import
# Import Salt Testing Libs
from salttesting.helpers import (
ensure_in_syspath,
)
ensure_in_syspath('../../')
# Import Salt Libs
import integration
class StateRunnerTest(integration.ShellCase):
'''
Test the state runner.
'''
def test_orchestrate_output(self):
'''
Ensure the orchestrate runner outputs useful state data.
In Issue #31330, the output only contains ['outputter:', ' highstate'],
and not the full stateful return. This tests ensures we don't regress in that
manner again.
Also test against some sample "good" output that would be included in a correct
orchestrate run.
'''
ret = self.run_run_plus('state.orchestrate', '', 'orch.simple')
bad_out = ['outputter:', ' highstate']
good_out = [' Function: salt.state',
' Result: True',
'Succeeded: 1 (changed=1)',
'Failed: 0',
'Total states run: 1']
ret_output = ret.get('out')
# First, check that we don't have the "bad" output that was displaying in
# Issue #31330 where only the highstate outputter was listed
self.assertIsNot(bad_out, ret_output)
# Now test that some expected good sample output is present in the return.
for item in good_out:
self.assertIn(item, ret_output)
if __name__ == '__main__':
from integration import run_tests
run_tests(StateRunnerTest)