|
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