Add and fix tests
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
from decimal import Decimal
|
||||
|
||||
import pytest
|
||||
from fastapi.testclient import TestClient
|
||||
from sqlalchemy import select
|
||||
@@ -5,7 +7,14 @@ from sqlalchemy.orm import Session
|
||||
|
||||
from allmende_payment_system.app import app
|
||||
from allmende_payment_system.database import ensure_user
|
||||
from allmende_payment_system.models import Account, Permission, User, UserGroup
|
||||
from allmende_payment_system.models import (
|
||||
Account,
|
||||
Area,
|
||||
Permission,
|
||||
Product,
|
||||
User,
|
||||
UserGroup,
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
@@ -16,6 +25,7 @@ def admin_user(test_db):
|
||||
group = UserGroup(id=1, name="Admins")
|
||||
group.permissions.append(Permission(scope="user", action="edit"))
|
||||
group.permissions.append(Permission(scope="account", action="edit"))
|
||||
group.permissions.append(Permission(scope="product", action="edit"))
|
||||
user.user_groups.append(group)
|
||||
test_db.add(group)
|
||||
test_db.flush()
|
||||
@@ -187,3 +197,31 @@ def test_add_balance_to_account(test_db, client, admin_user):
|
||||
|
||||
account = test_db.execute(select(Account).where(Account.id == account.id)).scalar()
|
||||
assert account.balance == 100.00
|
||||
|
||||
|
||||
### area and product management
|
||||
|
||||
|
||||
def test_add_product(test_db, client, admin_user):
|
||||
area = Area(name="Test Area", description="An area for testing")
|
||||
test_db.add(area)
|
||||
test_db.flush()
|
||||
response = client.post(
|
||||
"/admin/products/new",
|
||||
data={
|
||||
"name": "Test Product",
|
||||
"vat_rate": "19.00",
|
||||
"unit_of_measure": "piece",
|
||||
"price": 9.99,
|
||||
"area_id": area.id,
|
||||
},
|
||||
user=admin_user,
|
||||
follow_redirects=False,
|
||||
)
|
||||
assert response.status_code == 303
|
||||
product = test_db.execute(
|
||||
select(Product).where(Product.name == "Test Product")
|
||||
).scalar()
|
||||
assert product is not None
|
||||
assert product.name == "Test Product"
|
||||
assert product.price == Decimal("9.99")
|
||||
|
||||
Reference in New Issue
Block a user