diff options
author | Nejc Habjan <hab.nejc@gmail.com> | 2021-12-01 01:04:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-01 01:04:53 +0100 |
commit | 8d76826fa64460e504acc5924f859f8dbc246b42 (patch) | |
tree | 083fefada982c795e2415092794db429abb0c184 /tests/unit/test_gitlab.py | |
parent | 5a1678f43184bd459132102cc13cf8426fe0449d (diff) | |
parent | 86ab04e54ea4175f10053decfad5086cda7aa024 (diff) | |
download | gitlab-master.tar.gz |
Merge pull request #1723 from python-gitlab/jlvillal/dead_mastermaster
Close-out `master` branch
Diffstat (limited to 'tests/unit/test_gitlab.py')
-rw-r--r-- | tests/unit/test_gitlab.py | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/tests/unit/test_gitlab.py b/tests/unit/test_gitlab.py deleted file mode 100644 index 2bd7d4d..0000000 --- a/tests/unit/test_gitlab.py +++ /dev/null @@ -1,196 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2014 Mika Mäenpää <mika.j.maenpaa@tut.fi>, -# Tampere University of Technology -# -# 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/>. - -import pickle - -import pytest -from httmock import HTTMock, response, urlmatch, with_httmock # noqa - -from gitlab import DEFAULT_URL, Gitlab, GitlabList, USER_AGENT -from gitlab.v4.objects import CurrentUser - -localhost = "http://localhost" -username = "username" -user_id = 1 -token = "abc123" - - -@urlmatch(scheme="http", netloc="localhost", path="/api/v4/user", method="get") -def resp_get_user(url, request): - headers = {"content-type": "application/json"} - content = '{{"id": {0:d}, "username": "{1:s}"}}'.format(user_id, username).encode( - "utf-8" - ) - return response(200, content, headers, None, 5, request) - - -@urlmatch(scheme="http", netloc="localhost", path="/api/v4/tests", method="get") -def resp_page_1(url, request): - headers = { - "content-type": "application/json", - "X-Page": 1, - "X-Next-Page": 2, - "X-Per-Page": 1, - "X-Total-Pages": 2, - "X-Total": 2, - "Link": ("<http://localhost/api/v4/tests?per_page=1&page=2>;" ' rel="next"'), - } - content = '[{"a": "b"}]' - return response(200, content, headers, None, 5, request) - - -@urlmatch( - scheme="http", - netloc="localhost", - path="/api/v4/tests", - method="get", - query=r".*page=2", -) -def resp_page_2(url, request): - headers = { - "content-type": "application/json", - "X-Page": 2, - "X-Next-Page": 2, - "X-Per-Page": 1, - "X-Total-Pages": 2, - "X-Total": 2, - } - content = '[{"c": "d"}]' - return response(200, content, headers, None, 5, request) - - -def test_gitlab_build_list(gl): - with HTTMock(resp_page_1): - obj = gl.http_list("/tests", as_list=False) - assert len(obj) == 2 - assert obj._next_url == "http://localhost/api/v4/tests?per_page=1&page=2" - assert obj.current_page == 1 - assert obj.prev_page is None - assert obj.next_page == 2 - assert obj.per_page == 1 - assert obj.total_pages == 2 - assert obj.total == 2 - - with HTTMock(resp_page_2): - test_list = list(obj) - assert len(test_list) == 2 - assert test_list[0]["a"] == "b" - assert test_list[1]["c"] == "d" - - -@with_httmock(resp_page_1, resp_page_2) -def test_gitlab_all_omitted_when_as_list(gl): - result = gl.http_list("/tests", as_list=False, all=True) - assert isinstance(result, GitlabList) - - -def test_gitlab_strip_base_url(gl_trailing): - assert gl_trailing.url == "http://localhost" - - -def test_gitlab_strip_api_url(gl_trailing): - assert gl_trailing.api_url == "http://localhost/api/v4" - - -def test_gitlab_build_url(gl_trailing): - r = gl_trailing._build_url("/projects") - assert r == "http://localhost/api/v4/projects" - - -def test_gitlab_pickability(gl): - original_gl_objects = gl._objects - pickled = pickle.dumps(gl) - unpickled = pickle.loads(pickled) - assert isinstance(unpickled, Gitlab) - assert hasattr(unpickled, "_objects") - assert unpickled._objects == original_gl_objects - - -@with_httmock(resp_get_user) -def test_gitlab_token_auth(gl, callback=None): - gl.auth() - assert gl.user.username == username - assert gl.user.id == user_id - assert isinstance(gl.user, CurrentUser) - - -def test_gitlab_default_url(): - gl = Gitlab() - assert gl.url == DEFAULT_URL - - -@pytest.mark.parametrize( - "args, kwargs, expected_url, expected_private_token, expected_oauth_token", - [ - ([], {}, DEFAULT_URL, None, None), - ([None, token], {}, DEFAULT_URL, token, None), - ([localhost], {}, localhost, None, None), - ([localhost, token], {}, localhost, token, None), - ([localhost, None, token], {}, localhost, None, token), - ([], {"private_token": token}, DEFAULT_URL, token, None), - ([], {"oauth_token": token}, DEFAULT_URL, None, token), - ([], {"url": localhost}, localhost, None, None), - ([], {"url": localhost, "private_token": token}, localhost, token, None), - ([], {"url": localhost, "oauth_token": token}, localhost, None, token), - ], - ids=[ - "no_args", - "args_private_token", - "args_url", - "args_url_private_token", - "args_url_oauth_token", - "kwargs_private_token", - "kwargs_oauth_token", - "kwargs_url", - "kwargs_url_private_token", - "kwargs_url_oauth_token", - ], -) -def test_gitlab_args_kwargs( - args, kwargs, expected_url, expected_private_token, expected_oauth_token -): - gl = Gitlab(*args, **kwargs) - assert gl.url == expected_url - assert gl.private_token == expected_private_token - assert gl.oauth_token == expected_oauth_token - - -def test_gitlab_from_config(default_config): - config_path = default_config - Gitlab.from_config("one", [config_path]) - - -def test_gitlab_subclass_from_config(default_config): - class MyGitlab(Gitlab): - pass - - config_path = default_config - gl = MyGitlab.from_config("one", [config_path]) - assert isinstance(gl, MyGitlab) - - -@pytest.mark.parametrize( - "kwargs,expected_agent", - [ - ({}, USER_AGENT), - ({"user_agent": "my-package/1.0.0"}, "my-package/1.0.0"), - ], -) -def test_gitlab_user_agent(kwargs, expected_agent): - gl = Gitlab("http://localhost", **kwargs) - assert gl.headers["User-Agent"] == expected_agent |