def setUp(self): SeecrTestCase.setUp(self) self.dashboard = Dashboard() self.env = Environment(root=self.tempdir) self.dashboard.addObserver(self.env)
class DashboardTest(SeecrTestCase): def setUp(self): SeecrTestCase.setUp(self) self.dashboard = Dashboard() self.env = Environment(root=self.tempdir) self.dashboard.addObserver(self.env) def testRedirectOnGet(self): result = joco(self.dashboard.handleRequest(path='/whatever', Client=('127.0.0.1', 3451), Method='GET', session={})) header, body = result.split(CRLF*2) self.assertTrue('302' in header) self.assertTrue('Location: /' in header, header) def testCreateNotLoggedIn(self): result = joco(self.dashboard.handleRequest(path="/create", Client=('127.0.0.1', 1234), Method='POST', session={})) header, body = result.split(CRLF*2) self.assertTrue('302' in header) self.assertTrue('Location: /' in header, header) def testCreateLoggedIn(self): session = { 'user': User('admin'), } Body = urlencode(dict(repository='repoId1', formUrl='/harvester_dashboard?repository=%(repository)s')) result = joco(self.dashboard.handleRequest(path="/create", Client=('127.0.0.1', 1234), Method='POST', session=session, Body=Body)) header, body = result.split(CRLF*2) self.assertTrue('302' in header) self.assertTrue('Location: /harvester_dashboard?repository=repoId1' in header, header) self.assertEquals("repoId1", list(self.env.getRepositories())[0].name) def testEditRepository(self): session = dict(user=User('admin')) joco(self.dashboard.handleRequest( path="/create", Client=('127.0.0.1', 1234), Method='POST', session=session, Body=urlencode(dict(repository='repoId1', formUrl='/harvester_dashboard')))) self.assertEquals("", list(self.env.getRepositories())[0].baseUrl) self.assertEquals("", list(self.env.getRepositories())[0].metadataPrefix) self.assertEquals("", list(self.env.getRepositories())[0].setSpec) self.assertEquals("", list(self.env.getRepositories())[0].apiKey) self.assertEquals(False, list(self.env.getRepositories())[0].active) joco(self.dashboard.handleRequest( path="/something/update", Client=('127.0.0.1', 1234), Method='POST', session=session, Body=urlencode(dict( repository='repoId1', baseUrl='http://localhost/oai', metadataPrefix='aprefix', setSpec='aset', apiKey='an api key', active='on', formUrl='/harvester_dashboard')))) self.assertEquals("http://localhost/oai", list(self.env.getRepositories())[0].baseUrl) self.assertEquals("aprefix", list(self.env.getRepositories())[0].metadataPrefix) self.assertEquals("aset", list(self.env.getRepositories())[0].setSpec) self.assertEquals("an api key", list(self.env.getRepositories())[0].apiKey) self.assertEquals(True, list(self.env.getRepositories())[0].active) joco(self.dashboard.handleRequest( path="/something/update", Client=('127.0.0.1', 1234), Method='POST', session=session, Body=urlencode(dict( repository='repoId1', baseUrl='http://localhost/oai', metadataPrefix='aprefix', setSpec='aset', apiKey='an api key', formUrl='/harvester_dashboard')))) self.assertEquals(False, list(self.env.getRepositories())[0].active) def testDeleteRepository(self): session = dict(user=User('admin')) joco(self.dashboard.handleRequest( path="/create", Client=('127.0.0.1', 1234), Method='POST', session=session, Body=urlencode(dict(repository='repoId1', formUrl='/harvester_dashboard')))) self.assertEquals(1, len(list(self.env.getRepositories()))) result = joco(self.dashboard.handleRequest( path="/delete", Client=('127.0.0.1', 1234), Method='POST', session=session, Body=urlencode(dict(repository='repoId1', formUrl='/harvester_dashboard')))) self.assertEquals(0, len(list(self.env.getRepositories()))) header, body = result.split(CRLF*2) self.assertTrue('302' in header) self.assertTrue('Location: /harvester_dashboard' in header, header)