Exemple #1
0
    def test_layer_resolving(self):
        provider = QgsRasterDemTerrainProvider()

        # add raster layer to a project
        p = QgsProject()
        rl = QgsRasterLayer(os.path.join(unitTestDataPath(), 'float1-16.tif'),
                            'rl')
        self.assertTrue(rl.isValid())
        p.addMapLayer(rl)

        provider.setLayer(rl)
        p.elevationProperties().setTerrainProvider(provider)

        tmp_dir = QTemporaryDir()
        tmp_project_file = "{}/project.qgs".format(tmp_dir.path())
        self.assertTrue(p.write(tmp_project_file))

        project2 = QgsProject()
        self.assertTrue(project2.read(tmp_project_file))

        self.assertIsInstance(project2.elevationProperties().terrainProvider(),
                              QgsRasterDemTerrainProvider)
        # make sure layer is resolved
        self.assertEqual(
            project2.elevationProperties().terrainProvider().layer().id(),
            rl.id())