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>")
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' })