95 lines
3.1 KiB
Python
95 lines
3.1 KiB
Python
import pytest
|
|
from app.model.models import (
|
|
UserBase, UserResponse, UserCreate, UserDB, UserUpdate,
|
|
GroupBase, GroupCreate, GroupDB, GroupResponse,
|
|
AccessAuthorizationBase, AccessAuthorizationCreate,
|
|
AccessAuthorizationDB, AccessAuthorizationResponse, AccessAuthorizationUpdate,
|
|
Card, Timetable, TimetableCreate, Token, TokenData, AaGroupLink
|
|
)
|
|
|
|
|
|
def test_user_models():
|
|
"""Test user model creation and validation."""
|
|
# Test UserBase
|
|
user_base = UserBase(name="Test User", email="test@example.com", is_admin=False)
|
|
assert user_base.name == "Test User"
|
|
assert user_base.email == "test@example.com"
|
|
assert user_base.is_admin is False
|
|
|
|
# Test UserCreate
|
|
user_create = UserCreate(name="New User", email="new@example.com", password="secret123")
|
|
assert user_create.password == "secret123"
|
|
|
|
# Test UserUpdate
|
|
user_update = UserUpdate(name="Updated Name")
|
|
assert user_update.name == "Updated Name"
|
|
assert user_update.email is None
|
|
|
|
|
|
def test_group_models():
|
|
"""Test group model creation and validation."""
|
|
# Test GroupBase
|
|
group_base = GroupBase(name="Test Group")
|
|
assert group_base.name == "Test Group"
|
|
|
|
# Test GroupCreate
|
|
group_create = GroupCreate(name="New Group")
|
|
assert group_create.name == "New Group"
|
|
|
|
|
|
def test_access_authorization_models():
|
|
"""Test access authorization model creation and validation."""
|
|
# Test AccessAuthorizationBase
|
|
aa_base = AccessAuthorizationBase(name="Test AA", is_active=True)
|
|
assert aa_base.name == "Test AA"
|
|
assert aa_base.is_active is True
|
|
|
|
# Test AccessAuthorizationCreate with timetables
|
|
timetable_create = TimetableCreate(weekday=1, starttime="08:00", duration=60)
|
|
aa_create = AccessAuthorizationCreate(
|
|
name="New AA",
|
|
is_active=False,
|
|
timetables=[timetable_create]
|
|
)
|
|
assert aa_create.name == "New AA"
|
|
assert aa_create.is_active is False
|
|
assert len(aa_create.timetables) == 1
|
|
|
|
|
|
def test_card_model():
|
|
"""Test card model creation and validation."""
|
|
card = Card(uuid="test-uuid", group_id=1)
|
|
assert card.uuid == "test-uuid"
|
|
assert card.group_id == 1
|
|
|
|
|
|
def test_timetable_models():
|
|
"""Test timetable model creation and validation."""
|
|
# Test TimetableBase with valid values
|
|
timetable = TimetableCreate(weekday=1, starttime="09:00", duration=120)
|
|
assert timetable.weekday == 1
|
|
assert timetable.starttime == "09:00"
|
|
assert timetable.duration == 120
|
|
|
|
# Test boundary values
|
|
max_duration = TimetableCreate(weekday=7, starttime="23:59", duration=1439)
|
|
assert max_duration.duration == 1439
|
|
assert max_duration.weekday == 7
|
|
|
|
|
|
def test_token_models():
|
|
"""Test token model creation and validation."""
|
|
token = Token(access_token="test-token", token_type="bearer")
|
|
assert token.access_token == "test-token"
|
|
assert token.token_type == "bearer"
|
|
|
|
token_data = TokenData(username="testuser")
|
|
assert token_data.username == "testuser"
|
|
|
|
|
|
def test_aa_group_link_model():
|
|
"""Test many-to-many relationship link model."""
|
|
link = AaGroupLink(group_id=1, accessauth_id=2)
|
|
assert link.group_id == 1
|
|
assert link.accessauth_id == 2
|