summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/format/project.py44
-rw-r--r--tests/format/project/element-path/project.conf2
-rw-r--r--tests/format/project/local-plugin/project.conf6
3 files changed, 51 insertions, 1 deletions
diff --git a/tests/format/project.py b/tests/format/project.py
index 9d595981b..df1a2364b 100644
--- a/tests/format/project.py
+++ b/tests/format/project.py
@@ -2,7 +2,7 @@ import os
import pytest
from buildstream import _yaml
from buildstream._exceptions import ErrorDomain, LoadErrorReason
-from tests.testutils.runcli import cli
+from tests.testutils import cli, filetypegenerator
# Project directory
@@ -90,6 +90,48 @@ def test_project_unsupported(cli, datafiles):
result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.UNSUPPORTED_PROJECT)
+@pytest.mark.datafiles(os.path.join(DATA_DIR, 'element-path'))
+def test_missing_element_path_directory(cli, datafiles):
+ project = os.path.join(datafiles.dirname, datafiles.basename)
+ result = cli.run(project=project, args=['workspace', 'list'])
+ result.assert_main_error(ErrorDomain.LOAD,
+ LoadErrorReason.MISSING_FILE)
+
+
+@pytest.mark.datafiles(os.path.join(DATA_DIR, 'element-path'))
+def test_element_path_not_a_directory(cli, datafiles):
+ project = os.path.join(datafiles.dirname, datafiles.basename)
+ path = os.path.join(project, 'elements')
+ for file_type in filetypegenerator.generate_file_types(path):
+ result = cli.run(project=project, args=['workspace', 'list'])
+ if not os.path.isdir(path):
+ result.assert_main_error(ErrorDomain.LOAD,
+ LoadErrorReason.PROJ_PATH_INVALID_KIND)
+ else:
+ result.assert_success()
+
+
+@pytest.mark.datafiles(os.path.join(DATA_DIR, 'local-plugin'))
+def test_missing_local_plugin_directory(cli, datafiles):
+ project = os.path.join(datafiles.dirname, datafiles.basename)
+ result = cli.run(project=project, args=['workspace', 'list'])
+ result.assert_main_error(ErrorDomain.LOAD,
+ LoadErrorReason.MISSING_FILE)
+
+
+@pytest.mark.datafiles(os.path.join(DATA_DIR, 'local-plugin'))
+def test_local_plugin_not_directory(cli, datafiles):
+ project = os.path.join(datafiles.dirname, datafiles.basename)
+ path = os.path.join(project, 'plugins')
+ for file_type in filetypegenerator.generate_file_types(path):
+ result = cli.run(project=project, args=['workspace', 'list'])
+ if not os.path.isdir(path):
+ result.assert_main_error(ErrorDomain.LOAD,
+ LoadErrorReason.PROJ_PATH_INVALID_KIND)
+ else:
+ result.assert_success()
+
+
@pytest.mark.datafiles(DATA_DIR)
def test_project_plugin_load_allowed(cli, datafiles):
project = os.path.join(datafiles.dirname, datafiles.basename, 'plugin-allowed')
diff --git a/tests/format/project/element-path/project.conf b/tests/format/project/element-path/project.conf
new file mode 100644
index 000000000..57e87de4f
--- /dev/null
+++ b/tests/format/project/element-path/project.conf
@@ -0,0 +1,2 @@
+name: foo
+element-path: elements
diff --git a/tests/format/project/local-plugin/project.conf b/tests/format/project/local-plugin/project.conf
new file mode 100644
index 000000000..97166e350
--- /dev/null
+++ b/tests/format/project/local-plugin/project.conf
@@ -0,0 +1,6 @@
+name: foo
+plugins:
+- origin: local
+ path: plugins
+ sources:
+ mysource: 0