summaryrefslogtreecommitdiffstats
path: root/tests/test_parser.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-26 10:22:39 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-08-26 10:22:39 +0000
commit9e85cf35d5b159f75489bfdf9c7348e2466834a8 (patch)
tree9ef8d4b6db2d7764642051edfe98073c493c3d8a /tests/test_parser.py
parentAdding debian version 0.1.44. (diff)
downloaddebputy-9e85cf35d5b159f75489bfdf9c7348e2466834a8.tar.xz
debputy-9e85cf35d5b159f75489bfdf9c7348e2466834a8.zip
Merging upstream version 0.1.45.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/test_parser.py')
-rw-r--r--tests/test_parser.py83
1 files changed, 83 insertions, 0 deletions
diff --git a/tests/test_parser.py b/tests/test_parser.py
index 1c84445..0b1ed56 100644
--- a/tests/test_parser.py
+++ b/tests/test_parser.py
@@ -489,3 +489,86 @@ def test_yaml_clean_after_removal_unsafe_path(
else:
with pytest.raises(ManifestParseException) as e_info:
manifest_parser_pkg_foo.parse_manifest(fd=content)
+
+
+def test_yaml_build_environment_default(
+ manifest_parser_pkg_foo: YAMLManifestParser,
+) -> None:
+ content = textwrap.dedent(
+ (
+ """\
+
+ manifest-version: '0.1'
+ default-build-environment:
+ set:
+ FOO: "bar"
+ builds:
+ # FIXME: we should not require an empty dict here
+ - autoconf: {}
+ """
+ )
+ )
+ manifest = manifest_parser_pkg_foo.parse_manifest(fd=content)
+ envs = manifest.build_environments
+ assert not envs.environments
+ base_env = {}
+ envs.default_environment.update_env(base_env)
+ assert "FOO" in base_env
+ build_rule = manifest.build_rules[0]
+ assert build_rule.environment is envs.default_environment
+
+
+def test_yaml_build_environments_no_default(
+ manifest_parser_pkg_foo: YAMLManifestParser,
+) -> None:
+ content = textwrap.dedent(
+ (
+ f"""\
+
+ manifest-version: '0.1'
+ build-environments:
+ - name: custom-env
+ set:
+ FOO: "bar"
+ builds:
+ - autoconf:
+ environment: custom-env
+ """
+ )
+ )
+ manifest = manifest_parser_pkg_foo.parse_manifest(fd=content)
+ envs = manifest.build_environments
+ assert "custom-env" in envs.environments
+ custom_env = envs.environments["custom-env"]
+ assert envs.default_environment is None
+ base_env = {}
+ custom_env.update_env(base_env)
+ assert "FOO" in base_env
+ build_rule = manifest.build_rules[0]
+ assert build_rule.environment is custom_env
+
+
+def test_yaml_build_environments_no_default_error(
+ manifest_parser_pkg_foo: YAMLManifestParser,
+) -> None:
+ content = textwrap.dedent(
+ (
+ """\
+
+ manifest-version: '0.1'
+ build-environments:
+ - name: custom-env
+ set:
+ FOO: "bar"
+ builds:
+ # FIXME: we should not require an empty dict here
+ - autoconf: {}
+ """
+ )
+ )
+ with pytest.raises(ManifestParseException) as e_info:
+ manifest_parser_pkg_foo.parse_manifest(fd=content)
+
+ expected_msg = "The following named environments were never referenced: custom-env"
+ msg = e_info.value.args[0]
+ assert msg == expected_msg