2
2
# SPDX-License-Identifier: BSD-3-Clause
3
3
4
4
import pytest
5
- import sqlalchemy as sa
6
- from sqlalchemy .dialects .mssql .pyodbc import MSDialect_pyodbc
7
- from sqlalchemy .dialects .postgresql .psycopg2 import PGDialect_psycopg2
8
5
9
6
import dataframely as dy
7
+ from dataframely ._compat import Dialect , MSDialect_pyodbc , PGDialect_psycopg2
10
8
from dataframely .columns import Column
11
9
from dataframely .testing import COLUMN_TYPES , create_schema
12
10
11
+ pytestmark = pytest .mark .with_optionals
12
+
13
13
14
14
@pytest .mark .parametrize (
15
15
("column" , "datatype" ),
@@ -107,7 +107,7 @@ def test_postgres_datatype(column: Column, datatype: str) -> None:
107
107
@pytest .mark .parametrize ("nullable" , [True , False ])
108
108
@pytest .mark .parametrize ("dialect" , [MSDialect_pyodbc ()])
109
109
def test_sql_nullability (
110
- column_type : type [Column ], nullable : bool , dialect : sa . Dialect
110
+ column_type : type [Column ], nullable : bool , dialect : Dialect
111
111
) -> None :
112
112
schema = create_schema ("test" , {"a" : column_type (nullable = nullable )})
113
113
columns = schema .sql_schema (dialect )
@@ -119,7 +119,7 @@ def test_sql_nullability(
119
119
@pytest .mark .parametrize ("primary_key" , [True , False ])
120
120
@pytest .mark .parametrize ("dialect" , [MSDialect_pyodbc (), PGDialect_psycopg2 ()])
121
121
def test_sql_primary_key (
122
- column_type : type [Column ], primary_key : bool , dialect : sa . Dialect
122
+ column_type : type [Column ], primary_key : bool , dialect : Dialect
123
123
) -> None :
124
124
schema = create_schema ("test" , {"a" : column_type (primary_key = primary_key )})
125
125
columns = schema .sql_schema (dialect )
@@ -129,37 +129,37 @@ def test_sql_primary_key(
129
129
130
130
131
131
@pytest .mark .parametrize ("dialect" , [MSDialect_pyodbc (), PGDialect_psycopg2 ()])
132
- def test_sql_multiple_columns (dialect : sa . Dialect ) -> None :
132
+ def test_sql_multiple_columns (dialect : Dialect ) -> None :
133
133
schema = create_schema ("test" , {"a" : dy .Int32 (nullable = False ), "b" : dy .Integer ()})
134
134
assert len (schema .sql_schema (dialect )) == 2
135
135
136
136
137
137
@pytest .mark .parametrize ("dialect" , [MSDialect_pyodbc (), PGDialect_psycopg2 ()])
138
- def test_raise_for_list_column (dialect : sa . Dialect ) -> None :
138
+ def test_raise_for_list_column (dialect : Dialect ) -> None :
139
139
with pytest .raises (
140
140
NotImplementedError , match = "SQL column cannot have 'List' type."
141
141
):
142
142
dy .List (dy .String ()).sqlalchemy_dtype (dialect )
143
143
144
144
145
145
@pytest .mark .parametrize ("dialect" , [MSDialect_pyodbc (), PGDialect_psycopg2 ()])
146
- def test_raise_for_array_column (dialect : sa . Dialect ) -> None :
146
+ def test_raise_for_array_column (dialect : Dialect ) -> None :
147
147
with pytest .raises (
148
148
NotImplementedError , match = "SQL column cannot have 'Array' type."
149
149
):
150
150
dy .Array (dy .String (), 1 ).sqlalchemy_dtype (dialect )
151
151
152
152
153
153
@pytest .mark .parametrize ("dialect" , [MSDialect_pyodbc (), PGDialect_psycopg2 ()])
154
- def test_raise_for_struct_column (dialect : sa . Dialect ) -> None :
154
+ def test_raise_for_struct_column (dialect : Dialect ) -> None :
155
155
with pytest .raises (
156
156
NotImplementedError , match = "SQL column cannot have 'Struct' type."
157
157
):
158
158
dy .Struct ({"a" : dy .String ()}).sqlalchemy_dtype (dialect )
159
159
160
160
161
161
@pytest .mark .parametrize ("dialect" , [MSDialect_pyodbc (), PGDialect_psycopg2 ()])
162
- def test_raise_for_object_column (dialect : sa . Dialect ) -> None :
162
+ def test_raise_for_object_column (dialect : Dialect ) -> None :
163
163
with pytest .raises (
164
164
NotImplementedError , match = "SQL column cannot have 'Object' type."
165
165
):
0 commit comments