test: add test for duplicate port constraint

This commit is contained in:
mwiegand 2026-05-06 20:53:04 +02:00
parent fa002ce0f2
commit 114b141e2a
No known key found for this signature in database

View file

@ -83,6 +83,37 @@ def test_reassign_blueprint_anytime(user_client_with_blueprints) -> None:
assert response.status_code == 200
def test_create_server_duplicate_port(user_client_with_blueprints) -> None:
client, data = user_client_with_blueprints
# Create the first server
response = client.post(
"/servers",
data={"name": "server-1", "port": "27015", "blueprint_id": str(data["blueprint_id"])},
headers={"X-CSRF-Token": "test-token"},
)
assert response.status_code == 302
# Try to create a second server with the same port
response = client.post(
"/servers",
data={"name": "server-2", "port": "27015", "blueprint_id": str(data["blueprint_id"])},
headers={"X-CSRF-Token": "test-token"},
)
assert response.status_code == 409
assert b"port already in use" in response.data
# Verify the second server was not created by checking how many servers exist
from sqlalchemy import select
from l4d2web.db import session_scope
from l4d2web.models import Server
with session_scope() as session:
servers = session.scalars(select(Server)).all()
assert len(servers) == 1
assert servers[0].name == "server-1"
def test_lifecycle_form_creates_queued_job(user_client_with_blueprints) -> None:
client, data = user_client_with_blueprints
create_response = client.post(