nixos/tests/netbox*: use unittest asserts

These provide much richer detail, when assertions fail.
This commit is contained in:
Martin Weinelt
2026-07-07 17:43:37 +02:00
parent c36fc51c38
commit 43bccced47
2 changed files with 19 additions and 19 deletions
+1 -1
View File
@@ -75,7 +75,7 @@ in
headers = machine.succeed(
"curl -sSL http://localhost/api/ --head -H 'Content-Type: application/json'"
)
assert api_version(headers) == version
t.assertEqual(api_version(headers), version)
with subtest("NetBox version is the old one"):
check_api_version("${oldApiVersion}")
+18 -18
View File
@@ -155,7 +155,7 @@ def patch(uri: str, data: Dict[str, Any]):
return data_request(uri, "PATCH", data)
with subtest("Can retrieve netbox version"):
assert netbox_version == get("/status/")["netbox-version"]
t.assertEqual(netbox_version, get("/status/")["netbox-version"])
with subtest("Can create objects"):
result = post("/dcim/sites/", {"name": "Test site", "slug": "test-site"})
@@ -196,28 +196,28 @@ with subtest("Can create objects"):
with subtest("Can list objects"):
result = get("/dcim/sites/")
assert result["count"] == 1
assert result["results"][0]["id"] == site_id
assert result["results"][0]["name"] == "Test site"
assert result["results"][0]["description"] == ""
t.assertEqual(result["count"], 1)
t.assertEqual(result["results"][0]["id"], site_id)
t.assertEqual(result["results"][0]["name"], "Test site")
t.assertEqual(result["results"][0]["description"], "")
result = get("/dcim/device-types/")
assert result["count"] == 1
assert result["results"][0]["id"] == device_type_id
assert result["results"][0]["model"] == "Test device type"
t.assertEqual(result["count"], 1)
t.assertEqual(result["results"][0]["id"], device_type_id)
t.assertEqual(result["results"][0]["model"], "Test device type")
with subtest("Can update objects"):
new_description = "Test site description"
patch(f"/dcim/sites/{site_id}/", {"description": new_description})
result = get(f"/dcim/sites/{site_id}/")
assert result["description"] == new_description
t.assertEqual(result["description"], new_description)
with subtest("Can delete objects"):
# Delete a device-type since no object depends on it
delete(f"/dcim/device-types/{device_type_id}/")
result = get("/dcim/device-types/")
assert result["count"] == 0
t.assertEqual(result["count"], 0)
def request_graphql(query: str):
return machine.succeed(
@@ -252,10 +252,10 @@ if compare(netbox_version, '4.2.0') >= 0:
answer = request_graphql(graphql_query)
result = json.loads(answer)
assert len(result["data"]["prefix_list"]) == 3
assert test_objects["prefixes"]["v4-with-updated-desc"] in result["data"]["prefix_list"]
assert test_objects["prefixes"]["v6-cidr-32"] in result["data"]["prefix_list"]
assert test_objects["prefixes"]["v6-cidr-48"] in result["data"]["prefix_list"]
t.assertEqual(len(result["data"]["prefix_list"]), 3)
t.assertIn(test_objects["prefixes"]["v4-with-updated-desc"], result["data"]["prefix_list"])
t.assertIn(test_objects["prefixes"]["v6-cidr-32"], result["data"]["prefix_list"])
t.assertIn(test_objects["prefixes"]["v6-cidr-48"], result["data"]["prefix_list"])
if compare(netbox_version, '4.2.0') < 0:
with subtest("Can use the GraphQL API (Netbox <= 4.2.0)"):
@@ -270,8 +270,8 @@ if compare(netbox_version, '4.2.0') < 0:
''')
result = json.loads(answer)
print(result["data"]["prefix_list"][0])
assert result["data"]["prefix_list"][0]["prefix"] == test_objects["prefixes"]["v4-with-updated-desc"]["prefix"]
assert int(result["data"]["prefix_list"][0]["site"]["id"]) == int(test_objects["prefixes"]["v4-with-updated-desc"]["scope"]["id"])
t.assertEqual(result["data"]["prefix_list"][0]["prefix"], test_objects["prefixes"]["v4-with-updated-desc"]["prefix"])
t.assertEqual(int(result["data"]["prefix_list"][0]["site"]["id"]), int(test_objects["prefixes"]["v4-with-updated-desc"]["scope"]["id"]))
# With 4.5.2 and higher, obtaining a session cookie or token without supplying
# proper CSRF tokens on the frontend /login/ endpoint is no longer possible
@@ -283,5 +283,5 @@ if compare(netbox_version, '4.5.2') < 0:
with subtest("Can associate LDAP groups"):
result = get("/users/users/?username=${testUser}")
assert result["count"] == 1
assert any(group["name"] == "${testGroup}" for group in result["results"][0]["groups"])
t.assertEqual(result["count"], 1)
t.assertTrue(any(group["name"] == "${testGroup}" for group in result["results"][0]["groups"]))