WIP: initial fastapi endpoint implementation
Client endpoint - GET & POST implemented
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import pytest
|
||||
from sqlmodel import SQLModel, Session, create_engine
|
||||
|
||||
from app.core.config import settings
|
||||
from app.api.deps import SessionDep
|
||||
from app.schemas.schemas import ClientCreate
|
||||
from app.api.clients.endpoints import create_client
|
||||
from fastapi import HTTPException
|
||||
|
||||
|
||||
# Fixture for a temporary in-memory database session
|
||||
@pytest.fixture
|
||||
def session():
|
||||
engine = create_engine(str(settings.database_uri), echo=False)
|
||||
SQLModel.metadata.create_all(engine)
|
||||
with Session(engine) as session:
|
||||
yield session
|
||||
|
||||
|
||||
def test_create_client_success(session: SessionDep):
|
||||
client_data = ClientCreate(tin_number=781410046, names="Lin", phone_number="0781410046")
|
||||
client = create_client(client_data, session)
|
||||
|
||||
assert client.id is not None
|
||||
assert client.names == "Lin"
|
||||
assert client.tin_number == 781410046
|
||||
assert client.phone_number == "0781410046"
|
||||
|
||||
|
||||
def test_create_client_duplicate_name(session):
|
||||
client_data = ClientCreate(tin_number=781410045, names="John Doe", phone_number="0781410045")
|
||||
|
||||
# Try to create another client with the same name
|
||||
with pytest.raises(HTTPException) as exc_info:
|
||||
create_client(client_data, session)
|
||||
assert exc_info.value.status_code == 400
|
||||
assert "already exists" in exc_info.value.detail
|
||||
Reference in New Issue
Block a user