From 6fa7c65b8d1ec941d186bf7322b22715f89dcd2a Mon Sep 17 00:00:00 2001 From: collerek Date: Tue, 4 Aug 2020 21:46:13 +0200 Subject: [PATCH] fix parsing related models from dictionaries --- .coverage | Bin 53248 -> 53248 bytes orm/fields.py | 2 ++ orm/models.py | 2 +- tests/test_fastapi_usage.py | 15 ++++++++++++--- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.coverage b/.coverage index 997d62288b92e3b8a186eb775b7686e374522c00..09d9c48be0bcd1f392132dd5d9f0975ec6f294c3 100644 GIT binary patch delta 115 zcmV-(0F3{DpaX!Q1F$tO1vE7}H8Qh0FU(LH@Bk0_59$x#555ny52p`d4_OaO4<`>1 z4)C)P5YP^j@{U^$3<(4Q2^tCZwR!W-$q$oSk7Xht1Ox#ILIiHJf8Fiw-S_{K&E9M_ Vo6Tmk*=+Wk@9w_-0khzbAV7AKFp>ZO delta 113 zcmV-%0FM8FpaX!Q1F$tO1v54}H8Zn1FU(LH@&FI{59$x#55Et!52z1f4_XgR4=E25 z4)U`R5Yi5l@Qzyz3kd`P2^b0XwRv;$2a{QkWg#B~1OW*^1a7l`-R None: + def __init__(self, *args, **kwargs) -> None: self._orm_id = uuid.uuid4().hex self._orm_saved = False self._orm_relationship_manager = RelationshipManager(self) diff --git a/tests/test_fastapi_usage.py b/tests/test_fastapi_usage.py index ae647a0..67a4c5f 100644 --- a/tests/test_fastapi_usage.py +++ b/tests/test_fastapi_usage.py @@ -16,6 +16,15 @@ database = databases.Database(DATABASE_URL, force_rollback=True) metadata = sqlalchemy.MetaData() +class Category(orm.Model): + __tablename__ = "cateries" + __metadata__ = metadata + __database__ = database + + id = orm.Integer(primary_key=True) + name = orm.String(length=100) + + class Item(orm.Model): __tablename__ = "users" __metadata__ = metadata @@ -23,6 +32,7 @@ class Item(orm.Model): id = orm.Integer(primary_key=True) name = orm.String(length=100) + category = orm.ForeignKey(Category, nullable=True) @app.post("/items/", response_model=Item) @@ -34,9 +44,8 @@ client = TestClient(app) def test_read_main(): - response = client.post("/items/", json={'name': 'test', 'id': 1}) - print(response.json()) + response = client.post("/items/", json={'name': 'test', 'id': 1, 'category': {'name': 'test cat'}}) assert response.status_code == 200 - assert response.json() == {'name': 'test', 'id': 1} + assert response.json() == {'category': {'id': None, 'name': 'test cat'}, 'id': 1, 'name': 'test'} item = Item(**response.json()) assert item.id == 1