From e3eee958a4cd91a89ae5b76a85f18b4e7c6b5907 Mon Sep 17 00:00:00 2001 From: Joseph Schorr <jschorr@gmail.com> Date: Fri, 31 Jan 2014 19:45:44 -0500 Subject: [PATCH] Continue on API unit tests: Now 60% (or so) coverage --- test/test_api_usage.py | 138 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) diff --git a/test/test_api_usage.py b/test/test_api_usage.py index 81837d590..205828c91 100644 --- a/test/test_api_usage.py +++ b/test/test_api_usage.py @@ -570,5 +570,143 @@ class TestDeleteOrganizationTeamMember(ApiTestCase): assert not READ_ACCESS_USER in json['members'] +class TestCreateRepo(ApiTestCase): + def test_duplicaterepo(self): + self.login(ADMIN_ACCESS_USER) + + json = self.postJsonResponse('api.create_repo', + data=dict(repository='simple', visibility='public'), + expected_code=400) + + self.assertEquals('Repository already exists', json['message']) + + + def test_createrepo(self): + self.login(ADMIN_ACCESS_USER) + + json = self.postJsonResponse('api.create_repo', + data=dict(repository='newrepo', visibility='public', description='')) + + + self.assertEquals(ADMIN_ACCESS_USER, json['namespace']) + self.assertEquals('newrepo', json['name']) + + + def test_createrepo_underorg(self): + self.login(ADMIN_ACCESS_USER) + + json = self.postJsonResponse('api.create_repo', + data=dict(namespace=ORGANIZATION, + repository='newrepo', + visibility='private', + description='')) + + self.assertEquals(ORGANIZATION, json['namespace']) + self.assertEquals('newrepo', json['name']) + + +class TestFindRepos(ApiTestCase): + def test_findrepos_asguest(self): + json = self.getJsonResponse('api.find_repos', params=dict(query='p')) + assert len(json['repositories']) == 1 + + self.assertEquals(json['repositories'][0]['namespace'], 'public') + self.assertEquals(json['repositories'][0]['name'], 'publicrepo') + + def test_findrepos_asuser(self): + self.login(NO_ACCESS_USER) + + json = self.getJsonResponse('api.find_repos', params=dict(query='p')) + assert len(json['repositories']) == 1 + + self.assertEquals(json['repositories'][0]['namespace'], 'public') + self.assertEquals(json['repositories'][0]['name'], 'publicrepo') + + def test_findrepos_orgmember(self): + self.login(READ_ACCESS_USER) + + json = self.getJsonResponse('api.find_repos', params=dict(query='p')) + assert len(json['repositories']) > 1 + + +class TestListRepos(ApiTestCase): + def test_listrepos_asguest(self): + json = self.getJsonResponse('api.list_repos', params=dict(public=True)) + assert len(json['repositories']) == 0 + + def test_listrepos_orgmember(self): + self.login(READ_ACCESS_USER) + json = self.getJsonResponse('api.list_repos', params=dict(public=True)) + assert len(json['repositories']) > 1 + + def test_listrepos_filter(self): + self.login(READ_ACCESS_USER) + json = self.getJsonResponse('api.list_repos', params=dict(namespace=ORGANIZATION, public=False)) + + for repo in json['repositories']: + self.assertEquals(ORGANIZATION, repo['namespace']) + + def test_listrepos_limit(self): + self.login(READ_ACCESS_USER) + json = self.getJsonResponse('api.list_repos', params=dict(limit=2)) + + assert len(json['repositories']) == 2 + + +class TestUpdateRepo(ApiTestCase): + def test_updatedescription(self): + self.login(ADMIN_ACCESS_USER) + + self.putJsonResponse('api.update_repo', + params=dict(repository=ADMIN_ACCESS_USER + '/simple'), + data=dict(description='Some cool repo')) + + # Verify the repo description was updated. + json = self.getJsonResponse('api.get_repo', + params=dict(repository=ADMIN_ACCESS_USER + '/simple')) + + self.assertEquals('Some cool repo', json['description']) + + +class TestChangeRepoVisibility(ApiTestCase): + def test_changevisibility(self): + self.login(ADMIN_ACCESS_USER) + + # Make public. + self.postJsonResponse('api.change_repo_visibility', + params=dict(repository=ADMIN_ACCESS_USER + '/simple'), + data=dict(visibility='public')) + + # Verify the visibility. + json = self.getJsonResponse('api.get_repo', + params=dict(repository=ADMIN_ACCESS_USER + '/simple')) + + self.assertEquals(True, json['is_public']) + + # Make private. + self.postJsonResponse('api.change_repo_visibility', + params=dict(repository=ADMIN_ACCESS_USER + '/simple'), + data=dict(visibility='private')) + + # Verify the visibility. + json = self.getJsonResponse('api.get_repo', + params=dict(repository=ADMIN_ACCESS_USER + '/simple')) + + self.assertEquals(False, json['is_public']) + + +class TestDeleteRepository(ApiTestCase): + def test_deleterepo(self): + self.login(ADMIN_ACCESS_USER) + + self.deleteResponse('api.delete_repository', + params=dict(repository=ADMIN_ACCESS_USER + '/simple')) + + # Verify the repo was deleted. + self.getResponse('api.get_repo', + params=dict(repository=ADMIN_ACCESS_USER + '/simple'), + expected_code=404) + + if __name__ == '__main__': unittest.main()