Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@ jobs:
python3-yaml \
python3-requests \
python3-requests-toolbelt \
python3-rfl-build \
python3-rfl-log \
python3-venv

Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ and this project adheres to
`RACKSDB_EXTENSIONS`, and to set default schema, extensions, and database
paths when the matching `racksdb` / `racksdb-web` option is omitted (#149).
- web: Support the same environment variables as CLI.
- pkgs: Add tests dependency on `RFL.build` >= 1.8.0 for parameterized unit
tests.
- docs:
- Mention support of RHEL 10, Fedora 43, SLES and openSUSE 15 and 16, Ubuntu
26.04 LTS.
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ tests = [
"coverage",
"pytest",
"pytest-cov",
"RFL.build >= 1.8.0",
]

[project.scripts]
Expand Down
53 changes: 0 additions & 53 deletions racksdb/tests/lib/params.py

This file was deleted.

35 changes: 18 additions & 17 deletions racksdb/tests/web/test_blueprint.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,15 @@

from ..lib.web import RacksDBCustomTestResponse
from ..lib.common import schema_path, db_path, drawing_schema_path
from ..lib.params import expand_parameterized_tests, expand_params
from rfl.build.testing.params import expand
from ..lib.reference import (
TestRacksDBReferenceDB,
REFDB_DATACENTERS,
REFDB_INFRASTRUCTURES,
)

http_verbs = expand(["get", "post"])


class FakeRacksDBWebApp(flask.Flask):
def __init__(self, schema, db, drawing_schema, openapi):
Expand All @@ -37,7 +39,6 @@ def __init__(self, schema, db, drawing_schema, openapi):
self.register_blueprint(self.blueprint)


@expand_parameterized_tests
class TestRacksDBWebBlueprint(TestRacksDBReferenceDB):
def setUp(self):
try:
Expand Down Expand Up @@ -465,25 +466,25 @@ def test_racks_fold(self):
def client_method(self, verb):
return self.client.get if verb == "get" else self.client.post

@expand_params(["get", "post"])
@http_verbs
def test_draw_room_png(self, verb):
response = self.client_method(verb)(f"/v{get_version()}/draw/room/noisy.png")
self.assertEqual(response.status_code, 200)
self.assertEqual(response.mimetype, "image/png")

@expand_params(["get", "post"])
@http_verbs
def test_draw_room_svg(self, verb):
response = self.client_method(verb)(f"/v{get_version()}/draw/room/noisy.svg")
self.assertEqual(response.status_code, 200)
self.assertEqual(response.mimetype, "image/svg+xml")

@expand_params(["get", "post"])
@http_verbs
def test_draw_room_pdf(self, verb):
response = self.client_method(verb)(f"/v{get_version()}/draw/room/noisy.pdf")
self.assertEqual(response.status_code, 200)
self.assertEqual(response.mimetype, "application/pdf")

@expand_params(["get", "post"])
@http_verbs
def test_draw_room_invalid(self, verb):
response = self.client_method(verb)(f"/v{get_version()}/draw/room/fail.png")
self.assertEqual(response.status_code, 400) # FIXME: should be HTTP/404
Expand All @@ -497,7 +498,7 @@ def test_draw_room_invalid(self, verb):
},
)

@expand_params(["get", "post"])
@http_verbs
def test_draw_room_coordinates(self, verb):
response = self.client_method(verb)(
f"/v{get_version()}/draw/room/noisy.png?coordinates"
Expand All @@ -513,7 +514,7 @@ def test_draw_room_coordinates(self, verb):
coordinates = json.loads(coordinates_part.text)
self.assertEqual(coordinates, {}) # FIXME: room coordinates are empty

@expand_params(["get", "post"])
@http_verbs
def test_draw_room_coordinates_yaml(self, verb):
response = self.client_method(verb)(
f"/v{get_version()}/draw/room/noisy.png?coordinates&coordinates_format=yaml"
Expand Down Expand Up @@ -620,31 +621,31 @@ def test_draw_post_room_parameters_invalid_format(self):
},
)

@expand_params(["get", "post"])
@http_verbs
def test_draw_infrastructure_png(self, verb):
response = self.client_method(verb)(
f"/v{get_version()}/draw/infrastructure/mercury.png"
)
self.assertEqual(response.status_code, 200)
self.assertEqual(response.mimetype, "image/png")

@expand_params(["get", "post"])
@http_verbs
def test_draw_infrastructure_svg(self, verb):
response = self.client_method(verb)(
f"/v{get_version()}/draw/infrastructure/mercury.svg"
)
self.assertEqual(response.status_code, 200)
self.assertEqual(response.mimetype, "image/svg+xml")

@expand_params(["get", "post"])
@http_verbs
def test_draw_infrastructure_pdf(self, verb):
response = self.client_method(verb)(
f"/v{get_version()}/draw/infrastructure/mercury.pdf"
)
self.assertEqual(response.status_code, 200)
self.assertEqual(response.mimetype, "application/pdf")

@expand_params(["get", "post"])
@http_verbs
def test_draw_infrastructure_invalid(self, verb):
response = self.client_method(verb)(
f"/v{get_version()}/draw/infrastructure/fail.png"
Expand All @@ -660,7 +661,7 @@ def test_draw_infrastructure_invalid(self, verb):
},
)

@expand_params(["get", "post"])
@http_verbs
def test_draw_infrastructure_coordinates(self, verb):
response = self.client_method(verb)(
f"/v{get_version()}/draw/infrastructure/mercury.png?coordinates"
Expand All @@ -676,7 +677,7 @@ def test_draw_infrastructure_coordinates(self, verb):
coordinates = json.loads(coordinates_part.text)
self.assertIn("mecn0001", coordinates)

@expand_params(["get", "post"])
@http_verbs
def test_draw_infrastructure_coordinates_yaml(self, verb):
response = self.client_method(verb)(
f"/v{get_version()}/draw/infrastructure/mercury.png?coordinates&"
Expand Down Expand Up @@ -794,7 +795,7 @@ def test_draw_post_infrastructure_ignored_query_parameters(self):
self.assertEqual(response.status_code, 200)
self.assertEqual(response.mimetype, "image/png")

@expand_params(["get", "post"])
@http_verbs
def test_draw_invalid_entity(self, verb):
response = self.client_method(verb)(f"/v{get_version()}/draw/fail/noisy.png")
self.assertEqual(response.status_code, 400)
Expand All @@ -808,7 +809,7 @@ def test_draw_invalid_entity(self, verb):
},
)

@expand_params(["get", "post"])
@http_verbs
def test_draw_invalid_format(self, verb):
response = self.client_method(verb)(f"/v{get_version()}/draw/room/noisy.fail")
self.assertEqual(response.status_code, 400)
Expand All @@ -822,7 +823,7 @@ def test_draw_invalid_format(self, verb):
},
)

@expand_params(["get", "post"])
@http_verbs
def test_draw_coordinates_invalid_format(self, verb):
response = self.client_method(verb)(
f"/v{get_version()}/draw/room/noisy.png?coordinates&coordinates_format=fail"
Expand Down
Loading