diff options
-rw-r--r-- | tests/integration/filter.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/integration/filter.py b/tests/integration/filter.py index 12061fe7a..f8d2aff26 100644 --- a/tests/integration/filter.py +++ b/tests/integration/filter.py @@ -40,3 +40,35 @@ def test_filter_pass_integration(datafiles, cli): # Check that the integration command was run assert_contains(checkout_dir, ["/foo"]) shutil.rmtree(checkout_dir) + + +@pytest.mark.datafiles(os.path.join(DATA_DIR)) +@pytest.mark.skipif(not HAVE_SANDBOX, reason="Only available with a functioning sandbox") +@pytest.mark.xfail( + HAVE_SANDBOX == "buildbox-run" and BUILDBOX_RUN == "buildbox-run-userchroot", + reason="Root directory not writable with userchroot", +) +def test_filter_pass_integration_uncached(datafiles, cli): + project = str(datafiles) + + # Passing integration commands should build nicely + result = cli.run(project=project, args=["build", "filter/filter.bst"]) + result.assert_success() + + # Delete the build dependency of the filter element. + # The built filter element should be usable even if the build dependency + # is not available in the local cache. + result = cli.run(project=project, args=["artifact", "delete", "filter/parent.bst"]) + result.assert_success() + + # Checking out the element should work + checkout_dir = os.path.join(project, "filter") + result = cli.run( + project=project, + args=["artifact", "checkout", "--integrate", "--directory", checkout_dir, "filter/filter.bst"], + ) + result.assert_success() + + # Check that the integration command was run + assert_contains(checkout_dir, ["/foo"]) + shutil.rmtree(checkout_dir) |