This is an automated email from the ASF dual-hosted git repository.

juergbi pushed a commit to branch jbilleter/junction-provenance
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit efba6297786c96f81a7e32b24c3518eb958fd512
Author: Jürg Billeter <[email protected]>
AuthorDate: Sun Apr 26 17:02:52 2026 +0200

    tests/sources/source_provenance_attributes.py: Test junction provenance
    
    Junctions may be loaded before a project is fully loaded, which means
    that the source provenance attribute project configuration may not be
    available yet.
---
 tests/sources/source_provenance_attributes.py       | 21 ++++++++++++---------
 .../elements/junction_a.bst                         |  7 +++++++
 .../elements/junction_b.bst                         |  7 +++++++
 3 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/tests/sources/source_provenance_attributes.py 
b/tests/sources/source_provenance_attributes.py
index 04c48ba97..b65d7cb4b 100644
--- a/tests/sources/source_provenance_attributes.py
+++ b/tests/sources/source_provenance_attributes.py
@@ -54,7 +54,8 @@ def test_source_provenance_disallow_top_level(cli, datafiles):
 
 
 @pytest.mark.datafiles(DATA_DIR)
-def test_source_provenance_no_defined_attributes(cli, datafiles):
[email protected]("element", ["target", "junction"])
+def test_source_provenance_no_defined_attributes(cli, datafiles, element):
     project = str(datafiles)
 
     # Set the project_dir alias in project.conf to the path to the tested 
project
@@ -68,21 +69,22 @@ def test_source_provenance_no_defined_attributes(cli, 
datafiles):
     # Make sure a non-default attribute fails
     result = cli.run(
         project=project,
-        args=["show", "--format", "%{source-info}", "target_a.bst"],
+        args=["show", "--format", "%{source-info}", f"{element}_a.bst"],
     )
     result.assert_main_error(ErrorDomain.LOAD, 
LoadErrorReason.UNDEFINED_SOURCE_PROVENANCE_ATTRIBUTE)
 
     # Make sure a default attribute fails
     result = cli.run(
         project=project,
-        args=["show", "--format", "%{source-info}", "target_b.bst"],
+        args=["show", "--format", "%{source-info}", f"{element}_b.bst"],
     )
     result.assert_main_error(ErrorDomain.LOAD, 
LoadErrorReason.UNDEFINED_SOURCE_PROVENANCE_ATTRIBUTE)
 
 
 # Test that no defined source provenance attributes blocks all source 
provenance data
 @pytest.mark.datafiles(DATA_DIR)
-def test_source_provenance_default_attributes(cli, datafiles):
[email protected]("element", ["target", "junction"])
+def test_source_provenance_default_attributes(cli, datafiles, element):
     project = str(datafiles)
 
     # Set the project_dir alias in project.conf to the path to the tested 
project
@@ -99,7 +101,7 @@ def test_source_provenance_default_attributes(cli, 
datafiles):
     # Make sure defined attributes are available
     result = cli.run(
         project=project,
-        args=["show", "--format", "%{source-info}", "target_b.bst"],
+        args=["show", "--format", "%{source-info}", f"{element}_b.bst"],
     )
     result.assert_success()
 
@@ -113,14 +115,15 @@ def test_source_provenance_default_attributes(cli, 
datafiles):
     # Make sure undefined attributes fail
     result = cli.run(
         project=project,
-        args=["show", "--format", "%{source-info}", "target_a.bst"],
+        args=["show", "--format", "%{source-info}", f"{element}_a.bst"],
     )
     result.assert_main_error(ErrorDomain.LOAD, 
LoadErrorReason.UNDEFINED_SOURCE_PROVENANCE_ATTRIBUTE)
 
 
 # Test that no defined source provenance attributes blocks all source 
provenance data
 @pytest.mark.datafiles(DATA_DIR)
-def test_source_provenance_project_defined_attributes(cli, datafiles):
[email protected]("element", ["target", "junction"])
+def test_source_provenance_project_defined_attributes(cli, datafiles, element):
     project = str(datafiles)
 
     # Set the project_dir alias in project.conf to the path to the tested 
project
@@ -139,7 +142,7 @@ def test_source_provenance_project_defined_attributes(cli, 
datafiles):
     # Make sure defined attributes are available
     result = cli.run(
         project=project,
-        args=["show", "--format", "%{source-info}", "target_a.bst"],
+        args=["show", "--format", "%{source-info}", f"{element}_a.bst"],
     )
     result.assert_success()
 
@@ -153,6 +156,6 @@ def test_source_provenance_project_defined_attributes(cli, 
datafiles):
     # Make sure undefined attributes fail
     result = cli.run(
         project=project,
-        args=["show", "--format", "%{source-info}", "target_b.bst"],
+        args=["show", "--format", "%{source-info}", f"{element}_b.bst"],
     )
     result.assert_main_error(ErrorDomain.LOAD, 
LoadErrorReason.UNDEFINED_SOURCE_PROVENANCE_ATTRIBUTE)
diff --git a/tests/sources/source_provenance_attributes/elements/junction_a.bst 
b/tests/sources/source_provenance_attributes/elements/junction_a.bst
new file mode 100644
index 000000000..364acebad
--- /dev/null
+++ b/tests/sources/source_provenance_attributes/elements/junction_a.bst
@@ -0,0 +1,7 @@
+kind: junction
+
+sources:
+- kind: local
+  path: .
+  provenance:
+    originator: bar
diff --git a/tests/sources/source_provenance_attributes/elements/junction_b.bst 
b/tests/sources/source_provenance_attributes/elements/junction_b.bst
new file mode 100644
index 000000000..e4d68feb9
--- /dev/null
+++ b/tests/sources/source_provenance_attributes/elements/junction_b.bst
@@ -0,0 +1,7 @@
+kind: junction
+
+sources:
+- kind: local
+  path: .
+  provenance:
+    homepage: foo

Reply via email to