Skip to content

Commit 8f9c1d4

Browse files
rldhontnyalldawson
authored andcommittedMay 24, 2018
[Oracle][Tests] Enhance Point convertion test
Instead of using 'SDO_UTIL.FROM_WKTGEOMETRY' to generate `SDO_GEOMETRY` object for Point, the `testdata` generate Point and MultiPoint with `SDO_POINT_TYPE` or `SDO_ELEM_INFO_ARRAY` and `SDO_ORDINATE_ARRAY`. With this way of creating Point and MultiPoint, we can test the way Point and MultiPoint are converting to WKB. (cherry-picked from 4bc315e)
1 parent b35696f commit 8f9c1d4

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed
 

‎tests/src/python/test_provider_oracle.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ def setUpClass(cls):
4949

5050
cls.conn = QSqlDatabase.addDatabase('QOCISPATIAL', "oracletest")
5151
cls.conn.setDatabaseName('10.0.0.2/orcl')
52+
if 'QGIS_ORACLETEST_DBNAME' in os.environ:
53+
cls.conn.setDatabaseName('QGIS_ORACLETEST_DBNAME')
5254
cls.conn.setUserName('QGIS')
5355
cls.conn.setPassword('qgis')
5456
assert cls.conn.open()
@@ -151,6 +153,10 @@ def testPoints(self):
151153
self.assertEqual(features[1].geometry().exportToWkt(), 'PointZ (1 2 3)')
152154
self.assertEqual(features[2].geometry().exportToWkt(), 'MultiPointZ ((1 2 3),(4 5 6))')
153155
self.assertEqual(features[3].geometry().exportToWkt(), 'MultiPoint ((1 2),(3 4))')
156+
self.assertEqual(features[4].geometry().exportToWkt(), 'MultiPointZ ((1 2 3),(4 5 6))')
157+
self.assertEqual(features[5].geometry().exportToWkt(), 'Point (1 2)')
158+
self.assertEqual(features[6].geometry().exportToWkt(), 'Point (3 4)')
159+
self.assertEqual(features[7].geometry().exportToWkt(), 'Point (5 6)')
154160

155161
def testCurves(self):
156162
vl = QgsVectorLayer('%s table="QGIS"."LINE_DATA" (GEOM) srid=4326 type=LINESTRING sql=' %

‎tests/testdata/provider/testdata_oracle.sql

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,21 @@ INSERT INTO QGIS.SOME_POLY_DATA ("pk", GEOM)
1919
UNION ALL SELECT 3, SDO_GEOMETRY( 2003,4326,NULL, SDO_ELEM_INFO_ARRAY(1,1003,1), SDO_ORDINATE_ARRAY(-68.4,75.8 , -67.5,72.6 , -68.6,73.7 , -70.2,72.9 , -68.4,75.8)) from dual
2020
UNION ALL SELECT 4, NULL from dual;
2121

22+
INSERT INTO user_sdo_geom_metadata (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES ( 'SOME_POLY_DATA', 'GEOM', sdo_dim_array(sdo_dim_element('X',-80,-55,0.005),sdo_dim_element('Y',65,85,0.005)),4326);
23+
24+
CREATE INDEX some_poly_data_spatial_idx ON QGIS.SOME_POLY_DATA(GEOM) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
25+
26+
2227
CREATE TABLE QGIS.POINT_DATA ( "pk" INTEGER PRIMARY KEY, GEOM SDO_GEOMETRY);
2328
INSERT INTO QGIS.POINT_DATA ("pk", GEOM)
24-
SELECT 1, SDO_UTIL.FROM_WKTGEOMETRY('POINT(1 2)') from dual
25-
UNION ALL SELECT 2, SDO_UTIL.FROM_WKTGEOMETRY('POINT(1 2 3)') from dual
26-
UNION ALL SELECT 3, SDO_UTIL.FROM_WKTGEOMETRY('MULTIPOINT(1 2 3, 4 5 6)') from dual
27-
UNION ALL SELECT 4, SDO_UTIL.FROM_WKTGEOMETRY('MULTIPOINT(1 2, 3 4)') from dual;
29+
SELECT 1, SDO_GEOMETRY( 2001,4326,SDO_POINT_TYPE(1, 2, NULL), NULL, NULL) from dual
30+
UNION ALL SELECT 2, SDO_GEOMETRY( 3001,4326,SDO_POINT_TYPE(1, 2, 3), NULL, NULL) from dual
31+
UNION ALL SELECT 3, SDO_GEOMETRY( 3005,4326,NULL, sdo_elem_info_array (1,1,1, 4,1,1), sdo_ordinate_array (1,2,3, 4,5,6)) from dual
32+
UNION ALL SELECT 4, SDO_GEOMETRY( 2005,4326,NULL, sdo_elem_info_array (1,1,1, 3,1,1), sdo_ordinate_array (1,2, 3,4)) from dual
33+
UNION ALL SELECT 5, SDO_GEOMETRY( 3005,4326,NULL, sdo_elem_info_array (1,1,2), sdo_ordinate_array (1,2,3, 4,5,6)) from dual
34+
UNION ALL SELECT 6, SDO_GEOMETRY( 2001,4326,NULL, sdo_elem_info_array (1,1,1), sdo_ordinate_array (1,2)) from dual
35+
UNION ALL SELECT 7, SDO_GEOMETRY( 2001,4326, SDO_POINT_TYPE(3, 4, NULL), NULL, NULL) from dual
36+
UNION ALL SELECT 8, SDO_GEOMETRY( 2001,4326,NULL, sdo_elem_info_array (1,1,1), sdo_ordinate_array (5,6)) from dual;
2837

2938
CREATE TABLE QGIS.LINE_DATA ( "pk" INTEGER PRIMARY KEY, GEOM SDO_GEOMETRY);
3039
INSERT INTO QGIS.LINE_DATA ("pk", GEOM)
@@ -43,11 +52,6 @@ INSERT INTO QGIS.POLY_DATA ("pk", GEOM)
4352
UNION ALL SELECT 7, SDO_UTIL.FROM_WKTGEOMETRY('MULTIPOLYGON (((1.0 2.0, 11.0 2.0, 11.0 22.0, 1.0 22.0, 1.0 2.0)),((1.0 2.0, 11.0 2.0, 11.0 22.0, 1.0 22.0, 1.0 2.0),(5.0 6.0, 8.0 9.0, 8.0 6.0, 5.0 6.0),(3.0 4.0, 5.0 6.0, 3.0 6.0, 3.0 4.0)))') from dual
4453
UNION ALL SELECT 8, SDO_UTIL.FROM_WKTGEOMETRY('MULTIPOLYGON (((1.0 2.0 3.0, 11.0 2.0 13.0, 11.0 22.0 15.0, 1.0 22.0 7.0, 1.0 2.0 3.0)),((1.0 2.0 3.0, 11.0 2.0 13.0, 11.0 22.0 15.0, 1.0 22.0 7.0, 1.0 2.0 3.0),(5.0 6.0 1.0, 8.0 9.0 -1.0, 8.0 6.0 2.0, 5.0 6.0 1.0)))') from dual
4554

46-
INSERT INTO user_sdo_geom_metadata (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES ( 'SOME_POLY_DATA', 'GEOM', sdo_dim_array(sdo_dim_element('X',-80,-55,0.005),sdo_dim_element('Y',65,85,0.005)),4326);
47-
48-
CREATE INDEX some_poly_data_spatial_idx ON QGIS.SOME_POLY_DATA(GEOM) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
49-
50-
5155
CREATE TABLE QGIS.DATE_TIMES ( "id" INTEGER PRIMARY KEY, "date_field" DATE, "datetime_field" TIMESTAMP );
5256

5357
INSERT INTO QGIS.DATE_TIMES ("id", "date_field", "datetime_field" ) VALUES (1, DATE '2004-03-04', TIMESTAMP '2004-03-04 13:41:52' );

0 commit comments

Comments
 (0)
Please sign in to comment.