Skip to content
Snippets Groups Projects
Commit 4fcbdd77 authored by Will Szumski's avatar Will Szumski
Browse files

Stop mocking ansible modules globally

This causes non-local side effects that are hard to track down. E.g:

--- import errors ---
Failed to import test module: tests.test_merge_yaml
Traceback (most recent call last):
  File "/home/will/.pyenv/versions/3.7.7/lib/python3.7/unittest/loader.py", line 436, in _find_test_path
    module = self._get_module_from_name(name)
  File "/home/will/.pyenv/versions/3.7.7/lib/python3.7/unittest/loader.py", line 377, in _get_module_from_name
    __import__(name)
  File "/home/will/code/kolla-ansible/tests/test_merge_yaml.py", line 19, in <module>
    from ansible.errors import AnsibleModuleError
ModuleNotFoundError: No module named 'ansible.errors'; 'ansible' is not a package

This `'ansible' is not a package` message occurs because ansible is a Mock.

Depends-On: https://review.opendev.org/#/c/726768/
Change-Id: Iddbdd3d855daadbf12536cc990559e6b8e123051
parent a5c1d366
No related branches found
No related tags found
No related merge requests found
alabaster==0.7.10 alabaster==0.7.10
ansible==2.8.0
appdirs==1.4.3 appdirs==1.4.3
asn1crypto==0.24.0 asn1crypto==0.24.0
Babel==2.5.3 Babel==2.5.3
......
...@@ -11,3 +11,4 @@ coverage!=4.4,>=4.0 # Apache-2.0 ...@@ -11,3 +11,4 @@ coverage!=4.4,>=4.0 # Apache-2.0
docker>=2.4.2 # Apache-2.0 docker>=2.4.2 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0 oslotest>=3.2.0 # Apache-2.0
stestr>=2.0.0 # Apache-2.0 stestr>=2.0.0 # Apache-2.0
ansible>=2.8.0 # GPLv3
...@@ -26,11 +26,6 @@ from docker.types import Ulimit ...@@ -26,11 +26,6 @@ from docker.types import Ulimit
from oslotest import base from oslotest import base
this_dir = os.path.dirname(sys.modules[__name__].__file__) this_dir = os.path.dirname(sys.modules[__name__].__file__)
# FIXME(yoctozepto): this modifies global interpreter state and affects tests
# from other files
sys.modules['ansible'] = mock.MagicMock()
sys.modules['ansible.module_utils'] = mock.MagicMock()
sys.modules['ansible.module_utils.basic'] = mock.MagicMock()
kolla_docker_file = os.path.join(this_dir, '..', 'ansible', kolla_docker_file = os.path.join(this_dir, '..', 'ansible',
'library', 'kolla_docker.py') 'library', 'kolla_docker.py')
kd = imp.load_source('kolla_docker', kolla_docker_file) kd = imp.load_source('kolla_docker', kolla_docker_file)
......
...@@ -15,8 +15,6 @@ ...@@ -15,8 +15,6 @@
import imp import imp
import os import os
import sys
from unittest import mock
from io import StringIO from io import StringIO
from oslotest import base from oslotest import base
...@@ -26,9 +24,6 @@ PROJECT_DIR = os.path.abspath(os.path.join(os. path.dirname(__file__), '../')) ...@@ -26,9 +24,6 @@ PROJECT_DIR = os.path.abspath(os.path.join(os. path.dirname(__file__), '../'))
MERGE_CONFIG_FILE = os.path.join(PROJECT_DIR, MERGE_CONFIG_FILE = os.path.join(PROJECT_DIR,
'ansible/action_plugins/merge_configs.py') 'ansible/action_plugins/merge_configs.py')
# FIXME(yoctozepto): this modifies global interpreter state and affects tests
# from other files
sys.modules['ansible.plugins'] = mock.MagicMock()
merge_configs = imp.load_source('merge_configs', MERGE_CONFIG_FILE) merge_configs = imp.load_source('merge_configs', MERGE_CONFIG_FILE)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment