|
35 | 35 |
|
36 | 36 | from db_manager.db_plugins.postgis.plugin import PostGisDBPlugin, PGRasterTable
|
37 | 37 | from db_manager.db_plugins.postgis.plugin import PGDatabase
|
| 38 | +from db_manager.db_plugins.postgis.data_model import PGSqlResultModel |
38 | 39 | from db_manager.db_plugins.plugin import Table
|
39 | 40 | from db_manager.db_plugins.postgis.connector import PostGisDBConnector
|
40 | 41 |
|
@@ -125,6 +126,23 @@ def check_rasterTableGdalURI(expected_dbname):
|
125 | 126 |
|
126 | 127 | check_rasterTableGdalURI(expected_dbname)
|
127 | 128 |
|
| 129 | + # See http://issues.qgis.org/issues/16833 |
| 130 | + def test_unicodeInQuery(self): |
| 131 | + os.environ['PGDATABASE'] = self.testdb |
| 132 | + obj = QObject() # needs to be kept alive |
| 133 | + database = PGDatabase(obj, QgsDataSourceURI()) |
| 134 | + self.assertIsInstance(database, PGDatabase) |
| 135 | + # SQL as string literal |
| 136 | + res = database.sqlResultModel("SELECT 'é'::text", obj) |
| 137 | + self.assertIsInstance(res, PGSqlResultModel) |
| 138 | + dat = res.getData(0, 0) |
| 139 | + self.assertEqual(dat, u"é") |
| 140 | + # SQL as unicode literal |
| 141 | + res = database.sqlResultModel(u"SELECT 'é'::text", obj) |
| 142 | + self.assertIsInstance(res, PGSqlResultModel) |
| 143 | + dat = res.getData(0, 0) |
| 144 | + self.assertEqual(dat, u"é") |
| 145 | + |
128 | 146 |
|
129 | 147 | if __name__ == '__main__':
|
130 | 148 | unittest.main()
|
0 commit comments