diff --git a/tests/test_versions/test_versions.py b/tests/test_versions/test_versions.py
index e7de0b1424ed6d84f9afb8da50b039cff1dea565..2b1f8f7b35e6ad16935151586433f759eb2c22e6 100644
--- a/tests/test_versions/test_versions.py
+++ b/tests/test_versions/test_versions.py
@@ -84,6 +84,8 @@ def wrapper(tmpdir):
 @pytest.mark.parametrize(
     "requested, expected, installed",
     [
+        # If nothing is installed, nothing should be loaded
+        ("test", "", []),
         # Test versions can be loaded
         ("test", "test", ["test", "0.0.1"]),
         # Numeric versions should be prioritized over test versions
@@ -95,6 +97,14 @@ def wrapper(tmpdir):
         ("0.0.1+0", "", ["0.0.1+1"]),
         # If no build number is specified, load the highest build number
         ("0.0.1", "0.0.1+4", ["0.1.0", "0.0.1+4", "0.0.1"]),
+        # Build number 0 means load that version exactly
+        ("0.0.1+0", "0.0.1+0", ["0.0.1+0"]),
+        ("0.0.1+0", "0.0.1+0", ["0.0.1", "0.0.1+1", "1.0.0"]),
+        # 1-test counts as a test version, as does 1.0
+        ("", "0.0.1+0", ["0.0.1", "1-test"]),
+        ("", "0.0.1+0", ["0.0.1", "1.0"]),
+        # Numeric version should be prioritised over "higher" test version
+        ("", "0.1.0+0", ["0.1.0", "1.0.0-rc1"]),
     ],
 )
 def test_version(wrapper, requested, expected, installed):
@@ -113,6 +123,7 @@ def test_version(wrapper, requested, expected, installed):
 
     if expected:
         match = re.search(RE_MODULE_LOADED.format(version=re.escape(expected)), o)
+        assert rc == 0
         assert match
     else:
         match = re.search(RE_MODULE_NOT_LOADED.format(required=re.escape(requested)), o)