class HarvesterDataTest(SeecrTestCase): def setUp(self): SeecrTestCase.setUp(self) open(join(self.tempdir, 'adomain.domain'), 'w').write("""{ "identifier": "adomain", "mappingIds": ["ignored MAPPING"], "targetIds": ["ignored TARGET"], "repositoryGroupIds": ["Group1", "Group2"] }""") open(join(self.tempdir, 'adomain.Group1.repositoryGroup'), 'w').write("""{ "identifier": "Group1", "name": {"nl": "Groep1", "en": "Group1"}, "repositoryIds": ["repository1", "repository2"] }""") open(join(self.tempdir, 'adomain.Group2.repositoryGroup'), 'w').write("""{ "identifier": "Group2", "name": {"nl": "Groep2", "en": "Group2"}, "repositoryIds": ["repository2_1", "repository2_2"] } """) open(join(self.tempdir, 'adomain.repository1.repository'), 'w').write("""{ "identifier": "repository1", "repositoryGroupId": "Group1" }""") open(join(self.tempdir, 'adomain.repository2.repository'), 'w').write("""{ "identifier": "repository2", "repositoryGroupId": "Group1" }""") open(join(self.tempdir, 'adomain.repository2_1.repository'), 'w').write("""{ "identifier": "repository2_1", "repositoryGroupId": "Group2" }""") open(join(self.tempdir, 'adomain.repository2_2.repository'), 'w').write("""{ "identifier": "repository2_2", "repositoryGroupId": "Group2" }""") open(join(self.tempdir, 'adomain.remi.repository'), 'w').write("""{ "identifier": "remi", "repositoryGroupId": "NoGroup" }""") self.hd = HarvesterData(self.tempdir) def testGetRepositoryGroupIds(self): self.assertEquals(["Group1", "Group2"], self.hd.getRepositoryGroupIds(domainId="adomain")) def testGetRepositoryIds(self): self.assertEquals(["repository1", "repository2"], self.hd.getRepositoryIds(domainId="adomain", repositoryGroupId="Group1")) self.assertEquals(["repository1", "repository2", "repository2_1", "repository2_2"], self.hd.getRepositoryIds(domainId="adomain")) def testGetRepositoryGroupId(self): self.assertEquals("Group1", self.hd.getRepositoryGroupId(domainId="adomain", repositoryId="repository1")) def testGetRepositoryGroup(self): self.assertEqual({ 'identifier': 'Group1', 'name': {'en': 'Group1', 'nl': 'Groep1'}, 'repositoryIds': ['repository1', 'repository2'] }, self.hd.getRepositoryGroup(identifier='Group1', domainId='adomain')) def testGetRepositories(self): result = self.hd.getRepositories(domainId='adomain') self.assertEqualsWS("""[ { "identifier": "repository1", "repositoryGroupId": "Group1" }, { "identifier": "repository2", "repositoryGroupId": "Group1" }, { "identifier": "repository2_1", "repositoryGroupId": "Group2" }, { "identifier": "repository2_2", "repositoryGroupId": "Group2" } ]""", result.dumps()) def testGetRepositoriesWithError(self): try: self.hd.getRepositories(domainId='adomain', repositoryGroupId='doesnotexist') self.fail() except ValueError, e: self.assertEqual('idDoesNotExist', str(e)) try: self.hd.getRepositories(domainId='baddomain') self.fail() except ValueError, e: self.assertEqual('idDoesNotExist', str(e))