|
@@ -127,7 +127,7 @@ def testListLayer(self): |
|
|
table = tables[0] |
|
|
self.assertEqual(table.name, 'testLayer') |
|
|
info = table.info() |
|
|
expected_html = """<div class="section"><h2>General info</h2><div><table><tr><td>Relation type: </td><td>Table </td></tr><tr><td>Rows: </td><td>1 </td></tr></table></div></div><div class="section"><h2>GeoPackage</h2><div><table><tr><td>Column: </td><td>geom </td></tr><tr><td>Geometry: </td><td>LINE STRING </td></tr><tr><td>Dimension: </td><td>XY </td></tr><tr><td>Spatial ref: </td><td>Undefined (-1) </td></tr><tr><td>Extent: </td><td>1.00000, 2.00000 - 3.00000, 4.00000 </td></tr></table><p><warning> No spatial index defined (<a href="action:spatialindex/create">create it</a>)</p></div></div><div class="section"><h2>Fields</h2><div><table class="header"><tr><th># </th><th>Name </th><th>Type </th><th>Null </th><th>Default </th></tr><tr><td>0 </td><td class="underline">fid </td><td>INTEGER </td><td>Y </td><td> </td></tr><tr><td>1 </td><td>geom </td><td>LINESTRING </td><td>Y </td><td> </td></tr><tr><td>2 </td><td>text_field </td><td>TEXT </td><td>Y </td><td> </td></tr></table></div></div>""" |
|
|
expected_html = """<div class="section"><h2>General info</h2><div><table><tr><td>Relation type: </td><td>Table </td></tr><tr><td>Rows: </td><td>1 </td></tr></table></div></div><div class="section"><h2>GeoPackage</h2><div><table><tr><td>Column: </td><td>geom </td></tr><tr><td>Geometry: </td><td>LINESTRING </td></tr><tr><td>Dimension: </td><td>XY </td></tr><tr><td>Spatial ref: </td><td>Undefined (-1) </td></tr><tr><td>Extent: </td><td>1.00000, 2.00000 - 3.00000, 4.00000 </td></tr></table><p><warning> No spatial index defined (<a href="action:spatialindex/create">create it</a>)</p></div></div><div class="section"><h2>Fields</h2><div><table class="header"><tr><th># </th><th>Name </th><th>Type </th><th>Null </th><th>Default </th></tr><tr><td>0 </td><td class="underline">fid </td><td>INTEGER </td><td>Y </td><td> </td></tr><tr><td>1 </td><td>geom </td><td>LINESTRING </td><td>Y </td><td> </td></tr><tr><td>2 </td><td>text_field </td><td>TEXT </td><td>Y </td><td> </td></tr></table></div></div>""" |
|
|
self.assertEqual(info.toHtml(), expected_html, info.toHtml()) |
|
|
|
|
|
connection.remove() |
|
@@ -389,5 +389,45 @@ def testNonSpatial(self): |
|
|
|
|
|
connection.remove() |
|
|
|
|
|
def testAllGeometryTypes(self): |
|
|
|
|
|
connection_name = 'testAllGeometryTypes' |
|
|
plugin = createDbPlugin('gpkg') |
|
|
uri = QgsDataSourceUri() |
|
|
|
|
|
test_gpkg = os.path.join(self.basetestpath, 'testAllGeometryTypes.gpkg') |
|
|
ds = ogr.GetDriverByName('GPKG').CreateDataSource(test_gpkg) |
|
|
ds.CreateLayer('testPoint', geom_type=ogr.wkbPoint) |
|
|
ds.CreateLayer('testLineString', geom_type=ogr.wkbLineString) |
|
|
ds.CreateLayer('testPolygon', geom_type=ogr.wkbPolygon) |
|
|
ds.CreateLayer('testMultiPoint', geom_type=ogr.wkbMultiPoint) |
|
|
ds.CreateLayer('testMultiLineString', geom_type=ogr.wkbMultiLineString) |
|
|
ds.CreateLayer('testMultiPolygon', geom_type=ogr.wkbMultiPolygon) |
|
|
ds.CreateLayer('testGeometryCollection', geom_type=ogr.wkbGeometryCollection) |
|
|
|
|
|
if int(gdal.VersionInfo('VERSION_NUM')) >= GDAL_COMPUTE_VERSION(2, 0, 0): |
|
|
ds.CreateLayer('testCircularString', geom_type=ogr.wkbCircularString) |
|
|
ds.CreateLayer('testCompoundCurve', geom_type=ogr.wkbCompoundCurve) |
|
|
ds.CreateLayer('testCurvePolygon', geom_type=ogr.wkbCurvePolygon) |
|
|
ds.CreateLayer('testMultiCurve', geom_type=ogr.wkbMultiCurve) |
|
|
ds.CreateLayer('testMultiSurface', geom_type=ogr.wkbMultiSurface) |
|
|
ds = None |
|
|
|
|
|
uri.setDatabase(test_gpkg) |
|
|
self.assertTrue(plugin.addConnection(connection_name, uri)) |
|
|
|
|
|
connection = createDbPlugin('gpkg', connection_name) |
|
|
connection.connect() |
|
|
|
|
|
db = connection.database() |
|
|
self.assertIsNotNone(db) |
|
|
|
|
|
tables = db.tables() |
|
|
for i in range(len(tables)): |
|
|
table = tables[i] |
|
|
info = table.info() |
|
|
|
|
|
connection.remove() |
|
|
|
|
|
if __name__ == '__main__': |
|
|
unittest.main() |