Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion easybuild/framework/easyconfig/easyconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
from easybuild.tools.module_naming_scheme.mns import DEVEL_MODULE_SUFFIX
from easybuild.tools.module_naming_scheme.utilities import avail_module_naming_schemes, det_full_ec_version
from easybuild.tools.module_naming_scheme.utilities import det_hidden_modname, is_valid_module_name
from easybuild.tools.modules import modules_tool
from easybuild.tools.modules import modules_tool, NoModulesTool
from easybuild.tools.py2vs3 import OrderedDict, create_base_metaclass, string_type
from easybuild.tools.systemtools import check_os_dependency, pick_dep_version
from easybuild.tools.toolchain.toolchain import SYSTEM_TOOLCHAIN_NAME, is_system_toolchain
Expand Down Expand Up @@ -1306,6 +1306,9 @@ def probe_external_module_metadata(self, mod_name, existing_metadata=None):
:param existing_metadata: already available metadata for this external module (if any)
"""
res = {}
if isinstance(self.modules_tool, NoModulesTool):
self.log.debug('Ignoring request for external module data for %s as no modules tool is active', mod_name)
return res

if existing_metadata is None:
existing_metadata = {}
Expand Down
25 changes: 14 additions & 11 deletions test/framework/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -5073,19 +5073,22 @@ def test_fetch(self):
lock_path = os.path.join(self.test_installpath, 'software', '.locks', lock_fn)
mkdir(lock_path, parents=True)

args = ['toy-0.0.eb', '--fetch']
stdout, stderr = self._run_mock_eb(args, raise_error=True, strip=True, testing=False)
# Run for a "regular" EC and one with an external module dependency
# which might trip up the dependency resolution (see #4298)
for ec in ('toy-0.0.eb', 'toy-0.0-deps.eb'):
args = [ec, '--fetch']
stdout, stderr = self._run_mock_eb(args, raise_error=True, strip=True, testing=False)

patterns = [
r"^== fetching files\.\.\.$",
r"^== COMPLETED: Installation STOPPED successfully \(took .* secs?\)$",
]
for pattern in patterns:
regex = re.compile(pattern, re.M)
self.assertTrue(regex.search(stdout), "Pattern '%s' not found in: %s" % (regex.pattern, stdout))
patterns = [
r"^== fetching files\.\.\.$",
r"^== COMPLETED: Installation STOPPED successfully \(took .* secs?\)$",
]
for pattern in patterns:
regex = re.compile(pattern, re.M)
self.assertTrue(regex.search(stdout), "Pattern '%s' not found in: %s" % (regex.pattern, stdout))

regex = re.compile(r"^== creating build dir, resetting environment\.\.\.$")
self.assertFalse(regex.search(stdout), "Pattern '%s' found in: %s" % (regex.pattern, stdout))
regex = re.compile(r"^== creating build dir, resetting environment\.\.\.$")
self.assertFalse(regex.search(stdout), "Pattern '%s' found in: %s" % (regex.pattern, stdout))

def test_parse_external_modules_metadata(self):
"""Test parse_external_modules_metadata function."""
Expand Down