def test_removePolymorphicRelation(self): # tests addPolymorphicRelation/removePolymorphicRelation manager = QgsRelationManager() # initially the map should be empty self.assertFalse(manager.polymorphicRelations()) self.assertFalse(manager.relations()) 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()) self.assertFalse( manager.polymorphicRelation('poly_invalid_id').isValid()) self.assertListEqual( [r.polymorphicRelationId() for r in manager.relations().values()], []) manager.addPolymorphicRelation(poly_rel1) self.assertTrue(manager.polymorphicRelation('poly_rel1').isValid()) self.assertTrue( manager.polymorphicRelation('poly_rel1').hasEqualDefinition( poly_rel1)) self.assertListEqual( [r.polymorphicRelationId() for r in manager.relations().values()], [poly_rel1.id()]) manager.addPolymorphicRelation(poly_rel2) self.assertTrue(manager.polymorphicRelation('poly_rel2').isValid()) self.assertTrue( manager.polymorphicRelation('poly_rel2').hasEqualDefinition( poly_rel2)) self.assertListEqual( [r.polymorphicRelationId() for r in manager.relations().values()], [poly_rel1.id(), poly_rel2.id()]) manager.removePolymorphicRelation(poly_rel1.id()) self.assertFalse(manager.polymorphicRelation('poly_rel1').isValid()) self.assertTrue(manager.polymorphicRelation('poly_rel2').isValid()) self.assertListEqual( [r.polymorphicRelationId() for r in manager.relations().values()], [poly_rel2.id()]) manager.removePolymorphicRelation(poly_rel2.id()) self.assertFalse(manager.polymorphicRelation('poly_rel1').isValid()) self.assertFalse(manager.polymorphicRelation('poly_rel2').isValid()) self.assertListEqual( [r.polymorphicRelationId() for r in manager.relations().values()], [])