diff options
author | Tristan Van Berkom <tristan.vanberkom@codethink.co.uk> | 2018-04-06 15:33:00 +0900 |
---|---|---|
committer | Tristan Van Berkom <tristan.vanberkom@codethink.co.uk> | 2018-04-06 17:36:42 +0900 |
commit | 420114a02e31f5c0c437291af06209b8db1f7002 (patch) | |
tree | e97a22b7251e2f7a88d2d90cb2f904659a44d22b | |
parent | 550cb369e04a16c38e3b4f0656c3d25f952ceee1 (diff) | |
download | buildstream-420114a02e31f5c0c437291af06209b8db1f7002.tar.gz |
tests/format/project.py: Converted to use CLI test harness
Moved the old style project format tests into the new CLI based
directory in tests/format/ and converted to use the CLI fixture
for these tests.
-rw-r--r-- | tests/format/project.py | 49 | ||||
-rw-r--r-- | tests/format/project/default/manual.bst | 1 | ||||
-rw-r--r-- | tests/format/project/default/project.conf (renamed from tests/project/data/basic/project.conf) | 0 | ||||
-rw-r--r-- | tests/format/project/missingname/project.conf | 0 | ||||
-rw-r--r-- | tests/format/project/overridepath/manual.bst | 1 | ||||
-rw-r--r-- | tests/format/project/overridepath/project.conf (renamed from tests/project/data/overridepath/project.conf) | 0 | ||||
-rw-r--r-- | tests/format/project/unsupported/project.conf (renamed from tests/project/data/unsupported/project.conf) | 0 | ||||
-rw-r--r-- | tests/project/data/alias/project.conf | 7 | ||||
-rw-r--r-- | tests/project/data/missingname/project.conf | 5 | ||||
-rw-r--r-- | tests/project/project.py | 77 |
10 files changed, 51 insertions, 89 deletions
diff --git a/tests/format/project.py b/tests/format/project.py index 75b33f40d..9e6fa9084 100644 --- a/tests/format/project.py +++ b/tests/format/project.py @@ -12,6 +12,55 @@ DATA_DIR = os.path.join( ) +@pytest.mark.datafiles(os.path.join(DATA_DIR)) +def test_missing_project_conf(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)) +def test_missing_project_name(cli, datafiles): + project = os.path.join(datafiles.dirname, datafiles.basename, "missingname") + result = cli.run(project=project, args=['workspace', 'list']) + result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.INVALID_DATA) + + +@pytest.mark.datafiles(os.path.join(DATA_DIR)) +def test_load_default_project(cli, datafiles): + project = os.path.join(datafiles.dirname, datafiles.basename, "default") + result = cli.run(project=project, args=[ + 'show', '--format', '%{env}', 'manual.bst' + ]) + result.assert_success() + + # Read back some of our project defaults from the env + env = _yaml.load_data(result.output) + assert (env['USER'] == "tomjon") + assert (env['TERM'] == "dumb") + + +@pytest.mark.datafiles(os.path.join(DATA_DIR)) +def test_override_project_path(cli, datafiles): + project = os.path.join(datafiles.dirname, datafiles.basename, "overridepath") + result = cli.run(project=project, args=[ + 'show', '--format', '%{env}', 'manual.bst' + ]) + result.assert_success() + + # Read back the overridden path + env = _yaml.load_data(result.output) + assert (env['PATH'] == "/bin:/sbin") + + +@pytest.mark.datafiles(os.path.join(DATA_DIR)) +def test_project_unsupported(cli, datafiles): + project = os.path.join(datafiles.dirname, datafiles.basename, "unsupported") + + result = cli.run(project=project, args=['workspace', 'list']) + result.assert_main_error(ErrorDomain.LOAD, LoadErrorReason.UNSUPPORTED_PROJECT) + + @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/default/manual.bst b/tests/format/project/default/manual.bst new file mode 100644 index 000000000..4d7f70266 --- /dev/null +++ b/tests/format/project/default/manual.bst @@ -0,0 +1 @@ +kind: manual diff --git a/tests/project/data/basic/project.conf b/tests/format/project/default/project.conf index fd3134c58..fd3134c58 100644 --- a/tests/project/data/basic/project.conf +++ b/tests/format/project/default/project.conf diff --git a/tests/format/project/missingname/project.conf b/tests/format/project/missingname/project.conf new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/format/project/missingname/project.conf diff --git a/tests/format/project/overridepath/manual.bst b/tests/format/project/overridepath/manual.bst new file mode 100644 index 000000000..4d7f70266 --- /dev/null +++ b/tests/format/project/overridepath/manual.bst @@ -0,0 +1 @@ +kind: manual diff --git a/tests/project/data/overridepath/project.conf b/tests/format/project/overridepath/project.conf index ef1d01c59..ef1d01c59 100644 --- a/tests/project/data/overridepath/project.conf +++ b/tests/format/project/overridepath/project.conf diff --git a/tests/project/data/unsupported/project.conf b/tests/format/project/unsupported/project.conf index ecd8e06cc..ecd8e06cc 100644 --- a/tests/project/data/unsupported/project.conf +++ b/tests/format/project/unsupported/project.conf diff --git a/tests/project/data/alias/project.conf b/tests/project/data/alias/project.conf deleted file mode 100644 index 1ef4bba09..000000000 --- a/tests/project/data/alias/project.conf +++ /dev/null @@ -1,7 +0,0 @@ -# A project which defines aliases - -name: foo - -aliases: - baserock: git://git.baserock.org/baserock/ - gnome: git://git.gnome.org/ diff --git a/tests/project/data/missingname/project.conf b/tests/project/data/missingname/project.conf deleted file mode 100644 index 07d0cf26e..000000000 --- a/tests/project/data/missingname/project.conf +++ /dev/null @@ -1,5 +0,0 @@ -# A project configuration that has no name -# - -# It must be a dict anyway, otherwise it's another error -foo: bar diff --git a/tests/project/project.py b/tests/project/project.py deleted file mode 100644 index 58e5b1ef2..000000000 --- a/tests/project/project.py +++ /dev/null @@ -1,77 +0,0 @@ -import os -import pytest - -from buildstream._context import Context -from buildstream._project import Project -from buildstream._exceptions import LoadError, LoadErrorReason - -DATA_DIR = os.path.join( - os.path.dirname(os.path.realpath(__file__)), - 'data', -) - - -@pytest.mark.datafiles(os.path.join(DATA_DIR)) -def test_missing_project_conf(datafiles): - directory = os.path.join(datafiles.dirname, datafiles.basename) - - with pytest.raises(LoadError) as exc: - project = Project(directory, Context()) - - assert (exc.value.reason == LoadErrorReason.MISSING_FILE) - - -@pytest.mark.datafiles(os.path.join(DATA_DIR)) -def test_missing_project_name(datafiles): - directory = os.path.join(datafiles.dirname, datafiles.basename, "missingname") - - with pytest.raises(LoadError) as exc: - project = Project(directory, Context()) - - assert (exc.value.reason == LoadErrorReason.INVALID_DATA) - - -@pytest.mark.datafiles(os.path.join(DATA_DIR)) -def test_load_basic_project(datafiles): - directory = os.path.join(datafiles.dirname, datafiles.basename, "basic") - - project = Project(directory, Context()) - - # User provided - assert (project.name == "pony") - - # Some of the defaults - assert (project.base_environment['USER'] == "tomjon") - assert (project.base_environment['TERM'] == "dumb") - assert (project.base_environment['PATH'] == "/usr/bin:/bin:/usr/sbin:/sbin") - - -@pytest.mark.datafiles(os.path.join(DATA_DIR)) -def test_override_project_path(datafiles): - directory = os.path.join(datafiles.dirname, datafiles.basename, "overridepath") - - project = Project(directory, Context()) - - # Test the override - assert (project.base_environment['PATH'] == "/bin:/sbin") - - -@pytest.mark.datafiles(os.path.join(DATA_DIR)) -def test_project_alias(datafiles): - directory = os.path.join(datafiles.dirname, datafiles.basename, "alias") - - project = Project(directory, Context()) - - # Test the override - assert (project.translate_url('baserock:foo') == 'git://git.baserock.org/baserock/foo') - assert (project.translate_url('gnome:bar') == 'git://git.gnome.org/bar') - - -@pytest.mark.datafiles(os.path.join(DATA_DIR)) -def test_project_unsupported(datafiles): - directory = os.path.join(datafiles.dirname, datafiles.basename, "unsupported") - - with pytest.raises(LoadError) as exc: - project = Project(directory, Context()) - - assert (exc.value.reason == LoadErrorReason.UNSUPPORTED_PROJECT) |