salt/tests/integration/modules/sysmod.py
rallytime 7554d0f42d Merge branch '2015.5' into '2015.8'
Conflicts:
  - doc/ref/states/include.rst
  - doc/topics/cloud/reactor.rst
  - doc/topics/reactor/index.rst
  - doc/topics/releases/2015.5.10.rst
  - doc/topics/tutorials/states_pt5.rst
  - doc/topics/windows/windows-package-manager.rst
  - salt/config.py
  - salt/modules/state.py
  - salt/states/grains.py
  - tests/integration/modules/sysmod.py
  - tests/unit/states/grains_test.py
2016-03-24 15:48:00 -06:00

103 lines
3.1 KiB
Python

# -*- coding: utf-8 -*-
# Import python libs
from __future__ import absolute_import
import re
# Import Salt Testing libs
from salttesting.helpers import ensure_in_syspath
ensure_in_syspath('../../')
# Import salt libs
import integration
# Import 3rd-party libs
import salt.ext.six as six
class SysModuleTest(integration.ModuleCase):
'''
Validate the sys module
'''
def test_list_functions(self):
'''
sys.list_functions
'''
# Get all functions
funcs = self.run_function('sys.list_functions')
self.assertIn('hosts.list_hosts', funcs)
self.assertIn('pkg.install', funcs)
# Just sysctl
funcs = self.run_function('sys.list_functions', ('sysctl',))
self.assertNotIn('sys.doc', funcs)
self.assertIn('sysctl.get', funcs)
# Just sys
funcs = self.run_function('sys.list_functions', ('sys.',))
self.assertNotIn('sysctl.get', funcs)
self.assertIn('sys.doc', funcs)
# Staring with sys
funcs = self.run_function('sys.list_functions', ('sys',))
self.assertNotIn('sysctl.get', funcs)
self.assertIn('sys.doc', funcs)
def test_list_modules(self):
'''
sys.list_moduels
'''
mods = self.run_function('sys.list_modules')
self.assertTrue('hosts' in mods)
self.assertTrue('pkg' in mods)
def test_valid_docs(self):
'''
Make sure no functions are exposed that don't have valid docstrings
'''
docs = self.run_function('sys.doc')
nodoc = set()
noexample = set()
allow_failure = (
'cp.recv',
'lxc.run_cmd',
'pkg.expand_repo_def',
'runtests_decorators.depends',
'runtests_decorators.depends_will_fallback',
'runtests_decorators.missing_depends',
'runtests_decorators.missing_depends_will_fallback',
'yumpkg.expand_repo_def',
'yumpkg5.expand_repo_def',
'container_resource.run',
'nspawn.stop',
'nspawn.restart',
'lowpkg.bin_pkg_info',
'state.apply',
)
for fun in docs:
if fun.startswith('runtests_helpers'):
continue
if fun in allow_failure:
continue
if not isinstance(docs[fun], six.string_types):
nodoc.add(fun)
elif not re.search(r'([E|e]xample(?:s)?)+(?:.*)::?', docs[fun]):
noexample.add(fun)
if not nodoc and not noexample:
return
raise AssertionError(
'There are some functions which do not have a docstring or do not '
'have an example:\nNo docstring:\n{0}\nNo example:\n{1}\n'.format(
'\n'.join([' - {0}'.format(f) for f in sorted(nodoc)]),
'\n'.join([' - {0}'.format(f) for f in sorted(noexample)]),
)
)
if __name__ == '__main__':
from integration import run_tests
run_tests(SysModuleTest)