def test_model_allow_empty(self): """Test model with empty entry""" model = QgsProviderConnectionModel('ogr') self.assertEqual(model.rowCount(), 0) model.setAllowEmptyConnection(True) self.assertEqual(model.rowCount(), 1) self.assertFalse(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole)) self.assertTrue(model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleEmpty)) md = QgsProviderRegistry.instance().providerMetadata('ogr') conn = md.createConnection(self.gpkg_path, {}) md.saveConnection(conn, 'qgis_test1') model.setAllowEmptyConnection(False) model.setAllowEmptyConnection(False) self.assertEqual(model.rowCount(), 1) self.assertEqual(model.columnCount(), 1) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test1') self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.ToolTipRole), self.gpkg_path) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleConnectionName), 'qgis_test1') self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleUri), self.gpkg_path) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleConfiguration), {}) self.assertFalse(model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleEmpty)) model.setAllowEmptyConnection(True) model.setAllowEmptyConnection(True) self.assertEqual(model.rowCount(), 2) self.assertFalse(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole)) self.assertFalse(model.data(model.index(0, 0, QModelIndex()), Qt.ToolTipRole)) self.assertFalse(model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleConnectionName)) self.assertFalse(model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleUri)) self.assertFalse(model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleConfiguration)) self.assertTrue(model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleEmpty)) self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test1') self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.ToolTipRole), self.gpkg_path) self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsProviderConnectionModel.RoleConnectionName), 'qgis_test1') self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsProviderConnectionModel.RoleUri), self.gpkg_path) self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsProviderConnectionModel.RoleConfiguration), {}) self.assertFalse(model.data(model.index(1, 0, QModelIndex()), QgsProviderConnectionModel.RoleEmpty)) md.saveConnection(conn, 'qgis_test1') self.assertEqual(model.rowCount(), 2) self.assertFalse(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole)) self.assertTrue(model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleEmpty)) self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test1') self.assertFalse(model.data(model.index(1, 0, QModelIndex()), QgsProviderConnectionModel.RoleEmpty)) model.setAllowEmptyConnection(False) self.assertEqual(model.rowCount(), 1) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test1') self.assertFalse(model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleEmpty)) model.setAllowEmptyConnection(True) conn2 = md.createConnection(self.gpkg_path2, {}) md.saveConnection(conn2, 'qgis_test2') self.assertEqual(model.rowCount(), 3) self.assertFalse(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole)) self.assertTrue(model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleEmpty)) self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test1') self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.ToolTipRole), self.gpkg_path) self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsProviderConnectionModel.RoleConnectionName), 'qgis_test1') self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsProviderConnectionModel.RoleUri), self.gpkg_path) self.assertFalse(model.data(model.index(1, 0, QModelIndex()), QgsProviderConnectionModel.RoleEmpty)) self.assertEqual(model.data(model.index(2, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test2') self.assertEqual(model.data(model.index(2, 0, QModelIndex()), Qt.ToolTipRole), self.gpkg_path2) self.assertEqual(model.data(model.index(2, 0, QModelIndex()), QgsProviderConnectionModel.RoleConnectionName), 'qgis_test2') self.assertEqual(model.data(model.index(2, 0, QModelIndex()), QgsProviderConnectionModel.RoleUri), self.gpkg_path2) self.assertFalse(model.data(model.index(2, 0, QModelIndex()), QgsProviderConnectionModel.RoleEmpty)) model.setAllowEmptyConnection(False) self.assertEqual(model.rowCount(), 2) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test1') self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test2') model.setAllowEmptyConnection(True) md.deleteConnection('qgis_test1') self.assertEqual(model.rowCount(), 2) self.assertFalse(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole)) self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test2') model.setAllowEmptyConnection(False) self.assertEqual(model.rowCount(), 1) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test2')
def test_model(self): """Test model functionality""" md = QgsProviderRegistry.instance().providerMetadata('ogr') conn = md.createConnection(self.gpkg_path, {}) md.saveConnection(conn, 'qgis_test1') model = QgsProviderConnectionModel('ogr') self.assertEqual(model.rowCount(), 1) self.assertEqual(model.columnCount(), 1) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test1') self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.ToolTipRole), self.gpkg_path) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleConnectionName), 'qgis_test1') self.assertEqual( model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleUri), self.gpkg_path) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleConfiguration), {}) md.saveConnection(conn, 'qgis_test1') self.assertEqual(model.rowCount(), 1) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test1') conn2 = md.createConnection(self.gpkg_path2, {}) md.saveConnection(conn2, 'qgis_test2') self.assertEqual(model.rowCount(), 2) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test1') self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.ToolTipRole), self.gpkg_path) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleConnectionName), 'qgis_test1') self.assertEqual( model.data(model.index(0, 0, QModelIndex()), QgsProviderConnectionModel.RoleUri), self.gpkg_path) self.assertEqual( model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test2') self.assertEqual( model.data(model.index(1, 0, QModelIndex()), Qt.ToolTipRole), self.gpkg_path2) self.assertEqual( model.data(model.index(1, 0, QModelIndex()), QgsProviderConnectionModel.RoleConnectionName), 'qgis_test2') self.assertEqual( model.data(model.index(1, 0, QModelIndex()), QgsProviderConnectionModel.RoleUri), self.gpkg_path2) md.deleteConnection('qgis_test1') self.assertEqual(model.rowCount(), 1) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'qgis_test2') md.deleteConnection('qgis_test2')