mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-28 00:17:30 -05:00
Ensure created memory layers have unique source
Sometimes the layer source is used for "looser" comparison then layer ID
This commit is contained in:
parent
c484b505ce
commit
a517c683cd
@ -65,6 +65,8 @@ QgsVectorLayer *QgsMemoryProviderUtils::createMemoryLayer( const QString &name,
|
||||
{
|
||||
parts << QStringLiteral( "field=%1:%2" ).arg( field.name(), memoryLayerFieldType( field.type() ) );
|
||||
}
|
||||
// required so that source differs between memory layers
|
||||
parts << QStringLiteral( "uid=%1" ).arg( QUuid::createUuid().toString() );
|
||||
|
||||
QString uri = geomType + '?' + parts.join( '&' );
|
||||
|
||||
|
@ -349,6 +349,10 @@ class TestPyQgsMemoryProvider(unittest.TestCase, ProviderTestCase):
|
||||
self.assertEqual(layer.name(), 'my name')
|
||||
self.assertTrue(layer.fields().isEmpty())
|
||||
|
||||
# similar layers should have unique sources
|
||||
layer2 = QgsMemoryProviderUtils.createMemoryLayer('my name', QgsFields())
|
||||
self.assertNotEqual(layer.source(), layer2.source())
|
||||
|
||||
# geometry type
|
||||
layer = QgsMemoryProviderUtils.createMemoryLayer('my name', QgsFields(), QgsWkbTypes.Point)
|
||||
self.assertTrue(layer.isValid())
|
||||
|
Loading…
x
Reference in New Issue
Block a user