Skip to content

Commit a192e55

Browse files
committedMay 14, 2020
Update mssql provider tests for temporal handling
1 parent ef46d8e commit a192e55

File tree

2 files changed

+26
-13
lines changed

2 files changed

+26
-13
lines changed
 

‎tests/src/python/test_provider_mssql.py

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ def getSource(self):
9595
# create temporary table for edit tests
9696
self.execSQLCommand('DROP TABLE IF EXISTS qgis_test.edit_data')
9797
self.execSQLCommand(
98-
"""CREATE TABLE qgis_test.edit_data (pk INTEGER PRIMARY KEY,cnt integer, name nvarchar(max), name2 nvarchar(max), num_char nvarchar(max), geom geometry)""")
98+
"""CREATE TABLE qgis_test.edit_data (pk INTEGER PRIMARY KEY,cnt integer, name nvarchar(max), name2 nvarchar(max), num_char nvarchar(max), dt datetime, [date] date, [time] time, geom geometry)""")
9999

100100
vl = QgsVectorLayer(
101101
self.dbconn + ' sslmode=disable key=\'pk\' srid=4326 type=POINT table="qgis_test"."edit_data" (geom) sql=',
@@ -104,22 +104,22 @@ def getSource(self):
104104
self.assertTrue(vl.isValid(), vl.dataProvider().error().message())
105105

106106
f1 = QgsFeature()
107-
f1.setAttributes([5, -200, NULL, 'NuLl', '5'])
107+
f1.setAttributes([5, -200, NULL, 'NuLl', '5', QDateTime(QDate(2020, 5, 4), QTime(12, 13, 14)), QDate(2020, 5, 2), QTime(12, 13, 1)])
108108
f1.setGeometry(QgsGeometry.fromWkt('Point (-71.123 78.23)'))
109109

110110
f2 = QgsFeature()
111-
f2.setAttributes([3, 300, 'Pear', 'PEaR', '3'])
111+
f2.setAttributes([3, 300, 'Pear', 'PEaR', '3', NULL, NULL, NULL])
112112

113113
f3 = QgsFeature()
114-
f3.setAttributes([1, 100, 'Orange', 'oranGe', '1'])
114+
f3.setAttributes([1, 100, 'Orange', 'oranGe', '1', QDateTime(QDate(2020, 5, 3), QTime(12, 13, 14)), QDate(2020, 5, 3), QTime(12, 13, 14)])
115115
f3.setGeometry(QgsGeometry.fromWkt('Point (-70.332 66.33)'))
116116

117117
f4 = QgsFeature()
118-
f4.setAttributes([2, 200, 'Apple', 'Apple', '2'])
118+
f4.setAttributes([2, 200, 'Apple', 'Apple', '2', QDateTime(QDate(2020, 5, 4), QTime(12, 14, 14)), QDate(2020, 5, 4), QTime(12, 14, 14)])
119119
f4.setGeometry(QgsGeometry.fromWkt('Point (-68.2 70.8)'))
120120

121121
f5 = QgsFeature()
122-
f5.setAttributes([4, 400, 'Honey', 'Honey', '4'])
122+
f5.setAttributes([4, 400, 'Honey', 'Honey', '4', QDateTime(QDate(2021, 5, 4), QTime(13, 13, 14)), QDate(2021, 5, 4), QTime(13, 13, 14)])
123123
f5.setGeometry(QgsGeometry.fromWkt('Point (-65.32 78.3)'))
124124

125125
self.assertTrue(vl.dataProvider().addFeatures([f1, f2, f3, f4, f5]))
@@ -144,6 +144,8 @@ def partiallyCompiledFilters(self):
144144
'name LIKE \'Apple\'',
145145
'name LIKE \'aPple\'',
146146
'name ILIKE \'aPple\'',
147+
'name LIKE \'Ap_le\'',
148+
'name LIKE \'Ap\_le\'',
147149
'name ILIKE \'%pp%\'',
148150
'"name" || \' \' || "name" = \'Orange Orange\'',
149151
'"name" || \' \' || "cnt" = \'Orange 100\'',
@@ -212,7 +214,15 @@ def uncompiledFilters(self):
212214
'overlaps(translate($geometry,-1,-1),geom_from_wkt( \'Polygon ((-75.1 76.1, -75.1 81.6, -68.8 81.6, -68.8 76.1, -75.1 76.1))\'))',
213215
'overlaps(buffer($geometry,1),geom_from_wkt( \'Polygon ((-75.1 76.1, -75.1 81.6, -68.8 81.6, -68.8 76.1, -75.1 76.1))\'))',
214216
'intersects(centroid($geometry),geom_from_wkt( \'Polygon ((-74.4 78.2, -74.4 79.1, -66.8 79.1, -66.8 78.2, -74.4 78.2))\'))',
215-
'intersects(point_on_surface($geometry),geom_from_wkt( \'Polygon ((-74.4 78.2, -74.4 79.1, -66.8 79.1, -66.8 78.2, -74.4 78.2))\'))'
217+
'intersects(point_on_surface($geometry),geom_from_wkt( \'Polygon ((-74.4 78.2, -74.4 79.1, -66.8 79.1, -66.8 78.2, -74.4 78.2))\'))',
218+
'"dt" <= make_datetime(2020, 5, 4, 12, 13, 14)',
219+
'"dt" < make_date(2020, 5, 4)',
220+
'"dt" = to_datetime(\'000www14ww13ww12www4ww5ww2020\',\'zzzwwwsswwmmwwhhwwwdwwMwwyyyy\')',
221+
'"date" <= make_datetime(2020, 5, 4, 12, 13, 14)',
222+
'"date" >= make_date(2020, 5, 4)',
223+
'"date" = to_date(\'www4ww5ww2020\',\'wwwdwwMwwyyyy\')',
224+
'"time" >= make_time(12, 14, 14)',
225+
'"time" = to_time(\'000www14ww13ww12www\',\'zzzwwwsswwmmwwhhwww\')'
216226
])
217227
return filters
218228

‎tests/testdata/provider/testdata_mssql.sql

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ CREATE TABLE qgis_test.[someData] (
4040
name nvarchar(max) DEFAULT 'qgis',
4141
name2 nvarchar(max) DEFAULT 'qgis',
4242
num_char nvarchar(max),
43+
dt datetime,
44+
[date] date,
45+
[time] time,
4346
geom geometry
4447
);
4548
GO
@@ -77,12 +80,12 @@ CREATE TABLE qgis_test.[sacrificialLamb] (
7780
);
7881
GO
7982

80-
INSERT INTO qgis_test.[someData] (pk, cnt, name, name2, num_char, geom) VALUES
81-
(5, -200, NULL, 'NuLl', '5', geometry::STGeomFromText( 'Point(-71.123 78.23)', 4326 )),
82-
(3, 300, 'Pear', 'PEaR', '3', NULL),
83-
(1, 100, 'Orange', 'oranGe', '1', geometry::STGeomFromText( 'Point(-70.332 66.33)', 4326 )),
84-
(2, 200, 'Apple', 'Apple', '2', geometry::STGeomFromText( 'Point(-68.2 70.8)', 4326 )),
85-
(4, 400, 'Honey', 'Honey', '4', geometry::STGeomFromText( 'Point(-65.32 78.3)', 4326 ))
83+
INSERT INTO qgis_test.[someData] (pk, cnt, name, name2, num_char, dt, [date], [time], geom) VALUES
84+
(5, -200, NULL, 'NuLl', '5', '2020-05-04 12:13:14', '2020-05-02', '12:13:01', geometry::STGeomFromText( 'Point(-71.123 78.23)', 4326 )),
85+
(3, 300, 'Pear', 'PEaR', '3', NULL, NULL, NULL, NULL),
86+
(1, 100, 'Orange', 'oranGe', '1', '2020-05-03 12:13:14', '2020-05-03', '12:13:14', geometry::STGeomFromText( 'Point(-70.332 66.33)', 4326 )),
87+
(2, 200, 'Apple', 'Apple', '2', '2020-05-04 12:14:14', '2020-05-04', '12:14:14', geometry::STGeomFromText( 'Point(-68.2 70.8)', 4326 )),
88+
(4, 400, 'Honey', 'Honey', '4', '2021-05-04 13:13:14', '2021-05-04', '13:13:14', geometry::STGeomFromText( 'Point(-65.32 78.3)', 4326 ))
8689
;
8790
GO
8891

0 commit comments

Comments
 (0)
Please sign in to comment.