feat: support psycopg (#425)
This commit is contained in:
		| @@ -5,6 +5,14 @@ from settings import TORTOISE_ORM | ||||
| from tortoise import Tortoise | ||||
| from tortoise.exceptions import OperationalError | ||||
|  | ||||
| try: | ||||
|     # This error does not translate to tortoise's OperationalError | ||||
|     from psycopg.errors import UndefinedColumn | ||||
| except ImportError: | ||||
|     errors = (OperationalError,) | ||||
| else: | ||||
|     errors = (OperationalError, UndefinedColumn) | ||||
|  | ||||
|  | ||||
| @pytest.fixture(scope="session") | ||||
| def anyio_backend() -> str: | ||||
| @@ -34,29 +42,29 @@ async def test_init_db(): | ||||
| async def test_fake_field_1(): | ||||
|     assert "field_1" in NewModel._meta.fields_map | ||||
|     assert "field_1" in Config._meta.fields_map | ||||
|     with pytest.raises(OperationalError): | ||||
|     with pytest.raises(errors): | ||||
|         await NewModel.create(name="", field_1=1) | ||||
|     with pytest.raises(OperationalError): | ||||
|     with pytest.raises(errors): | ||||
|         await Config.create(key="", label="", value={}, field_1=1) | ||||
|  | ||||
|     obj1 = NewModel(name="", field_1=1) | ||||
|     with pytest.raises(OperationalError): | ||||
|     with pytest.raises(errors): | ||||
|         await obj1.save() | ||||
|     obj1 = NewModel(name="") | ||||
|     with pytest.raises(OperationalError): | ||||
|     with pytest.raises(errors): | ||||
|         await obj1.save() | ||||
|     with pytest.raises(OperationalError): | ||||
|     with pytest.raises(errors): | ||||
|         obj1 = await NewModel.first() | ||||
|     obj1 = await NewModel.all().first().values("id", "name") | ||||
|     assert obj1 and obj1["id"] | ||||
|  | ||||
|     obj2 = Config(key="", label="", value={}, field_1=1) | ||||
|     with pytest.raises(OperationalError): | ||||
|     with pytest.raises(errors): | ||||
|         await obj2.save() | ||||
|     obj2 = Config(key="", label="", value={}) | ||||
|     with pytest.raises(OperationalError): | ||||
|     with pytest.raises(errors): | ||||
|         await obj2.save() | ||||
|     with pytest.raises(OperationalError): | ||||
|     with pytest.raises(errors): | ||||
|         obj2 = await Config.first() | ||||
|     obj2 = await Config.all().first().values("id", "key") | ||||
|     assert obj2 and obj2["id"] | ||||
| @@ -66,7 +74,7 @@ async def test_fake_field_1(): | ||||
| async def test_fake_field_2(): | ||||
|     assert "field_2" in NewModel._meta.fields_map | ||||
|     assert "field_2" in Config._meta.fields_map | ||||
|     with pytest.raises(OperationalError): | ||||
|     with pytest.raises(errors): | ||||
|         await NewModel.create(name="") | ||||
|     with pytest.raises(OperationalError): | ||||
|     with pytest.raises(errors): | ||||
|         await Config.create(key="", label="", value={}) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user