32 lines
764 B
Python
32 lines
764 B
Python
import uuid
|
|
|
|
import pytest
|
|
|
|
from app.crud import study as study_crud
|
|
|
|
|
|
class _FakeDb:
|
|
def __init__(self):
|
|
self.tables = []
|
|
self.committed = False
|
|
|
|
async def execute(self, stmt):
|
|
table = getattr(getattr(stmt, "table", None), "name", None)
|
|
if table:
|
|
self.tables.append(table)
|
|
|
|
async def commit(self):
|
|
self.committed = True
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_delete_study_removes_contract_fee_payments_before_contract_fees():
|
|
db = _FakeDb()
|
|
|
|
await study_crud.delete(db, uuid.uuid4())
|
|
|
|
assert "contract_fee_payments" in db.tables
|
|
assert "contract_fees" in db.tables
|
|
assert db.tables.index("contract_fee_payments") < db.tables.index("contract_fees")
|
|
assert db.committed is True
|