little update
This commit is contained in:
46
tests/test_kernel_consumer.py
Normal file
46
tests/test_kernel_consumer.py
Normal file
@@ -0,0 +1,46 @@
|
||||
from uuid import uuid4
|
||||
|
||||
from kernel_consumer.main import Settings, _image_metadata, create_game_vms
|
||||
|
||||
|
||||
class Cloud:
|
||||
def __init__(self) -> None:
|
||||
self.requests = []
|
||||
|
||||
def create_vms(self, requests):
|
||||
self.requests.extend(requests)
|
||||
return []
|
||||
|
||||
def wait_for_vms_ready(self, vms):
|
||||
return vms
|
||||
|
||||
|
||||
def test_creates_one_vm_per_team_plus_public_extra() -> None:
|
||||
cloud = Cloud()
|
||||
settings = Settings(
|
||||
cloud_project_id="project-id",
|
||||
cloud_availability_zone_id="zone-id",
|
||||
cloud_availability_zone_name=None,
|
||||
cloud_vm_password="Password123",
|
||||
)
|
||||
network = type("Network", (), {"cloud_subnet_id": "subnet-id"})()
|
||||
request = {"team_count": 2}
|
||||
|
||||
create_game_vms(request, uuid4(), network, cloud, settings)
|
||||
|
||||
assert len(cloud.requests) == 3
|
||||
assert [item.subnets[0]["new_floating_ip"] for item in cloud.requests] == [False, False, True]
|
||||
assert all(item.subnets[0]["subnet_id"] == "subnet-id" for item in cloud.requests)
|
||||
assert all(item.availability_zone_id == "zone-id" for item in cloud.requests)
|
||||
assert all(item.availability_zone_name is None for item in cloud.requests)
|
||||
|
||||
|
||||
def test_rejects_password_without_uppercase_latin_letter() -> None:
|
||||
settings = Settings(cloud_vm_password="lowercase123")
|
||||
|
||||
try:
|
||||
_image_metadata(settings, "game-host")
|
||||
except ValueError as error:
|
||||
assert str(error) == "CLOUD_VM_PASSWORD must contain at least one uppercase Latin letter"
|
||||
else:
|
||||
raise AssertionError("expected invalid password to be rejected")
|
||||
Reference in New Issue
Block a user