Skip to content

Commit

Permalink
Uplift coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
aminalaee committed Sep 4, 2022
1 parent 1c47ac7 commit f152c99
Showing 1 changed file with 36 additions and 6 deletions.
42 changes: 36 additions & 6 deletions tests/test_ajax.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

import pytest
from httpx import AsyncClient
from sqlalchemy import Column, ForeignKey, Integer, String
from sqlalchemy import Column, ForeignKey, Integer, String, select
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, sessionmaker
from sqlalchemy.orm import relationship, selectinload, sessionmaker
from starlette.applications import Starlette

from sqladmin import Admin, ModelView
Expand Down Expand Up @@ -119,13 +119,13 @@ async def test_create_ajax_loader_exceptions() -> None:

async def test_create_page_template(client: AsyncClient) -> None:
response = await client.get("/admin/user/create")
assert response.status_code == 200

assert response.text.count('data-json="[]"') == 1
assert response.text.count('data-role="select2-ajax"') == 1
assert response.text.count('data-url="/admin/user/ajax/lookup"') == 1

response = await client.get("/admin/address/create")
assert response.status_code == 200

assert response.text.count('data-role="select2-ajax"') == 1
assert response.text.count('data-url="/admin/address/ajax/lookup"') == 1

Expand All @@ -141,7 +141,6 @@ async def test_edit_page_template(client: AsyncClient) -> None:
await s.commit()

response = await client.get("/admin/user/edit/1")
assert response.status_code == 200
assert (
response.text.count(
'data-json="[{"id": 1, "text": "Address 1"}]"'
Expand All @@ -152,7 +151,6 @@ async def test_edit_page_template(client: AsyncClient) -> None:
assert response.text.count('data-url="/admin/user/ajax/lookup"') == 1

response = await client.get("/admin/address/edit/1")
assert response.status_code == 200
assert (
response.text.count(
'data-json="[{"id": 1, "text": "User 1"}]"'
Expand All @@ -161,3 +159,35 @@ async def test_edit_page_template(client: AsyncClient) -> None:
)
assert response.text.count('data-role="select2-ajax"') == 1
assert response.text.count('data-url="/admin/address/ajax/lookup"') == 1


async def test_crete_and_edit_forms(client: AsyncClient) -> None:
data = {"user": "1"}
response = await client.post("/admin/address/create", data=data)
assert response.status_code == 302

data = {"addresses": ["1"], "name": "Winterfell"}
response = await client.post("/admin/user/create", data=data)
assert response.status_code == 302

data = {}
response = await client.post("/admin/address/edit/1", data=data)
assert response.status_code == 302

async with LocalSession() as s:
stmt = select(User).options(selectinload(User.addresses))
result = await s.execute(stmt)

user = result.scalar_one()
assert len(user.addresses) == 0

data = {"addresses": ["1"]}
response = await client.post("/admin/user/edit/1", data=data)
assert response.status_code == 302

async with LocalSession() as s:
stmt = select(User).options(selectinload(User.addresses))
result = await s.execute(stmt)

user = result.scalar_one()
assert len(user.addresses) == 1

0 comments on commit f152c99

Please sign in to comment.