示例#1
0
    def test_polymorphicRelation(self):
        # tests addPolymorphicRelation/polymorphicRelation

        manager = QgsRelationManager()

        # initially the map should be empty
        self.assertFalse(manager.polymorphicRelations())

        poly_rel1 = self.createPolymorphicRelation()
        poly_rel1.setId('poly_rel1')
        poly_rel1.setName('Poly Rel 1')
        poly_rel2 = self.createPolymorphicRelation()
        poly_rel2.setId('poly_rel2')
        poly_rel2.setName('Poly Rel 2')

        # the relation should be valid now
        self.assertTrue(poly_rel1.isValid())
        self.assertTrue(poly_rel2.isValid())

        manager.addPolymorphicRelation(poly_rel1)
        manager.addPolymorphicRelation(poly_rel2)

        self.assertFalse(
            manager.polymorphicRelation('poly_invalid_id').isValid())
        self.assertTrue(manager.polymorphicRelation('poly_rel1').isValid())
        self.assertTrue(manager.polymorphicRelation('poly_rel2').isValid())
        self.assertTrue(
            manager.polymorphicRelation('poly_rel1').hasEqualDefinition(
                poly_rel1))
        self.assertTrue(
            manager.polymorphicRelation('poly_rel2').hasEqualDefinition(
                poly_rel2))
示例#2
0
    def test_setPolymorphicRelations(self):
        # tests polymorphicRelations/setPolymorphicRelations

        manager = QgsRelationManager()

        # initially the map should be empty
        self.assertListEqual(list(manager.polymorphicRelations()), [])

        poly_rel1 = self.createPolymorphicRelation()
        poly_rel1.setId('poly_rel1')
        poly_rel1.setName('Poly Rel 1')
        poly_rel2 = self.createPolymorphicRelation()
        poly_rel2.setId('poly_rel2')
        poly_rel2.setName('Poly Rel 2')
        poly_rel3 = self.createPolymorphicRelation()
        poly_rel3.setId('poly_rel3')
        poly_rel3.setName('Poly Rel 3')

        # the relation should be valid now
        self.assertTrue(poly_rel1.isValid())
        self.assertTrue(poly_rel2.isValid())
        self.assertTrue(poly_rel3.isValid())

        manager.setPolymorphicRelations([poly_rel1, poly_rel2, poly_rel3])

        # the relations should match
        self.assertListEqual(list(manager.polymorphicRelations()),
                             ['poly_rel1', 'poly_rel2', 'poly_rel3'])
        self.assertTrue(manager.polymorphicRelations()['poly_rel1'])
        self.assertTrue(manager.polymorphicRelations()['poly_rel2'])
        self.assertTrue(manager.polymorphicRelations()['poly_rel3'])
        self.assertTrue(manager.polymorphicRelations()
                        ['poly_rel1'].hasEqualDefinition(poly_rel1))
        self.assertTrue(manager.polymorphicRelations()
                        ['poly_rel2'].hasEqualDefinition(poly_rel2))
        self.assertTrue(manager.polymorphicRelations()
                        ['poly_rel3'].hasEqualDefinition(poly_rel3))

        manager.setPolymorphicRelations([poly_rel1])
        self.assertListEqual(list(manager.polymorphicRelations()),
                             ['poly_rel1'])
        manager.setPolymorphicRelations([])
        self.assertListEqual(list(manager.polymorphicRelations()), [])