Skip to content
Snippets Groups Projects
test_layerproperties.py 3.07 KiB
Newer Older
  • Learn to ignore specific revisions
  • # 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()