diff options
| author | Gauvain Pocentek <gauvain@pocentek.net> | 2018-05-19 17:10:08 +0200 |
|---|---|---|
| committer | Gauvain Pocentek <gauvain@pocentek.net> | 2018-05-19 17:10:08 +0200 |
| commit | fe89b949922c028830dd49095432ba627d330186 (patch) | |
| tree | aa14611d11c550a790d7976f2b24fabb77e81a67 /gitlab/tests/test_manager.py | |
| parent | 701169441194bf0441cee13f2ab5784ffad7a207 (diff) | |
| download | gitlab-fe89b949922c028830dd49095432ba627d330186.tar.gz | |
Drop API v3 support
Drop the code, the tests, and update the documentation.
Diffstat (limited to 'gitlab/tests/test_manager.py')
| -rw-r--r-- | gitlab/tests/test_manager.py | 309 |
1 files changed, 0 insertions, 309 deletions
diff --git a/gitlab/tests/test_manager.py b/gitlab/tests/test_manager.py deleted file mode 100644 index c6ef299..0000000 --- a/gitlab/tests/test_manager.py +++ /dev/null @@ -1,309 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2016-2017 Gauvain Pocentek <gauvain@pocentek.net> -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -try: - import unittest -except ImportError: - import unittest2 as unittest - -from httmock import HTTMock # noqa -from httmock import response # noqa -from httmock import urlmatch # noqa - -from gitlab import * # noqa -from gitlab.v3.objects import BaseManager # noqa - - -class FakeChildObject(GitlabObject): - _url = "/fake/%(parent_id)s/fakechild" - requiredCreateAttrs = ['name'] - requiredUrlAttrs = ['parent_id'] - - -class FakeChildManager(BaseManager): - obj_cls = FakeChildObject - - -class FakeObject(GitlabObject): - _url = "/fake" - requiredCreateAttrs = ['name'] - managers = [('children', FakeChildManager, [('parent_id', 'id')])] - - -class FakeObjectManager(BaseManager): - obj_cls = FakeObject - - -class TestGitlabManager(unittest.TestCase): - def setUp(self): - self.gitlab = Gitlab("http://localhost", private_token="private_token", - email="testuser@test.com", - password="testpassword", ssl_verify=True, - api_version=3) - - def test_set_parent_args(self): - @urlmatch(scheme="http", netloc="localhost", path="/api/v3/fake", - method="POST") - def resp_create(url, request): - headers = {'content-type': 'application/json'} - content = '{"id": 1, "name": "name"}'.encode("utf-8") - return response(201, content, headers, None, 5, request) - - mgr = FakeChildManager(self.gitlab) - args = mgr._set_parent_args(name="name") - self.assertEqual(args, {"name": "name"}) - - with HTTMock(resp_create): - o = FakeObjectManager(self.gitlab).create({"name": "name"}) - args = o.children._set_parent_args(name="name") - self.assertEqual(args, {"name": "name", "parent_id": 1}) - - def test_constructor(self): - self.assertRaises(AttributeError, BaseManager, self.gitlab) - - @urlmatch(scheme="http", netloc="localhost", path="/api/v3/fake/1", - method="get") - def resp_get(url, request): - headers = {'content-type': 'application/json'} - content = '{"id": 1, "name": "fake_name"}'.encode("utf-8") - return response(200, content, headers, None, 5, request) - - with HTTMock(resp_get): - mgr = FakeObjectManager(self.gitlab) - fake_obj = mgr.get(1) - self.assertEqual(fake_obj.id, 1) - self.assertEqual(fake_obj.name, "fake_name") - self.assertEqual(mgr.gitlab, self.gitlab) - self.assertEqual(mgr.args, []) - self.assertEqual(mgr.parent, None) - - self.assertIsInstance(fake_obj.children, FakeChildManager) - self.assertEqual(fake_obj.children.gitlab, self.gitlab) - self.assertEqual(fake_obj.children.parent, fake_obj) - self.assertEqual(len(fake_obj.children.args), 1) - - fake_child = fake_obj.children.get(1) - self.assertEqual(fake_child.id, 1) - self.assertEqual(fake_child.name, "fake_name") - - def test_get(self): - mgr = FakeObjectManager(self.gitlab) - FakeObject.canGet = False - self.assertRaises(NotImplementedError, mgr.get, 1) - - @urlmatch(scheme="http", netloc="localhost", path="/api/v3/fake/1", - method="get") - def resp_get(url, request): - headers = {'content-type': 'application/json'} - content = '{"id": 1, "name": "fake_name"}'.encode("utf-8") - return response(200, content, headers, None, 5, request) - - with HTTMock(resp_get): - FakeObject.canGet = True - mgr = FakeObjectManager(self.gitlab) - fake_obj = mgr.get(1) - self.assertIsInstance(fake_obj, FakeObject) - self.assertEqual(fake_obj.id, 1) - self.assertEqual(fake_obj.name, "fake_name") - - def test_list(self): - mgr = FakeObjectManager(self.gitlab) - FakeObject.canList = False - self.assertRaises(NotImplementedError, mgr.list) - - @urlmatch(scheme="http", netloc="localhost", path="/api/v3/fake", - method="get") - def resp_get(url, request): - headers = {'content-type': 'application/json'} - content = ('[{"id": 1, "name": "fake_name1"},' - '{"id": 2, "name": "fake_name2"}]') - content = content.encode("utf-8") - return response(200, content, headers, None, 5, request) - - with HTTMock(resp_get): - FakeObject.canList = True - mgr = FakeObjectManager(self.gitlab) - fake_list = mgr.list() - self.assertEqual(len(fake_list), 2) - self.assertIsInstance(fake_list[0], FakeObject) - self.assertEqual(fake_list[0].id, 1) - self.assertEqual(fake_list[0].name, "fake_name1") - self.assertIsInstance(fake_list[1], FakeObject) - self.assertEqual(fake_list[1].id, 2) - self.assertEqual(fake_list[1].name, "fake_name2") - - def test_create(self): - mgr = FakeObjectManager(self.gitlab) - FakeObject.canCreate = False - self.assertRaises(NotImplementedError, mgr.create, {'name': 'name'}) - - @urlmatch(scheme="http", netloc="localhost", path="/api/v3/fake", - method="post") - def resp_post(url, request): - headers = {'content-type': 'application/json'} - data = '{"name": "fake_name"}' - content = '{"id": 1, "name": "fake_name"}'.encode("utf-8") - return response(201, content, headers, data, 5, request) - - with HTTMock(resp_post): - FakeObject.canCreate = True - mgr = FakeObjectManager(self.gitlab) - fake_obj = mgr.create({'name': 'fake_name'}) - self.assertIsInstance(fake_obj, FakeObject) - self.assertEqual(fake_obj.id, 1) - self.assertEqual(fake_obj.name, "fake_name") - - def test_project_manager_owned(self): - mgr = ProjectManager(self.gitlab) - - @urlmatch(scheme="http", netloc="localhost", - path="/api/v3/projects/owned", method="get") - def resp_get_all(url, request): - headers = {'content-type': 'application/json'} - content = ('[{"name": "name1", "id": 1}, ' - '{"name": "name2", "id": 2}]') - content = content.encode("utf-8") - return response(200, content, headers, None, 5, request) - - with HTTMock(resp_get_all): - data = mgr.owned() - self.assertEqual(type(data), list) - self.assertEqual(2, len(data)) - self.assertEqual(type(data[0]), Project) - self.assertEqual(type(data[1]), Project) - self.assertEqual(data[0].name, "name1") - self.assertEqual(data[1].name, "name2") - self.assertEqual(data[0].id, 1) - self.assertEqual(data[1].id, 2) - - def test_project_manager_all(self): - mgr = ProjectManager(self.gitlab) - - @urlmatch(scheme="http", netloc="localhost", - path="/api/v3/projects/all", method="get") - def resp_get_all(url, request): - headers = {'content-type': 'application/json'} - content = ('[{"name": "name1", "id": 1}, ' - '{"name": "name2", "id": 2}]') - content = content.encode("utf-8") - return response(200, content, headers, None, 5, request) - - with HTTMock(resp_get_all): - data = mgr.all() - self.assertEqual(type(data), list) - self.assertEqual(2, len(data)) - self.assertEqual(type(data[0]), Project) - self.assertEqual(type(data[1]), Project) - self.assertEqual(data[0].name, "name1") - self.assertEqual(data[1].name, "name2") - self.assertEqual(data[0].id, 1) - self.assertEqual(data[1].id, 2) - - def test_project_manager_search(self): - mgr = ProjectManager(self.gitlab) - - @urlmatch(scheme="http", netloc="localhost", path="/api/v3/projects", - query="search=foo", method="get") - def resp_get_all(url, request): - headers = {'content-type': 'application/json'} - content = ('[{"name": "foo1", "id": 1}, ' - '{"name": "foo2", "id": 2}]') - content = content.encode("utf-8") - return response(200, content, headers, None, 5, request) - - with HTTMock(resp_get_all): - data = mgr.list(search='foo') - self.assertEqual(type(data), list) - self.assertEqual(2, len(data)) - self.assertEqual(type(data[0]), Project) - self.assertEqual(type(data[1]), Project) - self.assertEqual(data[0].name, "foo1") - self.assertEqual(data[1].name, "foo2") - self.assertEqual(data[0].id, 1) - self.assertEqual(data[1].id, 2) - - def test_user_manager_search(self): - mgr = UserManager(self.gitlab) - - @urlmatch(scheme="http", netloc="localhost", path="/api/v3/users", - query="search=foo", method="get") - def resp_get_search(url, request): - headers = {'content-type': 'application/json'} - content = ('[{"name": "foo1", "id": 1}, ' - '{"name": "foo2", "id": 2}]') - content = content.encode("utf-8") - return response(200, content, headers, None, 5, request) - - with HTTMock(resp_get_search): - data = mgr.search('foo') - self.assertEqual(type(data), list) - self.assertEqual(2, len(data)) - self.assertEqual(type(data[0]), User) - self.assertEqual(type(data[1]), User) - self.assertEqual(data[0].name, "foo1") - self.assertEqual(data[1].name, "foo2") - self.assertEqual(data[0].id, 1) - self.assertEqual(data[1].id, 2) - - def test_user_manager_get_by_username(self): - mgr = UserManager(self.gitlab) - - @urlmatch(scheme="http", netloc="localhost", path="/api/v3/users", - query="username=foo", method="get") - def resp_get_username(url, request): - headers = {'content-type': 'application/json'} - content = '[{"name": "foo", "id": 1}]'.encode("utf-8") - return response(200, content, headers, None, 5, request) - - with HTTMock(resp_get_username): - data = mgr.get_by_username('foo') - self.assertEqual(type(data), User) - self.assertEqual(data.name, "foo") - self.assertEqual(data.id, 1) - - @urlmatch(scheme="http", netloc="localhost", path="/api/v3/users", - query="username=foo", method="get") - def resp_get_username_nomatch(url, request): - headers = {'content-type': 'application/json'} - content = '[]'.encode("utf-8") - return response(200, content, headers, None, 5, request) - - with HTTMock(resp_get_username_nomatch): - self.assertRaises(GitlabGetError, mgr.get_by_username, 'foo') - - def test_group_manager_search(self): - mgr = GroupManager(self.gitlab) - - @urlmatch(scheme="http", netloc="localhost", path="/api/v3/groups", - query="search=foo", method="get") - def resp_get_search(url, request): - headers = {'content-type': 'application/json'} - content = ('[{"name": "foo1", "id": 1}, ' - '{"name": "foo2", "id": 2}]') - content = content.encode("utf-8") - return response(200, content, headers, None, 5, request) - - with HTTMock(resp_get_search): - data = mgr.search('foo') - self.assertEqual(type(data), list) - self.assertEqual(2, len(data)) - self.assertEqual(type(data[0]), Group) - self.assertEqual(type(data[1]), Group) - self.assertEqual(data[0].name, "foo1") - self.assertEqual(data[1].name, "foo2") - self.assertEqual(data[0].id, 1) - self.assertEqual(data[1].id, 2) |
