|
1 | 1 | from enum import Enum |
2 | 2 |
|
3 | 3 | import pytest |
| 4 | +from asyncpg import UndefinedTableError |
4 | 5 |
|
5 | 6 | import gino |
6 | 7 | from gino.dialects.asyncpg import AsyncEnum |
7 | 8 |
|
8 | 9 | pytestmark = pytest.mark.asyncio |
9 | | -db = gino.Gino() |
10 | 10 |
|
11 | 11 |
|
12 | 12 | class MyEnum(Enum): |
13 | 13 | ONE = "one" |
14 | 14 | TWO = "two" |
15 | 15 |
|
16 | 16 |
|
17 | | -class Blog(db.Model): |
18 | | - __tablename__ = "s_blog" |
19 | | - |
20 | | - id = db.Column(db.BigInteger(), primary_key=True) |
21 | | - title = db.Column(db.Unicode(), index=True, comment="Title Comment") |
22 | | - visits = db.Column(db.BigInteger(), default=0) |
23 | | - comment_id = db.Column(db.ForeignKey("s_comment.id")) |
24 | | - number = db.Column(db.Enum(MyEnum), nullable=False, default=MyEnum.TWO) |
25 | | - number2 = db.Column(AsyncEnum(MyEnum), nullable=False, default=MyEnum.TWO) |
26 | | - |
| 17 | +async def test(engine, define=True): |
| 18 | + db = gino.Gino() |
27 | 19 |
|
28 | | -class Comment(db.Model): |
29 | | - __tablename__ = "s_comment" |
| 20 | + class Blog(db.Model): |
| 21 | + __tablename__ = "s_blog" |
30 | 22 |
|
31 | | - id = db.Column(db.BigInteger(), primary_key=True) |
32 | | - blog_id = db.Column(db.ForeignKey("s_blog.id", name="blog_id_fk")) |
| 23 | + id = db.Column(db.BigInteger(), primary_key=True) |
| 24 | + title = db.Column(db.Unicode(), index=True, comment="Title Comment") |
| 25 | + visits = db.Column(db.BigInteger(), default=0) |
| 26 | + comment_id = db.Column(db.ForeignKey("s_comment.id")) |
| 27 | + number = db.Column(db.Enum(MyEnum), nullable=False, default=MyEnum.TWO) |
| 28 | + number2 = db.Column(AsyncEnum(MyEnum), nullable=False, default=MyEnum.TWO) |
33 | 29 |
|
| 30 | + class Comment(db.Model): |
| 31 | + __tablename__ = "s_comment" |
34 | 32 |
|
35 | | -blog_seq = db.Sequence("blog_seq", metadata=db, schema="schema_test") |
| 33 | + id = db.Column(db.BigInteger(), primary_key=True) |
| 34 | + blog_id = db.Column(db.ForeignKey("s_blog.id", name="blog_id_fk")) |
36 | 35 |
|
| 36 | + blog_seq = db.Sequence("blog_seq", metadata=db, schema="schema_test") |
37 | 37 |
|
38 | | -async def test(engine, define=True): |
39 | 38 | try: |
40 | 39 | async with engine.acquire() as conn: |
41 | 40 | assert not await engine.dialect.has_schema(conn, "schema_test") |
@@ -78,6 +77,5 @@ class Comment2(db.Model): |
78 | 77 |
|
79 | 78 | async def test_no_alter(engine, mocker): |
80 | 79 | engine.dialect.supports_alter = False |
81 | | - warn = mocker.patch("warnings.warn") |
82 | | - await test(engine, define=False) |
83 | | - assert warn.called |
| 80 | + with pytest.raises(UndefinedTableError): |
| 81 | + await test(engine, define=False) |
0 commit comments