diff options
author | Jürg Billeter <j@bitron.ch> | 2019-02-19 13:17:00 +0000 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2019-02-19 13:17:00 +0000 |
commit | 4a002bee3bb267c5566a041a912bda424c47aa17 (patch) | |
tree | c65a174c85ef3d02a987e3dec4cfd06ca8c778fb | |
parent | 857e7414a9673a6375773708fc797f612db32901 (diff) | |
parent | 9bc389a8d6530963664fcc5774a04688c1cf998a (diff) | |
download | buildstream-4a002bee3bb267c5566a041a912bda424c47aa17.tar.gz |
Merge branch 'juerg/artifact-test' into 'master'
tests: Don't use integration test for artifact log
See merge request BuildStream/buildstream!1162
-rw-r--r-- | tests/frontend/artifact.py | 64 | ||||
-rw-r--r-- | tests/integration/artifact.py | 34 |
2 files changed, 64 insertions, 34 deletions
diff --git a/tests/frontend/artifact.py b/tests/frontend/artifact.py new file mode 100644 index 000000000..896d39a38 --- /dev/null +++ b/tests/frontend/artifact.py @@ -0,0 +1,64 @@ +# +# Copyright (C) 2018 Codethink Limited +# Copyright (C) 2018 Bloomberg Finance LP +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library. If not, see <http://www.gnu.org/licenses/>. +# +# Authors: Richard Maw <richard.maw@codethink.co.uk> +# + +import os +import pytest + +from buildstream.plugintestutils import cli + + +# Project directory +DATA_DIR = os.path.join( + os.path.dirname(os.path.realpath(__file__)), + "project", +) + + +@pytest.mark.datafiles(DATA_DIR) +def test_artifact_log(cli, tmpdir, datafiles): + project = os.path.join(datafiles.dirname, datafiles.basename) + + # Get the cache key of our test element + result = cli.run(project=project, silent=True, args=[ + '--no-colors', + 'show', '--deps', 'none', '--format', '%{full-key}', + 'target.bst' + ]) + key = result.output.strip() + + # Ensure we have an artifact to read + result = cli.run(project=project, args=['build', 'target.bst']) + assert result.exit_code == 0 + + # Read the log via the element name + result = cli.run(project=project, args=['artifact', 'log', 'target.bst']) + assert result.exit_code == 0 + log = result.output + + # Read the log via the key + result = cli.run(project=project, args=['artifact', 'log', 'test/target/' + key]) + assert result.exit_code == 0 + assert log == result.output + + # Read the log via glob + result = cli.run(project=project, args=['artifact', 'log', 'test/target/*']) + assert result.exit_code == 0 + # The artifact is cached under both a strong key and a weak key + assert (log + log) == result.output diff --git a/tests/integration/artifact.py b/tests/integration/artifact.py index 742c33455..c36bc6aa9 100644 --- a/tests/integration/artifact.py +++ b/tests/integration/artifact.py @@ -37,40 +37,6 @@ DATA_DIR = os.path.join( ) -@pytest.mark.integration -@pytest.mark.datafiles(DATA_DIR) -def test_artifact_log(cli, tmpdir, datafiles): - project = os.path.join(datafiles.dirname, datafiles.basename) - - # Get the cache key of our test element - result = cli.run(project=project, silent=True, args=[ - '--no-colors', - 'show', '--deps', 'none', '--format', '%{full-key}', - 'base.bst' - ]) - key = result.output.strip() - - # Ensure we have an artifact to read - result = cli.run(project=project, args=['build', 'base.bst']) - assert result.exit_code == 0 - - # Read the log via the element name - result = cli.run(project=project, args=['artifact', 'log', 'base.bst']) - assert result.exit_code == 0 - log = result.output - - # Read the log via the key - result = cli.run(project=project, args=['artifact', 'log', 'test/base/' + key]) - assert result.exit_code == 0 - assert log == result.output - - # Read the log via glob - result = cli.run(project=project, args=['artifact', 'log', 'test/base/*']) - assert result.exit_code == 0 - # The artifact is cached under both a strong key and a weak key - assert (log + log) == result.output - - # A test to capture the integration of the cachebuildtrees # behaviour, which by default is to include the buildtree # content of an element on caching. |