From 5a4c42b318588ca3dea41bfd941171717b173ed8 Mon Sep 17 00:00:00 2001 From: collerek Date: Mon, 1 Feb 2021 13:09:01 +0100 Subject: [PATCH] test wtf --- ormar/models/helpers/sqlalchemy.py | 3 ++- tests/test_cascades.py | 15 ++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ormar/models/helpers/sqlalchemy.py b/ormar/models/helpers/sqlalchemy.py index 1b8c99e..d264cf3 100644 --- a/ormar/models/helpers/sqlalchemy.py +++ b/ormar/models/helpers/sqlalchemy.py @@ -234,12 +234,13 @@ def populate_meta_sqlalchemy_table_if_required(meta: "ModelMeta") -> None: if not hasattr(meta, "table") and check_for_null_type_columns_from_forward_refs( meta ): - meta.table = sqlalchemy.Table( + table = sqlalchemy.Table( meta.tablename, meta.metadata, *[copy.deepcopy(col) for col in meta.columns], *meta.constraints, ) + meta.table = table def update_column_definition( diff --git a/tests/test_cascades.py b/tests/test_cascades.py index c99c3a5..b94cc8f 100644 --- a/tests/test_cascades.py +++ b/tests/test_cascades.py @@ -3,7 +3,7 @@ from typing import Optional import databases import pytest import sqlalchemy -from sqlalchemy import create_engine +from sqlalchemy import ForeignKeyConstraint, create_engine, inspect from sqlalchemy.dialects import postgresql import ormar @@ -11,6 +11,7 @@ from tests.settings import DATABASE_URL database = databases.Database(DATABASE_URL, force_rollback=True) metadata = sqlalchemy.MetaData() +engine = sqlalchemy.create_engine(DATABASE_URL, echo=True) class Artist(ormar.Model): @@ -28,6 +29,7 @@ class Album(ormar.Model): tablename = "albums" metadata = metadata database = database + constraint = [ForeignKeyConstraint(['albums'],['albums.id'])] id: int = ormar.Integer(primary_key=True) name: str = ormar.String(max_length=100) @@ -47,20 +49,19 @@ class Track(ormar.Model): @pytest.fixture(autouse=True, scope="module") def create_test_database(): - engine = sqlalchemy.create_engine(DATABASE_URL) if "sqlite" in DATABASE_URL: with engine.connect() as connection: connection.execute("PRAGMA foreign_keys = ON;") metadata.drop_all(engine) metadata.create_all(engine) yield - # metadata.drop_all(engine) + metadata.drop_all(engine) -# def test_table_structures(): -# col = Album.Meta.table.columns.get('artist') -# breakpoint() - +def test_table_structures(): + col = Album.Meta.table.columns.get('artist') + inspector = inspect(engine) + col2 = inspector.get_columns('albums') @pytest.mark.asyncio async def test_simple_cascade():