Skip to content
Snippets Groups Projects
test_layerproperties.py 3.07 KiB
Newer Older
# noinspection PyPep8Naming
import os, sys, re
from qgis.core import *
from qgis.gui import *
from timeseriesviewer.tests import initQgisApplication, testRasterFiles, TestObjects
import unittest, tempfile

from timeseriesviewer.layerproperties import *
from timeseriesviewer import DIR_REPO
resourceDir = os.path.join(DIR_REPO, 'qgisresources')
QGIS_APP = initQgisApplication(qgisResourceDir=resourceDir)
SHOW_GUI = True


QgsGui.editorWidgetRegistry().initEditors()


class TestLayerproperties(unittest.TestCase):

    def createVectorLayer(self) -> QgsVectorLayer:
        lyr = TestObjects.createVectorLayer()
        self.assertIsInstance(lyr, QgsVectorLayer)
        self.assertTrue(lyr.featureCount() > 0)
        lyr.startEditing()
        lyr.addAttribute(QgsField('sensor', QVariant.String, 'varchar'))
        lyr.addAttribute(QgsField('date', QVariant.String, 'varchar'))
        lyr.addAttribute(QgsField('DOY', QVariant.Int, 'int'))
        lyr.addAttribute(QgsField('decyr', QVariant.Double, 'double'))
        lyr.addAttribute(QgsField('class1l', QVariant.Int, 'int'))
        lyr.addAttribute(QgsField('class1n', QVariant.String, 'varchar'))
        lyr.addAttribute(QgsField('class2l', QVariant.Int, 'int'))
        lyr.addAttribute(QgsField('class2n', QVariant.String, 'varchar'))
        assert lyr.commitChanges()
        names = lyr.fields().names()

        return lyr

    def test_LabelFieldModel(self):

        lyr = self.createVectorLayer()

        w = QTreeView()

        fm = LabelFieldModel(w)
        fm.setLayer(lyr)
        self.assertEqual(fm.layer(), lyr)

        newName = 'Layer Fields'
        fm.setHeaderData(0, Qt.Horizontal, newName, role=Qt.EditRole)
        self.assertEqual(newName, fm.headerData(0, Qt.Horizontal))

        w.setModel(fm)
        w.show()


        if SHOW_GUI:
            QGIS_APP.exec_()

    def test_FieldConfigEditorWidget(self):


        lyr = self.createVectorLayer()

        w = FieldConfigEditorWidget(None, lyr, 3)
        self.assertIsInstance(w, FieldConfigEditorWidget)
        w.show()

        conf1 = w.currentFieldConfig()
        self.assertEqual(conf1.config(), w.mInitialConf)
        self.assertEqual(conf1.factoryKey(), w.mInitialFactoryKey)
        w.setFactory('CheckBox')
        conf2 = w.currentFieldConfig()

        self.assertTrue(conf1 != conf2)
        self.assertTrue(w.changed())
        w.setFactory(conf1.factoryKey())

        conf3 = w.currentFieldConfig()
        self.assertEqual(conf3.factoryKey(), conf1.factoryKey())

        self.assertFalse(w.changed())

        if SHOW_GUI:
            QGIS_APP.exec_()

Benjamin Jakimow's avatar
Benjamin Jakimow committed

    def test_LayerFieldConfigEditorWidget(self):

        lyr = self.createVectorLayer()

        w = LayerFieldConfigEditorWidget(None)
        self.assertIsInstance(w, LayerFieldConfigEditorWidget)

        self.assertTrue(w.layer() == None)
        w.setLayer(lyr)
        self.assertTrue(w.layer() == lyr)
        w.setLayer(None)
        self.assertTrue(w.layer() == None)

        if SHOW_GUI:
Benjamin Jakimow's avatar
Benjamin Jakimow committed
            w.show()
            QGIS_APP.exec_()

if __name__ == "__main__":
    SHOW_GUI = False
    unittest.main()