mirror of
https://github.com/ae-utbm/sith.git
synced 2025-07-10 20:09:25 +00:00
test: ReservationForm
This commit is contained in:
@ -1,28 +1,42 @@
|
||||
import pytest
|
||||
from django.contrib.auth.models import Permission
|
||||
from django.test import Client
|
||||
from django.urls import reverse
|
||||
from model_bakery import baker
|
||||
from ninja_extra.testing import TestClient
|
||||
from pytest_django.asserts import assertNumQueries
|
||||
|
||||
from reservation.api import ReservableRoomController
|
||||
from core.models import User
|
||||
from reservation.models import Room
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
class TestFetchRoom:
|
||||
def test_fetch_simple(self):
|
||||
@pytest.fixture
|
||||
def user(self):
|
||||
return baker.make(
|
||||
User,
|
||||
user_permissions=[Permission.objects.get(codename="view_room")],
|
||||
)
|
||||
|
||||
def test_fetch_simple(self, client: Client, user: User):
|
||||
rooms = baker.make(Room, _quantity=3, _bulk_create=True)
|
||||
response = TestClient(ReservableRoomController).get("")
|
||||
client.force_login(user)
|
||||
response = client.get(reverse("api:fetch_reservable_rooms"))
|
||||
assert response.status_code == 200
|
||||
assert response.json() == [
|
||||
{
|
||||
"id": room.id,
|
||||
"name": room.name,
|
||||
"description": room.description,
|
||||
"address": room.address,
|
||||
"location": room.location,
|
||||
"club": {"id": room.club.id, "name": room.club.name},
|
||||
}
|
||||
for room in rooms
|
||||
]
|
||||
|
||||
def test_nb_queries(self):
|
||||
with assertNumQueries(1):
|
||||
TestClient(ReservableRoomController).get("")
|
||||
def test_nb_queries(self, client: Client, user: User):
|
||||
client.force_login(user)
|
||||
with assertNumQueries(5):
|
||||
# 4 for authentication
|
||||
# 1 to fetch the actual data
|
||||
client.get(reverse("api:fetch_reservable_rooms"))
|
||||
|
Reference in New Issue
Block a user