summaryrefslogtreecommitdiffstats
path: root/ipatests/conftest.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipatests/conftest.py')
-rw-r--r--ipatests/conftest.py34
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")