summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2018-04-06 15:33:00 +0900
committerTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2018-04-06 17:36:42 +0900
commit420114a02e31f5c0c437291af06209b8db1f7002 (patch)
treee97a22b7251e2f7a88d2d90cb2f904659a44d22b
parent550cb369e04a16c38e3b4f0656c3d25f952ceee1 (diff)
downloadbuildstream-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.py49
-rw-r--r--tests/format/project/default/manual.bst1
-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.conf0
-rw-r--r--tests/format/project/overridepath/manual.bst1
-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.conf7
-rw-r--r--tests/project/data/missingname/project.conf5
-rw-r--r--tests/project/project.py77
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)