Пример #1
0
 def testFieldTooltipExtended(self):
     layer = QgsVectorLayer("Point?", "tooltip", "memory")
     f = QgsField('my_real', QVariant.Double, 'real', 8, 3, 'Comment text')
     layer.addExpressionField('1+1', f)
     layer.updateFields()
     self.assertEqual(QgsFieldModel.fieldToolTipExtended(QgsField('my_string', QVariant.String, 'string'), layer), '')
     self.assertEqual(QgsFieldModel.fieldToolTipExtended(f, layer), "<b>my_real</b><br><font style='font-family:monospace; white-space: nowrap;'>real(8, 3) NULL</font><br><em>Comment text</em><br><font style='font-family:monospace;'>1+1</font>")
     f.setAlias('my alias')
     constraints = f.constraints()
     constraints.setConstraint(QgsFieldConstraints.ConstraintUnique)
     f.setConstraints(constraints)
     self.assertEqual(QgsFieldModel.fieldToolTipExtended(f, layer), "<b>my alias</b> (my_real)<br><font style='font-family:monospace; white-space: nowrap;'>real(8, 3) NULL UNIQUE</font><br><em>Comment text</em><br><font style='font-family:monospace;'>1+1</font>")
Пример #2
0
    def test_field_to_json(self):
        field = QgsField('my name', QVariant.LongLong)
        field.setAlias('my alias')
        self.assertEqual(
            QgsArcGisRestUtils.fieldDefinitionToJson(field), {
                'alias': 'my alias',
                'editable': True,
                'name': 'my name',
                'nullable': True,
                'type': 'esriFieldTypeInteger'
            })
        field = QgsField('my name', QVariant.Int)
        self.assertEqual(
            QgsArcGisRestUtils.fieldDefinitionToJson(field), {
                'editable': True,
                'name': 'my name',
                'nullable': True,
                'type': 'esriFieldTypeSmallInteger'
            })
        field = QgsField('my name', QVariant.Double)
        self.assertEqual(
            QgsArcGisRestUtils.fieldDefinitionToJson(field), {
                'editable': True,
                'name': 'my name',
                'nullable': True,
                'type': 'esriFieldTypeDouble'
            })
        field = QgsField('my name', QVariant.String)
        self.assertEqual(
            QgsArcGisRestUtils.fieldDefinitionToJson(field), {
                'editable': True,
                'name': 'my name',
                'nullable': True,
                'type': 'esriFieldTypeString'
            })
        field = QgsField('my name', QVariant.DateTime)
        self.assertEqual(
            QgsArcGisRestUtils.fieldDefinitionToJson(field), {
                'editable': True,
                'name': 'my name',
                'nullable': True,
                'type': 'esriFieldTypeDate'
            })
        field = QgsField('my name', QVariant.ByteArray)
        self.assertEqual(
            QgsArcGisRestUtils.fieldDefinitionToJson(field), {
                'editable': True,
                'name': 'my name',
                'nullable': True,
                'type': 'esriFieldTypeBlob'
            })

        # unsupported type
        field = QgsField('my name', QVariant.Time)
        self.assertEqual(
            QgsArcGisRestUtils.fieldDefinitionToJson(field), {
                'editable': True,
                'name': 'my name',
                'nullable': True,
                'type': 'esriFieldTypeString'
            })

        # not nullable
        field = QgsField('my name', QVariant.Int)
        field_constraints = field.constraints()
        field_constraints.setConstraint(
            QgsFieldConstraints.Constraint.ConstraintNotNull)
        field.setConstraints(field_constraints)
        self.assertEqual(
            QgsArcGisRestUtils.fieldDefinitionToJson(field), {
                'editable': True,
                'name': 'my name',
                'nullable': False,
                'type': 'esriFieldTypeSmallInteger'
            })