diff options
author | Tiago Gomes <tiago.gomes@codethink.co.uk> | 2018-07-31 18:21:10 +0100 |
---|---|---|
committer | Tiago Gomes <tiago.avv@gmail.com> | 2018-08-02 11:24:43 +0000 |
commit | 9f0c8fcfe348533987ec128b85356655edae77f4 (patch) | |
tree | a54839da778fc48c22fac07c4d64fa8dc7e3ed93 /tests/format/project.py | |
parent | 7e3944dc7a73d068f6345ea7d31856b1c386c0a9 (diff) | |
download | buildstream-9f0c8fcfe348533987ec128b85356655edae77f4.tar.gz |
tests: test local plugins and element-path pathstiagogomes/issue-195
Diffstat (limited to 'tests/format/project.py')
-rw-r--r-- | tests/format/project.py | 44 |
1 files changed, 43 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') |