diff options
-rw-r--r-- | tests/format/project.py | 27 | ||||
-rw-r--r-- | tests/format/project/refs-options/project.conf | 8 | ||||
-rw-r--r-- | tests/format/project/refs-options/project.refs | 12 | ||||
-rw-r--r-- | tests/format/project/refs-options/target.bst | 9 |
4 files changed, 56 insertions, 0 deletions
diff --git a/tests/format/project.py b/tests/format/project.py index eab67bcdd..75b33f40d 100644 --- a/tests/format/project.py +++ b/tests/format/project.py @@ -34,3 +34,30 @@ def test_project_conf_duplicate_plugins(cli, datafiles): result = cli.run(project=project, silent=True, args=[ 'show', 'element.bst']) result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.INVALID_YAML) + + +# Assert that we get a different cache key for target.bst, depending +# on a conditional statement we have placed in the project.refs file. +# +@pytest.mark.datafiles(DATA_DIR) +def test_project_refs_options(cli, datafiles): + project = os.path.join(datafiles.dirname, datafiles.basename, 'refs-options') + + result1 = cli.run(project=project, silent=True, args=[ + '--option', 'test', 'True', + 'show', + '--deps', 'none', + '--format', '%{key}', + 'target.bst']) + result1.assert_success() + + result2 = cli.run(project=project, silent=True, args=[ + '--option', 'test', 'False', + 'show', + '--deps', 'none', + '--format', '%{key}', + 'target.bst']) + result2.assert_success() + + # Assert that the cache keys are different + assert result1.output != result2.output diff --git a/tests/format/project/refs-options/project.conf b/tests/format/project/refs-options/project.conf new file mode 100644 index 000000000..a44806da0 --- /dev/null +++ b/tests/format/project/refs-options/project.conf @@ -0,0 +1,8 @@ +name: test +ref-storage: project.refs + +options: + test: + type: bool + description: Test boolean + default: False diff --git a/tests/format/project/refs-options/project.refs b/tests/format/project/refs-options/project.refs new file mode 100644 index 000000000..1a9cb51b2 --- /dev/null +++ b/tests/format/project/refs-options/project.refs @@ -0,0 +1,12 @@ +# A project.refs file with a conditional statement +# +projects: + test: + target.bst: + - ref: pony + + # Optionally override the ref + (?): + - test: + target.bst: + - ref: horsy diff --git a/tests/format/project/refs-options/target.bst b/tests/format/project/refs-options/target.bst new file mode 100644 index 000000000..bf9192295 --- /dev/null +++ b/tests/format/project/refs-options/target.bst @@ -0,0 +1,9 @@ +kind: import +description: | + + Import some git repo with optional refs + +sources: +- kind: git + url: http://pony.com/git + track: master |