Skip to content

Commit a30e7e7

Browse files
committed
Skip DATE, TIME tests when run against SQL Server < 2008
Refs 0378908 and 3beb416.
1 parent f8daf2a commit a30e7e7

File tree

1 file changed

+41
-26
lines changed

1 file changed

+41
-26
lines changed

tests/test_types.py

+41-26
Original file line numberDiff line numberDiff line change
@@ -28,33 +28,46 @@ def get_bytes_buffer():
2828

2929
from .helpers import drop_table, mssqlconn, clear_table, config, eq_, pymssqlconn
3030

31+
3132
def typeeq(v1, v2):
3233
eq_(type(v1), type(v2))
3334

34-
tblsql = """
35-
CREATE TABLE pymssql (
36-
pk_id int IDENTITY (1, 1) NOT NULL,
37-
real_no real,
38-
float_no float,
39-
money_no money,
40-
stamp_datetime datetime,
41-
stamp_date date,
42-
stamp_time time,
43-
stamp_datetime2 datetime2,
44-
data_bit bit,
45-
comment_vch varchar(50),
46-
comment_nvch nvarchar(50),
47-
comment_text text,
48-
comment_ntext ntext,
49-
data_image image,
50-
data_binary varbinary(40),
51-
decimal_no decimal(38,2),
52-
decimal_no2 decimal(38,10),
53-
numeric_no numeric(38,8),
54-
stamp_timestamp timestamp,
55-
uuid uniqueidentifier
56-
)
57-
"""
35+
create_test_table_sql = [
36+
'CREATE TABLE pymssql ('
37+
' pk_id int IDENTITY (1, 1) NOT NULL,',
38+
' real_no real,',
39+
' float_no float,',
40+
' money_no money,',
41+
' stamp_datetime datetime,',
42+
' data_bit bit,',
43+
' comment_vch varchar(50),',
44+
' comment_nvch nvarchar(50),',
45+
' comment_text text,',
46+
' comment_ntext ntext,',
47+
' data_image image,',
48+
' data_binary varbinary(40),',
49+
' decimal_no decimal(38,2),',
50+
' decimal_no2 decimal(38,10),',
51+
' numeric_no numeric(38,8),',
52+
' stamp_timestamp timestamp,',
53+
' uuid uniqueidentifier',
54+
')',
55+
]
56+
57+
58+
def build_create_table_query(conn):
59+
if get_sql_server_version(conn) < 2008:
60+
create_sql = '\n'.join(create_test_table_sql)
61+
else:
62+
create_sql = '\n'.join(
63+
create_test_table_sql[:-1] + [
64+
','
65+
'stamp_date date,',
66+
'stamp_time time,',
67+
'stamp_datetime2 datetime2'] +
68+
create_test_table_sql[-1:])
69+
return create_sql
70+
5871

5972
class TestTypes(unittest.TestCase):
6073
tname = 'pymssql'
@@ -63,7 +76,8 @@ class TestTypes(unittest.TestCase):
6376
def setup_class(cls):
6477
cls.conn = mssqlconn()
6578
drop_table(cls.conn, cls.tname)
66-
cls.conn.execute_non_query(tblsql)
79+
ddl_str = build_create_table_query(cls.conn)
80+
cls.conn.execute_non_query(ddl_str)
6781

6882
def setUp(self):
6983
clear_table(self.conn, self.tname)
@@ -273,8 +287,9 @@ class TestTypesPymssql(unittest.TestCase):
273287
def setup_class(cls):
274288
cls.conn = pymssqlconn()
275289
drop_table(cls.conn._conn, cls.tname)
290+
ddl_str = build_create_table_query(cls.conn._conn)
276291
with cls.conn.cursor() as c:
277-
c.execute(tblsql)
292+
c.execute(ddl_str)
278293

279294
def setUp(self):
280295
clear_table(self.conn._conn, self.tname)

0 commit comments

Comments
 (0)