Exemple #1
0
    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')
        ])
Exemple #2
0
    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)