From d5a3d9d20ea5b0c7a0d402c895cf2b63bc3132fe Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Thu, 26 Oct 2017 14:05:24 -0400 Subject: view: test conflicting packages in views --- lib/spack/spack/test/cmd/view.py | 25 ++++++++++++++++++++++ .../builtin.mock/packages/extension1/package.py | 4 ++-- .../builtin.mock/packages/extension2/package.py | 4 ++-- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/lib/spack/spack/test/cmd/view.py b/lib/spack/spack/test/cmd/view.py index b4f3275172..a52edff786 100644 --- a/lib/spack/spack/test/cmd/view.py +++ b/lib/spack/spack/test/cmd/view.py @@ -85,6 +85,31 @@ def test_view_extension_remove( assert not os.path.exists(os.path.join(viewpath, 'bin', 'extension1')) +def test_view_extension_conflict( + tmpdir, builtin_mock, mock_archive, mock_fetch, config, + install_mockery): + install('extendee') + install('extension1@1.0') + install('extension1@2.0') + viewpath = str(tmpdir.mkdir('view')) + view('symlink', viewpath, 'extension1@1.0') + output = view('symlink', viewpath, 'extension1@2.0') + assert 'Package conflict detected' in output + + +def test_view_extension_conflict_ignored( + tmpdir, builtin_mock, mock_archive, mock_fetch, config, + install_mockery): + install('extendee') + install('extension1@1.0') + install('extension1@2.0') + viewpath = str(tmpdir.mkdir('view')) + view('symlink', viewpath, 'extension1@1.0') + view('symlink', viewpath, '-i', 'extension1@2.0') + with open(os.path.join(viewpath, 'bin', 'extension1'), 'r') as fin: + assert fin.read() == '1.0' + + def test_view_extension_global_activation( tmpdir, builtin_mock, mock_archive, mock_fetch, config, install_mockery): diff --git a/var/spack/repos/builtin.mock/packages/extension1/package.py b/var/spack/repos/builtin.mock/packages/extension1/package.py index c9837bde90..e36b2ad1d1 100644 --- a/var/spack/repos/builtin.mock/packages/extension1/package.py +++ b/var/spack/repos/builtin.mock/packages/extension1/package.py @@ -39,5 +39,5 @@ class Extension1(Package): def install(self, spec, prefix): mkdirp(prefix.bin) - with open(os.path.join(prefix.bin, 'extension1'), 'w+'): - pass + with open(os.path.join(prefix.bin, 'extension1'), 'w+') as fout: + fout.write(str(spec.version)) diff --git a/var/spack/repos/builtin.mock/packages/extension2/package.py b/var/spack/repos/builtin.mock/packages/extension2/package.py index 5616d4c3ca..de2545250b 100644 --- a/var/spack/repos/builtin.mock/packages/extension2/package.py +++ b/var/spack/repos/builtin.mock/packages/extension2/package.py @@ -40,5 +40,5 @@ class Extension2(Package): def install(self, spec, prefix): mkdirp(prefix.bin) - with open(os.path.join(prefix.bin, 'extension2'), 'w+'): - pass + with open(os.path.join(prefix.bin, 'extension2'), 'w+') as fout: + fout.write(str(spec.version)) -- cgit v1.2.3-60-g2f50