def testCodedValueWidget(self): w = QgsFieldDomainWidget(Qgis.FieldDomainType.Coded) domain = w.createFieldDomain() self.assertIsInstance(domain, QgsCodedFieldDomain) self.assertEqual(domain.fieldType(), QVariant.String) self.assertEqual(domain.splitPolicy(), Qgis.FieldDomainSplitPolicy.DefaultValue) self.assertEqual(domain.mergePolicy(), Qgis.FieldDomainMergePolicy.DefaultValue) self.assertFalse(domain.values()) # set domain and test round trips domain = QgsCodedFieldDomain('name', 'desc', QVariant.Int, [ QgsCodedValue('1', 'aa'), QgsCodedValue('2', 'bb'), QgsCodedValue('3', 'cc') ]) domain.setSplitPolicy(Qgis.FieldDomainSplitPolicy.GeometryRatio) domain.setMergePolicy(Qgis.FieldDomainMergePolicy.Sum) w.setFieldDomain(domain) domain2 = w.createFieldDomain() self.assertIsInstance(domain2, QgsCodedFieldDomain) self.assertEqual(domain2.fieldType(), QVariant.Int) self.assertEqual(domain2.splitPolicy(), Qgis.FieldDomainSplitPolicy.GeometryRatio) self.assertEqual(domain2.mergePolicy(), Qgis.FieldDomainMergePolicy.Sum) self.assertEqual(domain2.values(), [ QgsCodedValue('1', 'aa'), QgsCodedValue('2', 'bb'), QgsCodedValue('3', 'cc') ])
def testCodedFieldDomain(self): domain = QgsCodedFieldDomain( 'name', 'desc', QVariant.Int, [QgsCodedValue(5, 'a'), QgsCodedValue(6, 'b')]) self.assertEqual(str(domain), '<QgsCodedFieldDomain: name>') self.assertEqual(domain.type(), Qgis.FieldDomainType.Coded) self.assertEqual(domain.name(), 'name') domain.setName('n') self.assertEqual(domain.name(), 'n') self.assertEqual(domain.description(), 'desc') domain.setDescription('desc 2') self.assertEqual(domain.description(), 'desc 2') self.assertEqual(domain.fieldType(), QVariant.Int) domain.setFieldType(QVariant.Double) self.assertEqual(domain.fieldType(), QVariant.Double) self.assertEqual(domain.values(), [QgsCodedValue(5, 'a'), QgsCodedValue(6, 'b')]) domain.setValues([QgsCodedValue(51, 'aa'), QgsCodedValue(61, 'bb')]) self.assertEqual(domain.values(), [QgsCodedValue(51, 'aa'), QgsCodedValue(61, 'bb')]) domain.setSplitPolicy(Qgis.FieldDomainSplitPolicy.GeometryRatio) self.assertEqual(domain.splitPolicy(), Qgis.FieldDomainSplitPolicy.GeometryRatio) domain.setMergePolicy(Qgis.FieldDomainMergePolicy.GeometryWeighted) self.assertEqual(domain.mergePolicy(), Qgis.FieldDomainMergePolicy.GeometryWeighted) d2 = domain.clone() self.assertEqual(d2.name(), 'n') self.assertEqual(d2.description(), 'desc 2') self.assertEqual(d2.fieldType(), QVariant.Double) self.assertEqual(d2.values(), [QgsCodedValue(51, 'aa'), QgsCodedValue(61, 'bb')]) self.assertEqual(d2.splitPolicy(), Qgis.FieldDomainSplitPolicy.GeometryRatio) self.assertEqual(d2.mergePolicy(), Qgis.FieldDomainMergePolicy.GeometryWeighted)