1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
import pytest
import ormar
from tests.lifespan import init_tests
from tests.settings import create_config
base_ormar_config = create_config()
class Author(ormar.Model):
ormar_config = base_ormar_config.copy(tablename="authors")
id: int = ormar.Integer(primary_key=True)
class Book(ormar.Model):
ormar_config = base_ormar_config.copy(tablename="books")
id: int = ormar.Integer(primary_key=True)
author: Author = ormar.ForeignKey(Author, name="author_id")
my_data: dict | None = ormar.JSON(nullable=True)
create_test_database = init_tests(base_ormar_config)
@pytest.mark.asyncio
async def test_construct_with_empty_relation():
async with base_ormar_config.database:
async with base_ormar_config.database.transaction(force_rollback=True):
author = await Author.objects.create()
await Book.objects.create(author=author, my_data={"aa": 1})
# this should not error out
await Author.objects.select_related(Author.books).all()
# this should also not error out
await Author.objects.select_all().all()
|