diff options
author | Chris Meyers <chris.meyers.fsu@gmail.com> | 2023-12-18 15:51:15 +0100 |
---|---|---|
committer | Chris Meyers <chrismeyersfsu@users.noreply.github.com> | 2023-12-18 18:00:50 +0100 |
commit | 2a6cf032f8579bdcafd169d2ce3edfe0f5d459ac (patch) | |
tree | a8ee00d63547836e56dfcb5d4f8cf51ccf268682 /awx_collection/test | |
parent | add awx collection export tests (diff) | |
download | awx-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.py | 40 |
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): |