def testCurrentFilterExpression(self): """ Test creating an expression using the widget""" layer = QgsVectorLayer("Point?field=fldint:integer", "test", "memory") parent = QWidget() w = QgsDefaultSearchWidgetWrapper(layer, 0, parent) af = QgsAttributeFormEditorWidget(None, None) af.setSearchWidgetWrapper(w) # test that filter combines both current value in search widget wrapper and flags from search tool button w.lineEdit().setText('5.5') af.searchWidgetToolButton().setActiveFlags(QgsSearchWidgetWrapper.EqualTo) self.assertEqual(af.currentFilterExpression(), '"fldint"=5.5') af.searchWidgetToolButton().setActiveFlags(QgsSearchWidgetWrapper.NotEqualTo) self.assertEqual(af.currentFilterExpression(), '"fldint"<>5.5')
def testCurrentFilterExpression(self): """ Test creating an expression using the widget""" layer = QgsVectorLayer("Point?field=fldint:integer", "test", "memory") parent = QWidget() w = QgsDefaultSearchWidgetWrapper(layer, 0, parent) af = QgsAttributeFormEditorWidget(None, None) af.setSearchWidgetWrapper(w) # test that filter combines both current value in search widget wrapper and flags from search tool button w.lineEdit().setText('5.5') af.searchWidgetToolButton().setActiveFlags(QgsSearchWidgetWrapper.EqualTo) self.assertEqual(af.currentFilterExpression(), '"fldint"=5.5') af.searchWidgetToolButton().setActiveFlags(QgsSearchWidgetWrapper.NotEqualTo) self.assertEqual(af.currentFilterExpression(), '"fldint"<>5.5')
def testBetweenFilter(self): """ Test creating a between type filter """ layer = QgsVectorLayer("Point?field=fldtext:string&field=fldint:integer", "test", "memory") form = QgsAttributeForm(layer) af = QgsAttributeFormEditorWidget(None, form) af.createSearchWidgetWrappers("DateTime", 0, {}) d1 = af.findChildren(QDateTimeEdit)[0] d2 = af.findChildren(QDateTimeEdit)[1] d1.setDateTime(QDateTime(QDate(2013, 5, 6), QTime())) d2.setDateTime(QDateTime(QDate(2013, 5, 16), QTime())) af.searchWidgetToolButton().setActiveFlags(QgsSearchWidgetWrapper.Between) self.assertEqual(af.currentFilterExpression(), '"fldtext">=\'2013-05-06\' AND "fldtext"<=\'2013-05-16\'') af.searchWidgetToolButton().setActiveFlags(QgsSearchWidgetWrapper.IsNotBetween) self.assertEqual(af.currentFilterExpression(), '"fldtext"<\'2013-05-06\' OR "fldtext">\'2013-05-16\'')
def testBetweenFilter(self): """ Test creating a between type filter """ layer = QgsVectorLayer("Point?field=fldtext:string&field=fldint:integer", "test", "memory") form = QgsAttributeForm(layer) af = QgsAttributeFormEditorWidget(None, form) af.createSearchWidgetWrappers("DateTime", 0, {}) d1 = af.findChildren(QDateTimeEdit)[0] d2 = af.findChildren(QDateTimeEdit)[1] d1.setDateTime(QDateTime(QDate(2013, 5, 6), QTime())) d2.setDateTime(QDateTime(QDate(2013, 5, 16), QTime())) af.searchWidgetToolButton().setActiveFlags(QgsSearchWidgetWrapper.Between) self.assertEqual(af.currentFilterExpression(), '"fldtext">=\'2013-05-06\' AND "fldtext"<=\'2013-05-16\'') af.searchWidgetToolButton().setActiveFlags(QgsSearchWidgetWrapper.IsNotBetween) self.assertEqual(af.currentFilterExpression(), '"fldtext"<\'2013-05-06\' OR "fldtext">\'2013-05-16\'')