1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Bug fix: Search only for files as candidates

This commit is contained in:
Alejandro Guirao 2015-02-26 15:31:15 +01:00
parent affb66416f
commit b8cf131375
2 changed files with 31 additions and 1 deletions

View file

@ -176,7 +176,8 @@ class PluginLoader(object):
found = None found = None
for path in [p for p in self._get_paths() if p not in self._searched_paths]: for path in [p for p in self._get_paths() if p not in self._searched_paths]:
if os.path.isdir(path): if os.path.isdir(path):
for potential_file in os.listdir(path): for potential_file in (f for f in os.listdir(path)
if os.path.isfile(os.path.join(path, f))):
for suffix in suffixes: for suffix in suffixes:
if potential_file.endswith(suffix): if potential_file.endswith(suffix):
full_path = os.path.join(path, potential_file) full_path = os.path.join(path, potential_file)

View file

@ -11,8 +11,11 @@ import passlib.hash
import string import string
import StringIO import StringIO
import copy import copy
import tempfile
import shutil
from nose.plugins.skip import SkipTest from nose.plugins.skip import SkipTest
from mock import patch
import ansible.utils import ansible.utils
import ansible.errors import ansible.errors
@ -914,3 +917,29 @@ class TestUtils(unittest.TestCase):
for (role, result) in tests: for (role, result) in tests:
self.assertEqual(ansible.utils.role_yaml_parse(role), result) self.assertEqual(ansible.utils.role_yaml_parse(role), result)
@patch('ansible.utils.plugins.module_finder._get_paths')
def test_find_plugin(self, mock_get_paths):
tmp_path = tempfile.mkdtemp()
mock_get_paths.return_value = [tmp_path,]
right_module_1 = 'module.py'
right_module_2 = 'module_without_extension'
wrong_module_1 = 'folder'
wrong_module_2 = 'inexistent'
path_right_module_1 = os.path.join(tmp_path, right_module_1)
path_right_module_2 = os.path.join(tmp_path, right_module_2)
path_wrong_module_1 = os.path.join(tmp_path, wrong_module_1)
open(path_right_module_1, 'w').close()
open(path_right_module_2, 'w').close()
os.mkdir(path_wrong_module_1)
self.assertEqual(ansible.utils.plugins.module_finder.find_plugin(right_module_1),
path_right_module_1)
self.assertEqual(ansible.utils.plugins.module_finder.find_plugin(right_module_2),
path_right_module_2)
self.assertEqual(ansible.utils.plugins.module_finder.find_plugin(wrong_module_1),
None)
self.assertEqual(ansible.utils.plugins.module_finder.find_plugin(wrong_module_2),
None)
shutil.rmtree(tmp_path)