summaryrefslogtreecommitdiffstats
path: root/awx_collection/test
diff options
context:
space:
mode:
authorChris Meyers <chris.meyers.fsu@gmail.com>2023-12-18 15:51:15 +0100
committerChris Meyers <chrismeyersfsu@users.noreply.github.com>2023-12-18 18:00:50 +0100
commit2a6cf032f8579bdcafd169d2ce3edfe0f5d459ac (patch)
treea8ee00d63547836e56dfcb5d4f8cf51ccf268682 /awx_collection/test
parentadd awx collection export tests (diff)
downloadawx-2a6cf032f8579bdcafd169d2ce3edfe0f5d459ac.tar.xz
awx-2a6cf032f8579bdcafd169d2ce3edfe0f5d459ac.zip
refactor awxkit import code
* Move awxkit import code into a pytest fixture to better control when the import happens * Ensure /awx_devel/awxkit is added to sys path before awxkit import runs
Diffstat (limited to 'awx_collection/test')
-rw-r--r--awx_collection/test/awx/conftest.py40
1 files changed, 26 insertions, 14 deletions
diff --git a/awx_collection/test/awx/conftest.py b/awx_collection/test/awx/conftest.py
index 9d1116644e..3e6f571f46 100644
--- a/awx_collection/test/awx/conftest.py
+++ b/awx_collection/test/awx/conftest.py
@@ -35,24 +35,36 @@ from awx.main.models import (
from django.db import transaction
-try:
- import tower_cli # noqa
- HAS_TOWER_CLI = True
-except ImportError:
- HAS_TOWER_CLI = False
+HAS_TOWER_CLI = False
+HAS_AWX_KIT = False
+logger = logging.getLogger('awx.main.tests')
-try:
- # Because awxkit will be a directory at the root of this makefile and we are using python3, import awxkit will work even if its not installed.
- # However, awxkit will not contain api whih causes a stack failure down on line 170 when we try to mock it.
- # So here we are importing awxkit.api to prevent that. Then you only get an error on tests for awxkit functionality.
- import awxkit.api # noqa
- HAS_AWX_KIT = True
-except ImportError:
- HAS_AWX_KIT = False
+@pytest.fixture(autouse=True)
+def awxkit_path_set(monkeypatch):
+ """Monkey patch sys.path, insert awxkit source code so that
+ the package does not need to be installed.
+ """
+ base_folder = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, os.pardir, 'awxkit'))
+ monkeypatch.syspath_prepend(base_folder)
-logger = logging.getLogger('awx.main.tests')
+
+@pytest.fixture(autouse=True)
+def import_awxkit():
+ global HAS_TOWER_CLI
+ global HAS_AWX_KIT
+ try:
+ import tower_cli # noqa
+ HAS_TOWER_CLI = True
+ except ImportError:
+ HAS_TOWER_CLI = False
+
+ try:
+ import awxkit # noqa
+ HAS_AWX_KIT = True
+ except ImportError:
+ HAS_AWX_KIT = False
def sanitize_dict(din):