summaryrefslogtreecommitdiff
path: root/tests/plugins/loading.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/plugins/loading.py')
-rw-r--r--tests/plugins/loading.py92
1 files changed, 92 insertions, 0 deletions
diff --git a/tests/plugins/loading.py b/tests/plugins/loading.py
index 1c8a321d5..a368e9952 100644
--- a/tests/plugins/loading.py
+++ b/tests/plugins/loading.py
@@ -108,3 +108,95 @@ def test_setup_returns_bad_type(cli, datafiles, plugin_type):
result = cli.run(project=project, args=["show", "element.bst"])
result.assert_main_error(ErrorDomain.PLUGIN, "setup-returns-bad-type")
+
+
+@pytest.mark.datafiles(DATA_DIR)
+@pytest.mark.parametrize("plugin_type", [("elements"), ("sources")])
+def test_missing_min_version(cli, datafiles, plugin_type):
+ project = str(datafiles)
+
+ update_project(
+ project,
+ {
+ "plugins": [
+ {
+ "origin": "local",
+ "path": os.path.join("plugins", plugin_type, "nominversion"),
+ plugin_type: ["nominversion"],
+ }
+ ]
+ },
+ )
+ setup_element(project, plugin_type, "nominversion")
+
+ result = cli.run(project=project, args=["show", "element.bst"])
+ result.assert_main_error(ErrorDomain.PLUGIN, "missing-min-version")
+
+
+@pytest.mark.datafiles(DATA_DIR)
+@pytest.mark.parametrize("plugin_type", [("elements"), ("sources")])
+def test_malformed_min_version(cli, datafiles, plugin_type):
+ project = str(datafiles)
+
+ update_project(
+ project,
+ {
+ "plugins": [
+ {
+ "origin": "local",
+ "path": os.path.join("plugins", plugin_type, "malformedminversion"),
+ plugin_type: ["malformedminversion"],
+ }
+ ]
+ },
+ )
+ setup_element(project, plugin_type, "malformedminversion")
+
+ result = cli.run(project=project, args=["show", "element.bst"])
+ result.assert_main_error(ErrorDomain.PLUGIN, "malformed-min-version")
+
+
+@pytest.mark.datafiles(DATA_DIR)
+@pytest.mark.parametrize("plugin_type", [("elements"), ("sources")])
+def test_incompatible_major_version(cli, datafiles, plugin_type):
+ project = str(datafiles)
+
+ update_project(
+ project,
+ {
+ "plugins": [
+ {
+ "origin": "local",
+ "path": os.path.join("plugins", plugin_type, "incompatiblemajor"),
+ plugin_type: ["incompatiblemajor"],
+ }
+ ]
+ },
+ )
+ setup_element(project, plugin_type, "incompatiblemajor")
+
+ result = cli.run(project=project, args=["show", "element.bst"])
+ result.assert_main_error(ErrorDomain.PLUGIN, "incompatible-major-version")
+
+
+@pytest.mark.datafiles(DATA_DIR)
+@pytest.mark.parametrize("plugin_type", [("elements"), ("sources")])
+def test_incompatible_minor_version(cli, datafiles, plugin_type):
+ project = str(datafiles)
+
+ update_project(
+ project,
+ {
+ "plugins": [
+ {
+ "origin": "local",
+ "path": os.path.join("plugins", plugin_type, "incompatibleminor"),
+ plugin_type: ["incompatibleminor"],
+ }
+ ]
+ },
+ )
+ setup_element(project, plugin_type, "incompatibleminor")
+
+ result = cli.run(project=project, args=["show", "element.bst"])
+ result.assert_main_error(ErrorDomain.PLUGIN, "incompatible-minor-version")