summaryrefslogtreecommitdiff
path: root/tests/format/optionexports.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/format/optionexports.py')
-rw-r--r--tests/format/optionexports.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/format/optionexports.py b/tests/format/optionexports.py
new file mode 100644
index 000000000..849c9148e
--- /dev/null
+++ b/tests/format/optionexports.py
@@ -0,0 +1,37 @@
+import os
+import pytest
+from buildstream import _yaml
+from buildstream import LoadError, LoadErrorReason
+from tests.testutils.runcli import cli
+
+# Project directory
+DATA_DIR = os.path.dirname(os.path.realpath(__file__))
+
+
+@pytest.mark.datafiles(DATA_DIR)
+@pytest.mark.parametrize("option_name,option_value,var_name,var_value", [
+
+ # Test boolean
+ ('bool_export', 'False', 'exported-bool', '0'),
+ ('bool_export', 'True', 'exported-bool', '1'),
+
+ # Enum
+ ('enum_export', 'pony', 'exported-enum', 'pony'),
+ ('enum_export', 'horsy', 'exported-enum', 'horsy'),
+
+ # Flags
+ ('flags_export', 'pony', 'exported-flags', 'pony'),
+ ('flags_export', 'pony, horsy', 'exported-flags', 'horsy,pony'),
+])
+def test_export(cli, datafiles, option_name, option_value, var_name, var_value):
+ project = os.path.join(datafiles.dirname, datafiles.basename, 'option-exports')
+ result = cli.run(project=project, silent=True, args=[
+ '--option', option_name, option_value,
+ 'show',
+ '--deps', 'none',
+ '--format', '%{vars}',
+ 'element.bst'])
+
+ assert result.exit_code == 0
+ loaded = _yaml.load_data(result.output)
+ assert loaded[var_name] == var_value