From 25a837bf796eb94d78740e21147d8cfd9d942241 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Tue, 9 Jun 2020 20:00:23 +0200 Subject: Testing: create mock executable fixture (#16999) --- lib/spack/spack/test/conftest.py | 17 +++++++++++++++++ lib/spack/spack/test/relocate.py | 11 ++--------- 2 files changed, 19 insertions(+), 9 deletions(-) (limited to 'lib') diff --git a/lib/spack/spack/test/conftest.py b/lib/spack/spack/test/conftest.py index ae8fa80ab7..bac5bcebf6 100644 --- a/lib/spack/spack/test/conftest.py +++ b/lib/spack/spack/test/conftest.py @@ -1099,3 +1099,20 @@ def clear_directive_functions(): # proceeding with subsequent tests that may depend on the original # functions. spack.directives.DirectiveMeta._directives_to_be_executed = [] + + +@pytest.fixture +def mock_executable(tmpdir): + """Factory to create a mock executable in a temporary directory that + output a custom string when run. + """ + import jinja2 + + def _factory(name, output, subdir=('bin',)): + f = tmpdir.mkdir(*subdir).join(name) + t = jinja2.Template('#!/bin/bash\n{{ output }}\n') + f.write(t.render(output=output)) + f.chmod(0o755) + return str(f) + + return _factory diff --git a/lib/spack/spack/test/relocate.py b/lib/spack/spack/test/relocate.py index 6669b25eb4..551f1596f7 100644 --- a/lib/spack/spack/test/relocate.py +++ b/lib/spack/spack/test/relocate.py @@ -107,16 +107,9 @@ def expected_patchelf_path(request, mutable_database, monkeypatch): @pytest.fixture() -def mock_patchelf(tmpdir): - import jinja2 - +def mock_patchelf(tmpdir, mock_executable): def _factory(output): - f = tmpdir.mkdir('bin').join('patchelf') - t = jinja2.Template('#!/bin/bash\n{{ output }}\n') - f.write(t.render(output=output)) - f.chmod(0o755) - return str(f) - + return mock_executable('patchelf', output=output) return _factory -- cgit v1.2.3-60-g2f50