def test_relationById(self): """ test retrieving relation by id""" manager = QgsRelationManager() rel = manager.relation('does not exist') self.assertFalse(rel.isValid()) # add two relations rel = self.createRelation() rel.setId('rel1') rel.setName('Relation Number One') assert rel.isValid() manager.addRelation(rel) rel = self.createRelation() rel.setId('rel2') rel.setName('Relation Number Two') assert rel.isValid() manager.addRelation(rel) rel = manager.relation('does not exist') self.assertFalse(rel.isValid()) rel = manager.relation('rel1') self.assertEqual(rel.id(), 'rel1') rel = manager.relation('rel2') self.assertEqual(rel.id(), 'rel2')
def test_addRelation(self): """ test adding relations to a manager """ manager = QgsRelationManager() relations = manager.relations() self.assertEqual(len(relations), 0) rel = self.createRelation() rel.setId('rel1') rel.setName('Relation Number One') assert rel.isValid() manager.addRelation(rel) relations = manager.relations() self.assertEqual(len(relations), 1) self.assertEqual(relations['rel1'].id(), 'rel1') rel = self.createRelation() rel.setId('rel2') rel.setName('Relation Number Two') assert rel.isValid() manager.addRelation(rel) relations = manager.relations() self.assertEqual(len(relations), 2) ids = [r.id() for r in list(relations.values())] self.assertEqual(set(ids), set(['rel1', 'rel2']))
def test_relationByName(self): """ test retrieving relations by name""" manager = QgsRelationManager() rels = manager.relationsByName('does not exist') self.assertEqual(rels, []) # add some relations rel = self.createRelation() rel.setId('rel1') rel.setName('my relation') assert rel.isValid() manager.addRelation(rel) rel = self.createRelation() rel.setId('rel2') rel.setName('dupe name') assert rel.isValid() manager.addRelation(rel) rel = self.createRelation() rel.setId('rel3') rel.setName('dupe name') assert rel.isValid() manager.addRelation(rel) rels = manager.relationsByName('does not exist') self.assertEqual(rels, []) rels = manager.relationsByName('my relation') ids = [r.id() for r in rels] self.assertEqual(set(ids), set(['rel1'])) # case insensitive rels = manager.relationsByName('My RelAtion') ids = [r.id() for r in rels] self.assertEqual(set(ids), set(['rel1'])) # multiple results rels = manager.relationsByName('dupe name') ids = [r.id() for r in rels] self.assertEqual(set(ids), set(['rel2', 'rel3']))