@@ -3,6 +3,7 @@ def test_002_load_csv_file():
3
3
wanted = {}
4
4
wanted ['uri' ] = u'file://test.csv?geomType=none&type=csv'
5
5
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' , 'text' , 'text' ]
6
+ wanted ['geometryType' ] = 4
6
7
wanted ['data' ] = {
7
8
2 : {
8
9
'id' : u'1' ,
@@ -67,6 +68,7 @@ def test_003_field_naming():
67
68
wanted = {}
68
69
wanted ['uri' ] = u'file://testfields.csv?geomType=none&type=csv'
69
70
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' , 'text' , 'text' , 'text' , 'text' , 'text' , 'text' , 'text' , 'text' , 'text' ]
71
+ wanted ['geometryType' ] = 4
70
72
wanted ['data' ] = {
71
73
2 : {
72
74
'id' : u'1' ,
@@ -93,6 +95,7 @@ def test_004_max_fields():
93
95
wanted = {}
94
96
wanted ['uri' ] = u'file://testfields.csv?geomType=none&maxFields=7&type=csv'
95
97
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' , 'text' , 'text' , 'text' , 'text' ]
98
+ wanted ['geometryType' ] = 4
96
99
wanted ['data' ] = {
97
100
2 : {
98
101
'id' : u'1' ,
@@ -114,6 +117,7 @@ def test_005_load_whitespace():
114
117
wanted = {}
115
118
wanted ['uri' ] = u'file://test.space?geomType=none&type=whitespace'
116
119
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' , 'text' , 'text' , 'text' ]
120
+ wanted ['geometryType' ] = 4
117
121
wanted ['data' ] = {
118
122
2 : {
119
123
'id' : u'1' ,
@@ -184,6 +188,7 @@ def test_006_quote_escape():
184
188
wanted = {}
185
189
wanted ['uri' ] = u'file://test.pipe?geomType=none"e="&delimiter=|&escape=\\ '
186
190
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' , 'text' , 'text' , 'text' ]
191
+ wanted ['geometryType' ] = 4
187
192
wanted ['data' ] = {
188
193
2 : {
189
194
'id' : u'1' ,
@@ -274,6 +279,7 @@ def test_007_multiple_quote():
274
279
wanted = {}
275
280
wanted ['uri' ] = u'file://test.quote?geomType=none"e=\' "&type=csv&escape="\' '
276
281
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' , 'text' ]
282
+ wanted ['geometryType' ] = 4
277
283
wanted ['data' ] = {
278
284
2 : {
279
285
'id' : u'1' ,
@@ -339,6 +345,7 @@ def test_008_badly_formed_quotes():
339
345
wanted = {}
340
346
wanted ['uri' ] = u'file://test.badquote?geomType=none"e="&type=csv&escape="'
341
347
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' , 'text' ]
348
+ wanted ['geometryType' ] = 4
342
349
wanted ['data' ] = {
343
350
4 : {
344
351
'id' : u'3' ,
@@ -363,6 +370,7 @@ def test_009_skip_lines():
363
370
wanted = {}
364
371
wanted ['uri' ] = u'file://test2.csv?geomType=none&skipLines=2&type=csv&useHeader=no'
365
372
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' ]
373
+ wanted ['geometryType' ] = 4
366
374
wanted ['data' ] = {
367
375
3 : {
368
376
'id' : u'3' ,
@@ -382,6 +390,7 @@ def test_010_read_coordinates():
382
390
wanted = {}
383
391
wanted ['uri' ] = u'file://testpt.csv?yField=geom_y&xField=geom_x&type=csv'
384
392
wanted ['fieldTypes' ] = ['integer' , 'text' , 'double' , 'double' ]
393
+ wanted ['geometryType' ] = 0
385
394
wanted ['data' ] = {
386
395
2 : {
387
396
'id' : u'1' ,
@@ -421,6 +430,7 @@ def test_011_read_wkt():
421
430
wanted = {}
422
431
wanted ['uri' ] = u'file://testwkt.csv?delimiter=|&type=csv&wktField=geom_wkt'
423
432
wanted ['fieldTypes' ] = ['integer' , 'text' ]
433
+ wanted ['geometryType' ] = 0
424
434
wanted ['data' ] = {
425
435
2 : {
426
436
'id' : u'1' ,
@@ -467,6 +477,7 @@ def test_012_read_wkt_point():
467
477
wanted = {}
468
478
wanted ['uri' ] = u'file://testwkt.csv?geomType=point&delimiter=|&type=csv&wktField=geom_wkt'
469
479
wanted ['fieldTypes' ] = ['integer' , 'text' ]
480
+ wanted ['geometryType' ] = 0
470
481
wanted ['data' ] = {
471
482
2 : {
472
483
'id' : u'1' ,
@@ -513,6 +524,7 @@ def test_013_read_wkt_line():
513
524
wanted = {}
514
525
wanted ['uri' ] = u'file://testwkt.csv?geomType=line&delimiter=|&type=csv&wktField=geom_wkt'
515
526
wanted ['fieldTypes' ] = ['integer' , 'text' ]
527
+ wanted ['geometryType' ] = 1
516
528
wanted ['data' ] = {
517
529
4 : {
518
530
'id' : u'3' ,
@@ -559,6 +571,7 @@ def test_014_read_wkt_polygon():
559
571
wanted = {}
560
572
wanted ['uri' ] = u'file://testwkt.csv?geomType=polygon&delimiter=|&type=csv&wktField=geom_wkt'
561
573
wanted ['fieldTypes' ] = ['integer' , 'text' ]
574
+ wanted ['geometryType' ] = 2
562
575
wanted ['data' ] = {
563
576
6 : {
564
577
'id' : u'5' ,
@@ -587,6 +600,7 @@ def test_015_read_dms_xy():
587
600
wanted = {}
588
601
wanted ['uri' ] = u'file://testdms.csv?yField=lat&xField=lon&type=csv&xyDms=yes'
589
602
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' , 'text' ]
603
+ wanted ['geometryType' ] = 0
590
604
wanted ['data' ] = {
591
605
3 : {
592
606
'id' : u'1' ,
@@ -758,6 +772,7 @@ def test_016_decimal_point():
758
772
wanted = {}
759
773
wanted ['uri' ] = u'file://testdp.csv?yField=geom_y&xField=geom_x&type=csv&delimiter=;&decimalPoint=,'
760
774
wanted ['fieldTypes' ] = ['integer' , 'text' , 'double' , 'double' , 'double' , 'text' ]
775
+ wanted ['geometryType' ] = 0
761
776
wanted ['data' ] = {
762
777
2 : {
763
778
'id' : u'1' ,
@@ -788,6 +803,7 @@ def test_017_regular_expression_1():
788
803
wanted = {}
789
804
wanted ['uri' ] = u'file://testre.txt?geomType=none&trimFields=Y&delimiter=RE(?:GEXP)?&type=regexp'
790
805
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' , 'text' ]
806
+ wanted ['geometryType' ] = 4
791
807
wanted ['data' ] = {
792
808
2 : {
793
809
'id' : u'1' ,
@@ -814,6 +830,7 @@ def test_018_regular_expression_2():
814
830
wanted = {}
815
831
wanted ['uri' ] = u'file://testre.txt?geomType=none&trimFields=Y&delimiter=(RE)(GEXP)?&type=regexp'
816
832
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' , 'text' , 'text' , 'text' , 'text' , 'text' , 'text' , 'text' ]
833
+ wanted ['geometryType' ] = 4
817
834
wanted ['data' ] = {
818
835
2 : {
819
836
'id' : u'1' ,
@@ -852,6 +869,7 @@ def test_019_regular_expression_3():
852
869
wanted = {}
853
870
wanted ['uri' ] = u'file://testre2.txt?geomType=none&trimFields=Y&delimiter=^(.{5})(.{30})(.{5,})&type=regexp'
854
871
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' ]
872
+ wanted ['geometryType' ] = 4
855
873
wanted ['data' ] = {
856
874
2 : {
857
875
'id' : u'1' ,
@@ -881,6 +899,7 @@ def test_020_regular_expression_4():
881
899
wanted = {}
882
900
wanted ['uri' ] = u'file://testre3.txt?geomType=none&delimiter=x?&type=regexp'
883
901
wanted ['fieldTypes' ] = ['text' , 'text' , 'text' , 'text' , 'text' , 'text' , 'text' ]
902
+ wanted ['geometryType' ] = 4
884
903
wanted ['data' ] = {
885
904
2 : {
886
905
'id' : u'f' ,
@@ -904,6 +923,7 @@ def test_021_regular_expression_5():
904
923
wanted = {}
905
924
wanted ['uri' ] = u'file://testre3.txt?geomType=none&delimiter=\\ b&type=regexp'
906
925
wanted ['fieldTypes' ] = ['text' , 'text' , 'text' ]
926
+ wanted ['geometryType' ] = 4
907
927
wanted ['data' ] = {
908
928
2 : {
909
929
'id' : u'fi' ,
@@ -923,6 +943,7 @@ def test_022_utf8_encoded_file():
923
943
wanted = {}
924
944
wanted ['uri' ] = u'file://testutf8.csv?geomType=none&delimiter=|&type=csv&encoding=utf-8'
925
945
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' ]
946
+ wanted ['geometryType' ] = 4
926
947
wanted ['data' ] = {
927
948
2 : {
928
949
'id' : u'1' ,
@@ -940,6 +961,7 @@ def test_023_latin1_encoded_file():
940
961
wanted = {}
941
962
wanted ['uri' ] = u'file://testlatin1.csv?geomType=none&delimiter=|&type=csv&encoding=latin1'
942
963
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' ]
964
+ wanted ['geometryType' ] = 4
943
965
wanted ['data' ] = {
944
966
2 : {
945
967
'id' : u'1' ,
@@ -957,6 +979,7 @@ def test_024_filter_rect_xy():
957
979
wanted = {}
958
980
wanted ['uri' ] = u'file://testextpt.txt?yField=y&delimiter=|&type=csv&xField=x'
959
981
wanted ['fieldTypes' ] = ['integer' , 'text' , 'integer' , 'integer' ]
982
+ wanted ['geometryType' ] = 0
960
983
wanted ['data' ] = {
961
984
2 : {
962
985
'id' : u'1' ,
@@ -1001,6 +1024,7 @@ def test_025_filter_rect_wkt():
1001
1024
wanted = {}
1002
1025
wanted ['uri' ] = u'file://testextw.txt?delimiter=|&type=csv&wktField=wkt'
1003
1026
wanted ['fieldTypes' ] = ['integer' , 'text' ]
1027
+ wanted ['geometryType' ] = 1
1004
1028
wanted ['data' ] = {
1005
1029
2 : {
1006
1030
'id' : u'1' ,
@@ -1061,6 +1085,7 @@ def test_026_filter_fid():
1061
1085
wanted = {}
1062
1086
wanted ['uri' ] = u'file://test.csv?geomType=none&type=csv'
1063
1087
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' , 'text' , 'text' ]
1088
+ wanted ['geometryType' ] = 4
1064
1089
wanted ['data' ] = {
1065
1090
3 : {
1066
1091
'id' : u'2' ,
@@ -1100,6 +1125,7 @@ def test_027_filter_attributes():
1100
1125
wanted = {}
1101
1126
wanted ['uri' ] = u'file://test.csv?geomType=none&type=csv'
1102
1127
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' , 'text' , 'text' ]
1128
+ wanted ['geometryType' ] = 4
1103
1129
wanted ['data' ] = {
1104
1130
2 : {
1105
1131
'id' : u'None' ,
@@ -1209,6 +1235,7 @@ def test_028_substring_test():
1209
1235
wanted = {}
1210
1236
wanted ['uri' ] = u'file://test.csv?geomType=none&type=csv&subset=id%20%25%202%20%3D%201'
1211
1237
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' , 'text' , 'text' ]
1238
+ wanted ['geometryType' ] = 4
1212
1239
wanted ['data' ] = {
1213
1240
2 : {
1214
1241
'id' : u'1' ,
@@ -1246,6 +1273,7 @@ def test_029_file_watcher():
1246
1273
wanted = {}
1247
1274
wanted ['uri' ] = u'file://file?geomType=none&type=csv&watchFile=yes'
1248
1275
wanted ['fieldTypes' ] = ['integer' , 'text' ]
1276
+ wanted ['geometryType' ] = 4
1249
1277
wanted ['data' ] = {
1250
1278
3 : {
1251
1279
'id' : u'2' ,
@@ -1359,6 +1387,7 @@ def test_030_filter_rect_xy_spatial_index():
1359
1387
wanted = {}
1360
1388
wanted ['uri' ] = u'file://testextpt.txt?spatialIndex=Y&yField=y&delimiter=|&type=csv&xField=x'
1361
1389
wanted ['fieldTypes' ] = ['integer' , 'text' , 'integer' , 'integer' ]
1390
+ wanted ['geometryType' ] = 0
1362
1391
wanted ['data' ] = {
1363
1392
2 : {
1364
1393
'id' : u'1' ,
@@ -1547,6 +1576,7 @@ def test_031_filter_rect_wkt_spatial_index():
1547
1576
wanted = {}
1548
1577
wanted ['uri' ] = u'file://testextw.txt?spatialIndex=Y&delimiter=|&type=csv&wktField=wkt'
1549
1578
wanted ['fieldTypes' ] = ['integer' , 'text' ]
1579
+ wanted ['geometryType' ] = 1
1550
1580
wanted ['data' ] = {
1551
1581
2 : {
1552
1582
'id' : u'1' ,
@@ -1679,6 +1709,7 @@ def test_032_filter_rect_wkt_create_spatial_index():
1679
1709
wanted = {}
1680
1710
wanted ['uri' ] = u'file://testextw.txt?delimiter=|&type=csv&wktField=wkt'
1681
1711
wanted ['fieldTypes' ] = ['integer' , 'text' ]
1712
+ wanted ['geometryType' ] = 1
1682
1713
wanted ['data' ] = {
1683
1714
2 : {
1684
1715
'id' : u'1' ,
@@ -1877,6 +1908,7 @@ def test_033_reset_subset_string():
1877
1908
wanted = {}
1878
1909
wanted ['uri' ] = u'file://test.csv?geomType=none&type=csv'
1879
1910
wanted ['fieldTypes' ] = ['integer' , 'text' , 'text' , 'text' , 'text' ]
1911
+ wanted ['geometryType' ] = 4
1880
1912
wanted ['data' ] = {
1881
1913
2 : {
1882
1914
'id' : u'1' ,
@@ -2040,6 +2072,7 @@ def test_034_csvt_file():
2040
2072
wanted = {}
2041
2073
wanted ['uri' ] = u'file://testcsvt.csv?geomType=none&type=csv'
2042
2074
wanted ['fieldTypes' ] = ['integer' , 'text' , 'integer' , 'double' , 'text' , 'text' , 'text' , 'text' , 'text' , 'text' , 'longlong' , 'longlong' ]
2075
+ wanted ['geometryType' ] = 4
2043
2076
wanted ['data' ] = {
2044
2077
2 : {
2045
2078
'id' : u'1' ,
@@ -2082,6 +2115,7 @@ def test_035_csvt_file2():
2082
2115
wanted = {}
2083
2116
wanted ['uri' ] = u'file://testcsvt2.txt?geomType=none&delimiter=|&type=csv'
2084
2117
wanted ['fieldTypes' ] = ['integer' , 'text' , 'integer' , 'double' , 'integer' , 'text' , 'integer' ]
2118
+ wanted ['geometryType' ] = 4
2085
2119
wanted ['data' ] = {
2086
2120
2 : {
2087
2121
'id' : u'1' ,
@@ -2114,6 +2148,7 @@ def test_036_csvt_file_invalid_types():
2114
2148
wanted = {}
2115
2149
wanted ['uri' ] = u'file://testcsvt3.csv?geomType=none&type=csv'
2116
2150
wanted ['fieldTypes' ] = ['integer' , 'text' , 'integer' , 'double' , 'integer' , 'text' , 'text' ]
2151
+ wanted ['geometryType' ] = 4
2117
2152
wanted ['data' ] = {
2118
2153
2 : {
2119
2154
'id' : u'1' ,
@@ -2149,6 +2184,7 @@ def test_037_csvt_file_invalid_file():
2149
2184
wanted = {}
2150
2185
wanted ['uri' ] = u'file://testcsvt4.csv?geomType=none&type=csv'
2151
2186
wanted ['fieldTypes' ] = ['integer' , 'text' , 'integer' , 'double' , 'integer' , 'text' , 'text' ]
2187
+ wanted ['geometryType' ] = 4
2152
2188
wanted ['data' ] = {
2153
2189
2 : {
2154
2190
'id' : u'1' ,
@@ -2181,6 +2217,7 @@ def test_038_type_inference():
2181
2217
wanted = {}
2182
2218
wanted ['uri' ] = u'file://testtypes.csv?yField=lat&xField=lon&type=csv'
2183
2219
wanted ['fieldTypes' ] = ['text' , 'double' , 'double' , 'text' , 'text' , 'integer' , 'longlong' , 'double' , 'text' ]
2220
+ wanted ['geometryType' ] = 0
2184
2221
wanted ['data' ] = {
2185
2222
2 : {
2186
2223
'id' : u'line1' ,
@@ -2269,3 +2306,49 @@ def test_038_type_inference():
2269
2306
}
2270
2307
wanted ['log' ] = []
2271
2308
return wanted
2309
+
2310
+
2311
+ def test_039_issue_13749 ():
2312
+ wanted = {}
2313
+ wanted ['uri' ] = u'file://test13749.csv?yField=geom_y&xField=geom_x&type=csv'
2314
+ wanted ['fieldTypes' ] = ['integer' , 'text' , 'double' , 'double' ]
2315
+ wanted ['geometryType' ] = 0
2316
+ wanted ['data' ] = {
2317
+ 2 : {
2318
+ 'id' : u'1' ,
2319
+ 'description' : u'No geom' ,
2320
+ 'geom_x' : u'NULL' ,
2321
+ 'geom_y' : u'NULL' ,
2322
+ '#fid' : 2 ,
2323
+ '#geometry' : 'None' ,
2324
+ },
2325
+ 3 : {
2326
+ 'id' : u'2' ,
2327
+ 'description' : u'Point1' ,
2328
+ 'geom_x' : u'11.0' ,
2329
+ 'geom_y' : u'22.0' ,
2330
+ '#fid' : 3 ,
2331
+ '#geometry' : 'Point (11 22)' ,
2332
+ },
2333
+ 4 : {
2334
+ 'id' : u'3' ,
2335
+ 'description' : u'Point2' ,
2336
+ 'geom_x' : u'15.0' ,
2337
+ 'geom_y' : u'23.0' ,
2338
+ '#fid' : 4 ,
2339
+ '#geometry' : 'Point (15 23)' ,
2340
+ },
2341
+ 5 : {
2342
+ 'id' : u'4' ,
2343
+ 'description' : u'Point3' ,
2344
+ 'geom_x' : u'13.0' ,
2345
+ 'geom_y' : u'23.0' ,
2346
+ '#fid' : 5 ,
2347
+ '#geometry' : 'Point (13 23)' ,
2348
+ },
2349
+ }
2350
+ wanted ['log' ] = [
2351
+ u'Errors in file test13749.csv' ,
2352
+ u'1 records have missing geometry definitions' ,
2353
+ ]
2354
+ return wanted
0 commit comments