コード例 #1
0
    def testOgrDriverList(self):
        # test with drivers in recommended order
        drivers = QgsVectorFileWriter.ogrDriverList(
            QgsVectorFileWriter.SortRecommended)
        self.assertEqual(drivers[0].longName, 'GeoPackage')
        self.assertEqual(drivers[0].driverName, 'GPKG')
        self.assertEqual(drivers[1].longName, 'ESRI Shapefile')
        self.assertEqual(drivers[1].driverName, 'ESRI Shapefile')
        self.assertTrue('ODS' in [f.driverName for f in drivers])

        # ensure that XLSX comes before SQLite, because we should sort on longName, not driverName!
        ms_xlsx_index = next(i for i, v in enumerate(drivers)
                             if v.driverName == 'XLSX')
        sqlite_index = next(i for i, v in enumerate(drivers)
                            if v.driverName == 'SQLite')
        self.assertLess(ms_xlsx_index, sqlite_index)

        self.assertIn('[XLSX]', drivers[ms_xlsx_index].longName)

        # alphabetical sorting
        drivers2 = QgsVectorFileWriter.ogrDriverList(
            QgsVectorFileWriter.VectorFormatOptions())
        self.assertTrue(drivers2[0].longName < drivers2[1].longName)
        self.assertCountEqual([d.driverName for d in drivers],
                              [d.driverName for d in drivers2])
        self.assertNotEqual(drivers2[0].driverName, 'GPKG')

        # skip non-spatial
        formats = QgsVectorFileWriter.ogrDriverList(
            QgsVectorFileWriter.SkipNonSpatialFormats)
        self.assertFalse('ODS' in [f.driverName for f in formats])
コード例 #2
0
    def testSupportedFiltersAndFormat(self):
        # test with formats in recommended order
        formats = QgsVectorFileWriter.supportedFiltersAndFormats(
            QgsVectorFileWriter.SortRecommended)
        self.assertEqual(formats[0].filterString, 'GeoPackage (*.gpkg *.GPKG)')
        self.assertEqual(formats[0].driverName, 'GPKG')
        self.assertEqual(formats[0].globs, ['*.gpkg'])
        self.assertEqual(formats[1].filterString,
                         'ESRI Shapefile (*.shp *.SHP)')
        self.assertEqual(formats[1].driverName, 'ESRI Shapefile')
        self.assertEqual(formats[1].globs, ['*.shp'])
        self.assertTrue('ODS' in [f.driverName for f in formats])

        interlis_format = [f for f in formats
                           if f.driverName == 'Interlis 2'][0]
        self.assertEqual(interlis_format.globs, ['*.xtf', '*.xml', '*.ili'])

        # alphabetical sorting
        formats2 = QgsVectorFileWriter.supportedFiltersAndFormats(
            QgsVectorFileWriter.VectorFormatOptions())
        self.assertTrue(formats2[0].driverName < formats2[1].driverName)
        self.assertCountEqual([f.driverName for f in formats],
                              [f.driverName for f in formats2])
        self.assertNotEqual(formats2[0].driverName, 'GeoPackage')

        # skip non-spatial
        formats = QgsVectorFileWriter.supportedFiltersAndFormats(
            QgsVectorFileWriter.SkipNonSpatialFormats)
        self.assertFalse('ODS' in [f.driverName for f in formats])
コード例 #3
0
    def testSupportedFormatExtensions(self):
        formats = QgsVectorFileWriter.supportedFormatExtensions()
        self.assertTrue('gpkg' in formats)
        self.assertFalse('exe' in formats)
        self.assertEqual(formats[0], 'gpkg')
        self.assertEqual(formats[1], 'shp')
        self.assertTrue('ods' in formats)
        self.assertTrue('xtf' in formats)
        self.assertTrue('ili' in formats)

        for i in range(2, len(formats) - 1):
            self.assertLess(formats[i].lower(), formats[i + 1].lower())

        # alphabetical sorting
        formats2 = QgsVectorFileWriter.supportedFormatExtensions(
            QgsVectorFileWriter.VectorFormatOptions())
        self.assertTrue(formats2[0] < formats2[1])
        self.assertCountEqual(formats, formats2)
        self.assertNotEqual(formats2[0], 'gpkg')
        for i in range(0, len(formats2) - 1):
            self.assertLess(formats2[i].lower(), formats2[i + 1].lower())

        formats = QgsVectorFileWriter.supportedFormatExtensions(
            QgsVectorFileWriter.SkipNonSpatialFormats)
        self.assertFalse('ods' in formats)
コード例 #4
0
    def testFileFilterString(self):
        formats = QgsVectorFileWriter.fileFilterString()
        self.assertTrue('gpkg' in formats)
        self.assertTrue('shp' in formats)
        self.assertTrue(formats.index('gpkg') < formats.index('shp'))
        self.assertTrue('ods' in formats)

        # alphabetical sorting
        formats2 = QgsVectorFileWriter.fileFilterString(QgsVectorFileWriter.VectorFormatOptions())
        self.assertNotEqual(formats.index('gpkg'), formats2.index('gpkg'))

        # hide non spatial
        formats = QgsVectorFileWriter.fileFilterString(QgsVectorFileWriter.SkipNonSpatialFormats)
        self.assertFalse('ods' in formats)
コード例 #5
0
    def testSupportedFormatExtensions(self):
        formats = QgsVectorFileWriter.supportedFormatExtensions()
        self.assertTrue('gpkg' in formats)
        self.assertFalse('exe' in formats)
        self.assertEqual(formats[0], 'gpkg')
        self.assertEqual(formats[1], 'shp')
        self.assertTrue('ods' in formats)

        # alphabetical sorting
        formats2 = QgsVectorFileWriter.supportedFormatExtensions(QgsVectorFileWriter.VectorFormatOptions())
        self.assertTrue(formats2[0] < formats2[1])
        self.assertCountEqual(formats, formats2)
        self.assertNotEqual(formats2[0], 'gpkg')

        formats = QgsVectorFileWriter.supportedFormatExtensions(QgsVectorFileWriter.SkipNonSpatialFormats)
        self.assertFalse('ods' in formats)
コード例 #6
0
    def testOgrDriverList(self):
        # test with drivers in recommended order
        drivers = QgsVectorFileWriter.ogrDriverList(QgsVectorFileWriter.SortRecommended)
        self.assertEqual(drivers[0].longName, 'GeoPackage')
        self.assertEqual(drivers[0].driverName, 'GPKG')
        self.assertEqual(drivers[1].longName, 'ESRI Shapefile')
        self.assertEqual(drivers[1].driverName, 'ESRI Shapefile')
        self.assertTrue('ODS' in [f.driverName for f in drivers])
        # alphabetical sorting
        drivers2 = QgsVectorFileWriter.ogrDriverList(QgsVectorFileWriter.VectorFormatOptions())
        self.assertTrue(drivers2[0].longName < drivers2[1].longName)
        self.assertCountEqual([d.driverName for d in drivers], [d.driverName for d in drivers2])
        self.assertNotEqual(drivers2[0].driverName, 'GPKG')

        # skip non-spatial
        formats = QgsVectorFileWriter.ogrDriverList(QgsVectorFileWriter.SkipNonSpatialFormats)
        self.assertFalse('ODS' in [f.driverName for f in formats])
コード例 #7
0
    def testFileFilterString(self):
        formats = QgsVectorFileWriter.fileFilterString()
        self.assertTrue('gpkg' in formats)
        self.assertTrue('shp' in formats)
        self.assertLess(formats.index('gpkg'), formats.index('shp'))
        self.assertTrue('ods' in formats)
        parts = formats.split(';;')
        for i in range(2, len(parts) - 1):
            self.assertLess(parts[i].lower(), parts[i + 1].lower())

        # alphabetical sorting
        formats2 = QgsVectorFileWriter.fileFilterString(QgsVectorFileWriter.VectorFormatOptions())
        self.assertNotEqual(formats.index('gpkg'), formats2.index('gpkg'))
        parts = formats2.split(';;')
        for i in range(len(parts) - 1):
            self.assertLess(parts[i].lower(), parts[i + 1].lower())

        # hide non spatial
        formats = QgsVectorFileWriter.fileFilterString(QgsVectorFileWriter.SkipNonSpatialFormats)
        self.assertFalse('ods' in formats)