diff options
Diffstat (limited to 'ipatests/conftest.py')
-rw-r--r-- | ipatests/conftest.py | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/ipatests/conftest.py b/ipatests/conftest.py index 511d7b77e..61e889d71 100644 --- a/ipatests/conftest.py +++ b/ipatests/conftest.py @@ -7,13 +7,21 @@ import os import pprint import sys +import pytest + from ipalib import api from ipalib.cli import cli_plugins + +try: + import ipaplatform # pylint: disable=unused-import +except ImportError: + ipaplatform = None try: import ipaserver except ImportError: ipaserver = None +HERE = os.path.dirname(os.path.abspath(__file__)) pytest_plugins = [ 'ipatests.pytest_plugins.additional_config', @@ -31,6 +39,7 @@ MARKERS = [ 'tier1: functional API tests', 'cs_acceptance: Acceptance test suite for Dogtag Certificate Server', 'ds_acceptance: Acceptance test suite for 389 Directory Server', + 'skip_ipaclient_unittest: Skip in ipaclient unittest mode', ] @@ -46,6 +55,7 @@ NO_RECURSE_DIRS = [ 'install/share' ] + INIVALUES = { 'python_classes': ['test_', 'Test'], 'python_files': ['test_*.py'], @@ -75,13 +85,27 @@ def pytest_configure(config): config.option.doctestmodules = True +def pytest_addoption(parser): + group = parser.getgroup("IPA integration tests") + group.addoption( + '--ipaclient-unittests', + help='Run ipaclient unit tests only (no RPC and ipaserver)', + action='store_true' + ) + + def pytest_cmdline_main(config): api.bootstrap( context=u'cli', in_server=False, in_tree=True, fallback=False ) for klass in cli_plugins: api.add_plugin(klass) - api.finalize() + + # XXX workaround until https://fedorahosted.org/freeipa/ticket/6408 has + # been resolved. + if ipaserver is not None: + api.finalize() + if config.option.verbose: print('api.env: ') pprint.pprint({k: api.env[k] for k in api.env}) @@ -89,3 +113,11 @@ def pytest_cmdline_main(config): print("euid: {}, egid: {}".format(os.geteuid(), os.getegid())) print("working dir: {}".format(os.path.abspath(os.getcwd()))) print('sys.version: {}'.format(sys.version)) + + +def pytest_runtest_setup(item): + if isinstance(item, item.Function): + if item.get_marker('skip_ipaclient_unittest'): + # pylint: disable=no-member + if pytest.config.option.ipaclient_unittests: + pytest.skip("Skip in ipaclient unittest mode") |