121 lines
2.9 KiB
Python
121 lines
2.9 KiB
Python
from flask.testing import FlaskClient
|
|
from sqlalchemy.sql import func, select
|
|
|
|
from teufa import db as dbm
|
|
from teufa.ext import db
|
|
|
|
|
|
def test_create_tenant(client: FlaskClient):
|
|
response = client.post(
|
|
"/api/v1/admin/tenants",
|
|
json={
|
|
"tenant": {
|
|
"name": "Test Tenant",
|
|
"hostname": "test.tenant.com",
|
|
}
|
|
},
|
|
)
|
|
|
|
assert response.status_code == 201
|
|
assert response.json == {
|
|
"tenant": {
|
|
"id": 1,
|
|
"name": "Test Tenant",
|
|
"hostname": "test.tenant.com",
|
|
}
|
|
}
|
|
|
|
|
|
def test_get_tenant(client: FlaskClient):
|
|
tenant = dbm.Tenant(
|
|
name="Test Tenant",
|
|
hostname="test.tenant.com",
|
|
)
|
|
db.session.add(tenant)
|
|
db.session.commit()
|
|
|
|
response = client.get(f"/api/v1/admin/tenants/{tenant.id}")
|
|
|
|
assert response.status_code == 200
|
|
assert response.json == {
|
|
"tenant": {
|
|
"id": tenant.id,
|
|
"name": "Test Tenant",
|
|
"hostname": "test.tenant.com",
|
|
}
|
|
}
|
|
|
|
|
|
def test_get_tenant_not_found(client: FlaskClient):
|
|
response = client.get("/api/v1/admin/tenants/1")
|
|
|
|
assert response.status_code == 404
|
|
assert response.json == {"message": "Tenant not found"}
|
|
|
|
|
|
def test_update_tenant(client: FlaskClient):
|
|
tenant = dbm.Tenant(
|
|
name="Test Tenant",
|
|
hostname="test.tenant.com",
|
|
)
|
|
db.session.add(tenant)
|
|
db.session.commit()
|
|
|
|
response = client.put(
|
|
f"/api/v1/admin/tenants/{tenant.id}",
|
|
json={
|
|
"tenant": {
|
|
"name": "Updated Tenant",
|
|
"hostname": "updated.tenant.com",
|
|
}
|
|
},
|
|
)
|
|
|
|
assert response.status_code == 200
|
|
assert response.json == {
|
|
"tenant": {
|
|
"id": tenant.id,
|
|
"name": "Updated Tenant",
|
|
"hostname": "updated.tenant.com",
|
|
}
|
|
}
|
|
|
|
|
|
def test_update_tenant_not_found(client: FlaskClient):
|
|
response = client.put(
|
|
"/api/v1/admin/tenants/1",
|
|
json={
|
|
"tenant": {
|
|
"name": "Updated Tenant",
|
|
"hostname": "updated.tenant.com",
|
|
}
|
|
},
|
|
)
|
|
|
|
assert response.status_code == 404
|
|
assert response.json == {"message": "Tenant not found"}
|
|
|
|
|
|
def test_delete_tenant(client: FlaskClient):
|
|
tenant = dbm.Tenant(
|
|
name="Test Tenant",
|
|
hostname="test.tenant.com",
|
|
)
|
|
db.session.add(tenant)
|
|
db.session.commit()
|
|
|
|
response = client.delete(f"/api/v1/admin/tenants/{tenant.id}")
|
|
|
|
assert response.status_code == 204
|
|
assert response.data == b""
|
|
|
|
with db.session.begin():
|
|
assert db.session.scalar(select(func.count(dbm.Tenant.id))) == 0
|
|
|
|
|
|
def test_delete_tenant_not_found(client: FlaskClient):
|
|
response = client.delete("/api/v1/admin/tenants/1")
|
|
|
|
assert response.status_code == 404
|
|
assert response.json == {"message": "Tenant not found"}
|