def testInvalidUrl(self):
     env = Environment(root=self.harvesterDataDir)
     repository = env.addRepository(name="repo-1", 
         baseUrl="http://some.weird.url.that.does.not.work",
         metadataPrefix="rdf", 
         setSpec="aset", 
         active=True, 
         apiKey=self.apiKeyForTestUser)
     process(self.config) 
     self.assertEquals("<urlopen error [Errno -2] Name or service not known>", open(repository.errorLogPath).readlines()[-1])
    def testOne(self):
        env = Environment(root=self.harvesterDataDir)
        open(join(self.httpDataDir, 'oai-repo1'), 'w').write(REPO1_RECORD)
        env.addRepository(name="repo-1", 
            baseUrl="http://localhost:%s/oai-repo1" % self.httpPortNumber, 
            metadataPrefix="rdf", 
            setSpec="aset", 
            active=True, 
            apiKey=self.apiKeyForTestUser)
        open(join(self.httpDataDir, 'oai-repo2'), 'w').write(REPO2_RECORD)
        env.addRepository(name="repo-2", 
            baseUrl="http://localhost:%s/oai-repo2" % self.httpPortNumber, 
            metadataPrefix="rdf", 
            active=False, 
            apiKey=self.apiKeyForAnotherTestUser)

        self.assertQuery(0, "repo1")
        self.assertQuery(0, "repo2")
        process(self.config) 
        self.assertQuery(1, "repo1")
        self.assertQuery(0, "repo2")
    def testAddDelete(self):
        env = Environment(root=self.harvesterDataDir)
        open(join(self.httpDataDir, 'oai-testAddDelete'), 'w').write(TESTADDDELETE_ADD)

        repo = env.addRepository(name="repo-addDelete", 
            baseUrl="http://localhost:%s/oai-testAddDelete" % self.httpPortNumber, 
            metadataPrefix="rdf", 
            setSpec="aset", 
            active=True, 
            apiKey=self.apiKeyForTestUser)
        self.assertTrue(repo.active)

        self.assertQuery(0, "testAddDelete")
        process(self.config) 

        repo = env.getRepository(name=repo.name)  # reload for state change
        self.assertFalse(repo.active)
        repo.active = True
        repo.save()
        self.assertQuery(1, "testAddDelete")

        open(join(self.httpDataDir, 'oai-testAddDelete'), 'w').write(TESTADDDELETE_DELETE)
        process(self.config) 
        self.assertQuery(0, "testAddDelete")