URL: https://github.com/freeipa/freeipa/pull/442
Author: tiran
 Title: #442: Add option to run tests in-tree and out-of-tree mode
Action: synchronized

To pull the PR as Git branch:
git remote add ghfreeipa https://github.com/freeipa/freeipa
git fetch ghfreeipa pull/442/head:pr442
git checkout pr442
From fa021e8e631b555068d6f7ab34abdd0a4fe844e1 Mon Sep 17 00:00:00 2001
From: Christian Heimes <chei...@redhat.com>
Date: Wed, 8 Feb 2017 13:29:38 +0100
Subject: [PATCH] Add option to run tests in-tree and out-of-tree mode

By default ipa-run-tests and pytest auto-detect the presence of
../ipasetup.py.in and run tests in-tree mode when the file exists. The
option can be overriden with ipa-run-tests --in-tree=true/false.

Signed-off-by: Christian Heimes <chei...@redhat.com>
---
 ipatests/conftest.py | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/ipatests/conftest.py b/ipatests/conftest.py
index 6d8ba60..df8d919 100644
--- a/ipatests/conftest.py
+++ b/ipatests/conftest.py
@@ -3,6 +3,8 @@
 #
 from __future__ import print_function
 
+import os
+
 from ipalib import api
 from ipalib.cli import cli_plugins
 try:
@@ -11,6 +13,9 @@
     ipaserver = None
 
 
+HERE = os.path.dirname(os.path.abspath(__file__))
+
+
 pytest_plugins = [
     'ipatests.pytest_plugins.additional_config',
     'ipatests.pytest_plugins.beakerlib',
@@ -71,9 +76,30 @@ def pytest_configure(config):
     config.option.doctestmodules = True
 
 
+def pytest_addoption(parser):
+    def truefalse(arg):
+        if arg.lower() == 'true':
+            return True
+        if arg.lower() == 'false':
+            return False
+        return arg  # triggers an error later
+
+    in_tree = os.path.isfile(os.path.join(HERE, os.pardir, 'ipasetup.py.in'))
+    group = parser.getgroup("IPA integration tests")
+    group.addoption(
+        '--in-tree',
+        dest="ipa_in_tree",
+        type=truefalse,
+        choices=(True, False),
+        default=in_tree,
+        help="Run IPA tests in-tree (default: auto-detect ../ipasetup.py.in)"
+    )
+
+
 def pytest_cmdline_main(config):
     api.bootstrap(
-        context=u'cli', in_server=False, in_tree=True, fallback=False
+        context=u'cli', in_server=False, in_tree=config.option.ipa_in_tree,
+        fallback=False
     )
     for klass in cli_plugins:
         api.add_plugin(klass)
-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code

Reply via email to