Various tests to validate proper `salt-master` exit status:

* Test when ``user`` config setting is an invalid user.

* Test when an unknown argument is given.

* Test Correct ``salt-master`` daemon start up.
This commit is contained in:
Thayne Harbaugh 2016-06-02 17:03:59 -06:00
parent 68a9912d3a
commit a46750c8c5

View file

@ -20,10 +20,11 @@ ensure_in_syspath('../../')
# Import salt libs
import integration
from integration.utils import testprogram
import salt.utils
class MasterTest(integration.ShellCase, integration.ShellCaseCommonTestsMixIn):
class MasterTest(integration.ShellCase, testprogram.TestProgramCase, integration.ShellCaseCommonTestsMixIn):
_call_binary_ = 'salt-master'
@ -78,7 +79,77 @@ class MasterTest(integration.ShellCase, integration.ShellCaseCommonTestsMixIn):
if os.path.isdir(config_dir):
shutil.rmtree(config_dir)
def test_exit_status_unknown_user(self):
'''
Ensure correct exit status when the master is configured to run as an unknown user.
'''
master = testprogram.TestDaemonSaltMaster(
name='unknown_user',
config={'user': 'unknown'},
parent_dir=self._test_dir,
)
# Call setup here to ensure config and script exist
master.setup()
stdout, stderr, status = master.run(
args=['-d'],
catch_stderr=True,
with_retcode=True,
)
self.assert_exit_status(
status, 'EX_NOUSER',
message='unknown user not on system',
stdout=stdout, stderr=stderr
)
# master.shutdown() should be unnecessary since the start-up should fail
# pylint: disable=invalid-name
def test_exit_status_unknown_argument(self):
'''
Ensure correct exit status when an unknown argument is passed to salt-master.
'''
master = testprogram.TestDaemonSaltMaster(
name='unknown_argument',
parent_dir=self._test_dir,
)
# Call setup here to ensure config and script exist
master.setup()
stdout, stderr, status = master.run(
args=['-d', '--unknown-argument'],
catch_stderr=True,
with_retcode=True,
)
self.assert_exit_status(
status, 'EX_USAGE',
message='unknown argument',
stdout=stdout, stderr=stderr
)
# master.shutdown() should be unnecessary since the start-up should fail
def test_exit_status_correct_usage(self):
'''
Ensure correct exit status when salt-master starts correctly.
'''
master = testprogram.TestDaemonSaltMaster(
name='correct_usage',
parent_dir=self._test_dir,
)
# Call setup here to ensure config and script exist
master.setup()
stdout, stderr, status = master.run(
args=['-d'],
catch_stderr=True,
with_retcode=True,
)
self.assert_exit_status(
status, 'EX_OK',
message='correct usage',
stdout=stdout, stderr=stderr
)
master.shutdown()
if __name__ == '__main__':
from integration import run_tests
run_tests(MasterTest)
integration.run_tests(MasterTest)