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_()
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)
QGIS_APP.exec_()
if __name__ == "__main__":
SHOW_GUI = False
unittest.main()