Mercurial > kallithea
annotate kallithea/tests/api/api_base.py @ 8940:1d1fe8c2ef57 stable
tests: update test_api_create_repo with better coverage of create_repo api
Based on test_api_update_repo.
This shows that some of the API is broken. Failing test cases are disabled and
will be enabled when the problems are fixed.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Mon, 12 Dec 2022 00:38:59 +0100 |
parents | 9de126d62202 |
children | f2dc57c123cf |
rev | line source |
---|---|
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1 # -*- coding: utf-8 -*- |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2 # This program is free software: you can redistribute it and/or modify |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
3 # it under the terms of the GNU General Public License as published by |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
4 # the Free Software Foundation, either version 3 of the License, or |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
5 # (at your option) any later version. |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
6 # |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
7 # This program is distributed in the hope that it will be useful, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
8 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
10 # GNU General Public License for more details. |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
11 # |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
12 # You should have received a copy of the GNU General Public License |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
13 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
14 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
15 """ |
5969
5ca5379641d0
tests: remove last references to nosetests
Mads Kiilerich <madski@unity3d.com>
parents:
5948
diff
changeset
|
16 Tests for the JSON-RPC web api. |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
17 """ |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
18 |
8940
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
19 import datetime |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
20 import os |
2526 | 21 import random |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
22 import re |
8728
f3fab7b124f2
imports: try to use global imports unless it is a layering violation
Mads Kiilerich <mads@kiilerich.com>
parents:
8687
diff
changeset
|
23 import string |
8851
05406c312342
pytype: add Python type annotations where necessary to guide pytype
Mads Kiilerich <mads@kiilerich.com>
parents:
8834
diff
changeset
|
24 from typing import Sized |
2526 | 25 |
7811
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7687
diff
changeset
|
26 import mock |
7144
bfb1ae42bcbb
vcs: fix get_changesets filtering on hg repo to AND the criteria instead of OR
domruf <dominikruf@gmail.com>
parents:
7140
diff
changeset
|
27 import pytest |
8851
05406c312342
pytype: add Python type annotations where necessary to guide pytype
Mads Kiilerich <mads@kiilerich.com>
parents:
8834
diff
changeset
|
28 from webtest import TestApp |
7144
bfb1ae42bcbb
vcs: fix get_changesets filtering on hg repo to AND the criteria instead of OR
domruf <dominikruf@gmail.com>
parents:
7140
diff
changeset
|
29 |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
30 from kallithea.lib import ext_json |
7811
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7687
diff
changeset
|
31 from kallithea.lib.auth import AuthUser |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
32 from kallithea.lib.utils2 import ascii_bytes |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
33 from kallithea.model import db, meta |
7811
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7687
diff
changeset
|
34 from kallithea.model.changeset_status import ChangesetStatusModel |
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7687
diff
changeset
|
35 from kallithea.model.gist import GistModel |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
36 from kallithea.model.pull_request import PullRequestModel |
7811
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7687
diff
changeset
|
37 from kallithea.model.repo import RepoModel |
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7687
diff
changeset
|
38 from kallithea.model.repo_group import RepoGroupModel |
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7687
diff
changeset
|
39 from kallithea.model.scm import ScmModel |
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7687
diff
changeset
|
40 from kallithea.model.user import UserModel |
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7687
diff
changeset
|
41 from kallithea.model.user_group import UserGroupModel |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
42 from kallithea.tests import base |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
43 from kallithea.tests.fixture import Fixture, raise_exception |
2526 | 44 |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
45 |
2526 | 46 API_URL = '/_admin/api' |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
47 TEST_USER_GROUP = 'test_user_group' |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
48 TEST_REPO_GROUP = 'test_repo_group' |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
49 |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
50 fixture = Fixture() |
2526 | 51 |
52 | |
53 def _build_data(apikey, method, **kw): | |
54 """ | |
55 Builds API data with given random ID | |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
56 For convenience, the json is returned as str |
2526 | 57 """ |
58 random_id = random.randrange(1, 9999) | |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
59 return random_id, ext_json.dumps({ |
2526 | 60 "id": random_id, |
61 "api_key": apikey, | |
62 "method": method, | |
63 "args": kw | |
64 }) | |
65 | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
66 |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
67 jsonify = lambda obj: ext_json.loads(ext_json.dumps(obj)) |
2526 | 68 |
69 | |
2738 | 70 def api_call(test_obj, params): |
71 response = test_obj.app.post(API_URL, content_type='application/json', | |
72 params=params) | |
73 return response | |
74 | |
75 | |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
76 ## helpers |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
77 def make_user_group(name=TEST_USER_GROUP): |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
78 gr = fixture.create_user_group(name, cur_user=base.TEST_USER_ADMIN_LOGIN) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
79 UserGroupModel().add_user_to_group(user_group=gr, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
80 user=base.TEST_USER_ADMIN_LOGIN) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
81 meta.Session().commit() |
2526 | 82 return gr |
83 | |
84 | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
85 def make_repo_group(name=TEST_REPO_GROUP): |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
86 gr = fixture.create_repo_group(name, cur_user=base.TEST_USER_ADMIN_LOGIN) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
87 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
88 return gr |
2526 | 89 |
90 | |
5051
12ae08b2fe3f
tests: avoid executing tests in base classes
Marc Abramowitz <marc@marc-abramowitz.com>
parents:
4792
diff
changeset
|
91 class _BaseTestApi(object): |
8851
05406c312342
pytype: add Python type annotations where necessary to guide pytype
Mads Kiilerich <mads@kiilerich.com>
parents:
8834
diff
changeset
|
92 app: TestApp # assigned by app_fixture in subclass TestController mixin |
05406c312342
pytype: add Python type annotations where necessary to guide pytype
Mads Kiilerich <mads@kiilerich.com>
parents:
8834
diff
changeset
|
93 # assigned in subclass: |
05406c312342
pytype: add Python type annotations where necessary to guide pytype
Mads Kiilerich <mads@kiilerich.com>
parents:
8834
diff
changeset
|
94 REPO: str |
05406c312342
pytype: add Python type annotations where necessary to guide pytype
Mads Kiilerich <mads@kiilerich.com>
parents:
8834
diff
changeset
|
95 REPO_TYPE: str |
05406c312342
pytype: add Python type annotations where necessary to guide pytype
Mads Kiilerich <mads@kiilerich.com>
parents:
8834
diff
changeset
|
96 TEST_REVISION: str |
05406c312342
pytype: add Python type annotations where necessary to guide pytype
Mads Kiilerich <mads@kiilerich.com>
parents:
8834
diff
changeset
|
97 TEST_PR_SRC: str |
05406c312342
pytype: add Python type annotations where necessary to guide pytype
Mads Kiilerich <mads@kiilerich.com>
parents:
8834
diff
changeset
|
98 TEST_PR_DST: str |
05406c312342
pytype: add Python type annotations where necessary to guide pytype
Mads Kiilerich <mads@kiilerich.com>
parents:
8834
diff
changeset
|
99 TEST_PR_REVISIONS: Sized |
2526 | 100 |
101 @classmethod | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
102 def setup_class(cls): |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
103 cls.usr = db.User.get_by_username(base.TEST_USER_ADMIN_LOGIN) |
3891
aff5dd957f35
classmethods should have cls as first argument
Marcin Kuzminski <marcin@python-works.com>
parents:
3840
diff
changeset
|
104 cls.apikey = cls.usr.api_key |
aff5dd957f35
classmethods should have cls as first argument
Marcin Kuzminski <marcin@python-works.com>
parents:
3840
diff
changeset
|
105 cls.test_user = UserModel().create_or_update( |
2526 | 106 username='test-api', |
107 password='test', | |
4183
da3c57422ee6
Change domain used for email addresses in tests
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4116
diff
changeset
|
108 email='test@example.com', |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
109 firstname='first', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
110 lastname='last' |
2526 | 111 ) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
112 meta.Session().commit() |
3891
aff5dd957f35
classmethods should have cls as first argument
Marcin Kuzminski <marcin@python-works.com>
parents:
3840
diff
changeset
|
113 cls.TEST_USER_LOGIN = cls.test_user.username |
aff5dd957f35
classmethods should have cls as first argument
Marcin Kuzminski <marcin@python-works.com>
parents:
3840
diff
changeset
|
114 cls.apikey_regular = cls.test_user.api_key |
2526 | 115 |
116 @classmethod | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
117 def teardown_class(cls): |
2526 | 118 pass |
119 | |
5907
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
120 def setup_method(self, method): |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
121 make_user_group() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
122 make_repo_group() |
2526 | 123 |
5907
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
124 def teardown_method(self, method): |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
125 fixture.destroy_user_group(TEST_USER_GROUP) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
126 fixture.destroy_gists() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
127 fixture.destroy_repo_group(TEST_REPO_GROUP) |
2526 | 128 |
129 def _compare_ok(self, id_, expected, given): | |
130 expected = jsonify({ | |
131 'id': id_, | |
132 'error': None, | |
133 'result': expected | |
134 }) | |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
135 given = ext_json.loads(given) |
7325
a560e17d88a1
tests: improve error reporting for api tests - show the actual expected and seen values
Mads Kiilerich <mads@kiilerich.com>
parents:
7320
diff
changeset
|
136 assert expected == given, (expected, given) |
2526 | 137 |
138 def _compare_error(self, id_, expected, given): | |
139 expected = jsonify({ | |
140 'id': id_, | |
141 'error': expected, | |
142 'result': None | |
143 }) | |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
144 given = ext_json.loads(given) |
7325
a560e17d88a1
tests: improve error reporting for api tests - show the actual expected and seen values
Mads Kiilerich <mads@kiilerich.com>
parents:
7320
diff
changeset
|
145 assert expected == given, (expected, given) |
2526 | 146 |
147 def test_api_wrong_key(self): | |
148 id_, params = _build_data('trololo', 'get_user') | |
2738 | 149 response = api_call(self, params) |
2526 | 150 |
5124
e3aab61a9411
spelling: more consistent casing of 'API key'
Mads Kiilerich <madski@unity3d.com>
parents:
5051
diff
changeset
|
151 expected = 'Invalid API key' |
2526 | 152 self._compare_error(id_, expected, given=response.body) |
153 | |
154 def test_api_missing_non_optional_param(self): | |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
155 id_, params = _build_data(self.apikey, 'get_repo') |
2738 | 156 response = api_call(self, params) |
2526 | 157 |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
158 expected = 'Missing non optional `repoid` arg in JSON DATA' |
2526 | 159 self._compare_error(id_, expected, given=response.body) |
160 | |
3165
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
161 def test_api_missing_non_optional_param_args_null(self): |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
162 id_, params = _build_data(self.apikey, 'get_repo') |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
163 params = params.replace('"args": {}', '"args": null') |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
164 response = api_call(self, params) |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
165 |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
166 expected = 'Missing non optional `repoid` arg in JSON DATA' |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
167 self._compare_error(id_, expected, given=response.body) |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
168 |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
169 def test_api_missing_non_optional_param_args_bad(self): |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
170 id_, params = _build_data(self.apikey, 'get_repo') |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
171 params = params.replace('"args": {}', '"args": 1') |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
172 response = api_call(self, params) |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
173 |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
174 expected = 'Missing non optional `repoid` arg in JSON DATA' |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
175 self._compare_error(id_, expected, given=response.body) |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
176 |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
177 def test_api_args_is_null(self): |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
178 id_, params = _build_data(self.apikey, 'get_users', ) |
3165
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
179 params = params.replace('"args": {}', '"args": null') |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
180 response = api_call(self, params) |
5913
8d4f3a852716
pytest migration: api: switch to standard assert statements
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5907
diff
changeset
|
181 assert response.status == '200 OK' |
3165
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
182 |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
183 def test_api_args_is_bad(self): |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
184 id_, params = _build_data(self.apikey, 'get_users', ) |
3165
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
185 params = params.replace('"args": {}', '"args": 1') |
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
186 response = api_call(self, params) |
5913
8d4f3a852716
pytest migration: api: switch to standard assert statements
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5907
diff
changeset
|
187 assert response.status == '200 OK' |
3165
e1baadec6217
fixes issue #702 API methods without arguments fail when "args":null
Marcin Kuzminski <marcin@python-works.com>
parents:
3163
diff
changeset
|
188 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
189 def test_api_args_different_args(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
190 expected = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
191 'ascii_letters': string.ascii_letters, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
192 'ws': string.whitespace, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
193 'printables': string.printable |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
194 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
195 id_, params = _build_data(self.apikey, 'test', args=expected) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
196 response = api_call(self, params) |
5913
8d4f3a852716
pytest migration: api: switch to standard assert statements
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5907
diff
changeset
|
197 assert response.status == '200 OK' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
198 self._compare_ok(id_, expected, response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
199 |
2526 | 200 def test_api_get_users(self): |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
201 id_, params = _build_data(self.apikey, 'get_users', ) |
2738 | 202 response = api_call(self, params) |
2526 | 203 ret_all = [] |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
204 _users = db.User.query().filter_by(is_default_user=False) \ |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
205 .order_by(db.User.username).all() |
3803
e2ebd8808351
fixed broken API tests after excluding default user
Marcin Kuzminski <marcin@python-works.com>
parents:
3774
diff
changeset
|
206 for usr in _users: |
2526 | 207 ret = usr.get_api_data() |
208 ret_all.append(jsonify(ret)) | |
209 expected = ret_all | |
210 self._compare_ok(id_, expected, given=response.body) | |
211 | |
212 def test_api_get_user(self): | |
213 id_, params = _build_data(self.apikey, 'get_user', | |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
214 userid=base.TEST_USER_ADMIN_LOGIN) |
2738 | 215 response = api_call(self, params) |
2526 | 216 |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
217 usr = db.User.get_by_username(base.TEST_USER_ADMIN_LOGIN) |
2526 | 218 ret = usr.get_api_data() |
5326
7557da2252a3
auth: construct AuthUser from either user_id or db.User object
Søren Løvborg <kwi@kwi.dk>
parents:
5319
diff
changeset
|
219 ret['permissions'] = AuthUser(dbuser=usr).permissions |
2526 | 220 |
221 expected = ret | |
222 self._compare_ok(id_, expected, given=response.body) | |
223 | |
224 def test_api_get_user_that_does_not_exist(self): | |
225 id_, params = _build_data(self.apikey, 'get_user', | |
226 userid='trololo') | |
2738 | 227 response = api_call(self, params) |
2526 | 228 |
229 expected = "user `%s` does not exist" % 'trololo' | |
230 self._compare_error(id_, expected, given=response.body) | |
231 | |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
232 def test_api_get_user_without_giving_userid(self): |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
233 id_, params = _build_data(self.apikey, 'get_user') |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
234 response = api_call(self, params) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
235 |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
236 usr = db.User.get_by_username(base.TEST_USER_ADMIN_LOGIN) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
237 ret = usr.get_api_data() |
5326
7557da2252a3
auth: construct AuthUser from either user_id or db.User object
Søren Løvborg <kwi@kwi.dk>
parents:
5319
diff
changeset
|
238 ret['permissions'] = AuthUser(dbuser=usr).permissions |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
239 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
240 expected = ret |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
241 self._compare_ok(id_, expected, given=response.body) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
242 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
243 def test_api_get_user_without_giving_userid_non_admin(self): |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
244 id_, params = _build_data(self.apikey_regular, 'get_user') |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
245 response = api_call(self, params) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
246 |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
247 usr = db.User.get_by_username(self.TEST_USER_LOGIN) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
248 ret = usr.get_api_data() |
5326
7557da2252a3
auth: construct AuthUser from either user_id or db.User object
Søren Løvborg <kwi@kwi.dk>
parents:
5319
diff
changeset
|
249 ret['permissions'] = AuthUser(dbuser=usr).permissions |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
250 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
251 expected = ret |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
252 self._compare_ok(id_, expected, given=response.body) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
253 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
254 def test_api_get_user_with_giving_userid_non_admin(self): |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
255 id_, params = _build_data(self.apikey_regular, 'get_user', |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
256 userid=self.TEST_USER_LOGIN) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
257 response = api_call(self, params) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
258 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
259 expected = 'userid is not the same as your user' |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
260 self._compare_error(id_, expected, given=response.body) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
261 |
7139
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
262 def test_api_pull_remote(self): |
8939
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
263 # Note: pulling from local repos is a misfeature - it will bypass access control |
7312
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
264 # ... but ok, if the path already has been set in the database |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
265 repo_name = 'test_pull' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
266 r = fixture.create_repo(repo_name, repo_type=self.REPO_TYPE) |
7312
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
267 # hack around that clone_uri can't be set to to a local path |
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
268 # (as shown by test_api_create_repo_clone_uri_local) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
269 r.clone_uri = os.path.join(db.Ui.get_by_key('paths', '/').ui_value, self.REPO) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
270 meta.Session().commit() |
2526 | 271 |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
272 pre_cached_tip = [repo.get_api_data()['last_changeset']['short_id'] for repo in db.Repository.query().filter(db.Repository.repo_name == repo_name)] |
7684
65d45e2fbc33
tests: verify in test_api_pull_remote that a pull from remote updates the tip cache
Mads Kiilerich <mads@kiilerich.com>
parents:
7672
diff
changeset
|
273 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
274 id_, params = _build_data(self.apikey, 'pull', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
275 repoid=repo_name,) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
276 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
277 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
278 expected = {'msg': 'Pulled from `%s`' % repo_name, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
279 'repository': repo_name} |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
280 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
281 |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
282 post_cached_tip = [repo.get_api_data()['last_changeset']['short_id'] for repo in db.Repository.query().filter(db.Repository.repo_name == repo_name)] |
7684
65d45e2fbc33
tests: verify in test_api_pull_remote that a pull from remote updates the tip cache
Mads Kiilerich <mads@kiilerich.com>
parents:
7672
diff
changeset
|
283 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
284 fixture.destroy_repo(repo_name) |
2526 | 285 |
7684
65d45e2fbc33
tests: verify in test_api_pull_remote that a pull from remote updates the tip cache
Mads Kiilerich <mads@kiilerich.com>
parents:
7672
diff
changeset
|
286 assert pre_cached_tip != post_cached_tip |
65d45e2fbc33
tests: verify in test_api_pull_remote that a pull from remote updates the tip cache
Mads Kiilerich <mads@kiilerich.com>
parents:
7672
diff
changeset
|
287 |
7139
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
288 def test_api_pull_fork(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
289 fork_name = 'fork' |
7139
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
290 fixture.create_fork(self.REPO, fork_name) |
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
291 id_, params = _build_data(self.apikey, 'pull', |
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
292 repoid=fork_name,) |
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
293 response = api_call(self, params) |
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
294 |
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
295 expected = {'msg': 'Pulled from `%s`' % fork_name, |
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
296 'repository': fork_name} |
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
297 self._compare_ok(id_, expected, given=response.body) |
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
298 |
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
299 fixture.destroy_repo(fork_name) |
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
300 |
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
301 def test_api_pull_error_no_remote_no_fork(self): |
91603c55aa61
tests: api: cover original behavior for 'pull'
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
6869
diff
changeset
|
302 # should fail because no clone_uri is set |
2526 | 303 id_, params = _build_data(self.apikey, 'pull', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
304 repoid=self.REPO, ) |
2738 | 305 response = api_call(self, params) |
2526 | 306 |
307 expected = 'Unable to pull changes from `%s`' % self.REPO | |
308 self._compare_error(id_, expected, given=response.body) | |
309 | |
7140
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
310 def test_api_pull_custom_remote(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
311 repo_name = 'test_pull_custom_remote' |
7140
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
312 fixture.create_repo(repo_name, repo_type=self.REPO_TYPE) |
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
313 |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
314 custom_remote_path = os.path.join(db.Ui.get_by_key('paths', '/').ui_value, self.REPO) |
7140
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
315 |
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
316 id_, params = _build_data(self.apikey, 'pull', |
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
317 repoid=repo_name, |
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
318 clone_uri=custom_remote_path) |
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
319 response = api_call(self, params) |
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
320 |
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
321 expected = {'msg': 'Pulled from `%s`' % repo_name, |
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
322 'repository': repo_name} |
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
323 self._compare_ok(id_, expected, given=response.body) |
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
324 |
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
325 fixture.destroy_repo(repo_name) |
3020943319f7
tests: api: add test for pulling from a custom remote
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7139
diff
changeset
|
326 |
2697
4565e655ea2a
API: Added option to rescann repositories via api call
Marcin Kuzminski <marcin@python-works.com>
parents:
2673
diff
changeset
|
327 def test_api_rescan_repos(self): |
4565e655ea2a
API: Added option to rescann repositories via api call
Marcin Kuzminski <marcin@python-works.com>
parents:
2673
diff
changeset
|
328 id_, params = _build_data(self.apikey, 'rescan_repos') |
2738 | 329 response = api_call(self, params) |
2697
4565e655ea2a
API: Added option to rescann repositories via api call
Marcin Kuzminski <marcin@python-works.com>
parents:
2673
diff
changeset
|
330 |
4565e655ea2a
API: Added option to rescann repositories via api call
Marcin Kuzminski <marcin@python-works.com>
parents:
2673
diff
changeset
|
331 expected = {'added': [], 'removed': []} |
4565e655ea2a
API: Added option to rescann repositories via api call
Marcin Kuzminski <marcin@python-works.com>
parents:
2673
diff
changeset
|
332 self._compare_ok(id_, expected, given=response.body) |
4565e655ea2a
API: Added option to rescann repositories via api call
Marcin Kuzminski <marcin@python-works.com>
parents:
2673
diff
changeset
|
333 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
334 @mock.patch.object(ScmModel, 'repo_scan', raise_exception) |
2697
4565e655ea2a
API: Added option to rescann repositories via api call
Marcin Kuzminski <marcin@python-works.com>
parents:
2673
diff
changeset
|
335 def test_api_rescann_error(self): |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
336 id_, params = _build_data(self.apikey, 'rescan_repos', ) |
2738 | 337 response = api_call(self, params) |
2697
4565e655ea2a
API: Added option to rescann repositories via api call
Marcin Kuzminski <marcin@python-works.com>
parents:
2673
diff
changeset
|
338 |
2737
e21cb7b1a4a5
added API call for locking/unlocking repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
2697
diff
changeset
|
339 expected = 'Error occurred during rescan repositories action' |
e21cb7b1a4a5
added API call for locking/unlocking repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
2697
diff
changeset
|
340 self._compare_error(id_, expected, given=response.body) |
e21cb7b1a4a5
added API call for locking/unlocking repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
2697
diff
changeset
|
341 |
2526 | 342 def test_api_create_existing_user(self): |
343 id_, params = _build_data(self.apikey, 'create_user', | |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
344 username=base.TEST_USER_ADMIN_LOGIN, |
5497
12b47803189f
cleanup: use example.com for tests and examples
Søren Løvborg <sorenl@unity3d.com>
parents:
5474
diff
changeset
|
345 email='test@example.com', |
2526 | 346 password='trololo') |
2738 | 347 response = api_call(self, params) |
2526 | 348 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
349 expected = "user `%s` already exist" % base.TEST_USER_ADMIN_LOGIN |
2526 | 350 self._compare_error(id_, expected, given=response.body) |
351 | |
352 def test_api_create_user_with_existing_email(self): | |
353 id_, params = _build_data(self.apikey, 'create_user', | |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
354 username=base.TEST_USER_ADMIN_LOGIN + 'new', |
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
355 email=base.TEST_USER_REGULAR_EMAIL, |
2526 | 356 password='trololo') |
2738 | 357 response = api_call(self, params) |
2526 | 358 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
359 expected = "email `%s` already exist" % base.TEST_USER_REGULAR_EMAIL |
2526 | 360 self._compare_error(id_, expected, given=response.body) |
361 | |
362 def test_api_create_user(self): | |
363 username = 'test_new_api_user' | |
5497
12b47803189f
cleanup: use example.com for tests and examples
Søren Løvborg <sorenl@unity3d.com>
parents:
5474
diff
changeset
|
364 email = username + "@example.com" |
2526 | 365 |
366 id_, params = _build_data(self.apikey, 'create_user', | |
367 username=username, | |
368 email=email, | |
369 password='trololo') | |
2738 | 370 response = api_call(self, params) |
2526 | 371 |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
372 usr = db.User.get_by_username(username) |
2526 | 373 ret = dict( |
374 msg='created new user `%s`' % username, | |
375 user=jsonify(usr.get_api_data()) | |
376 ) | |
377 | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
378 try: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
379 expected = ret |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
380 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
381 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
382 fixture.destroy_user(usr.user_id) |
2526 | 383 |
3809
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
384 def test_api_create_user_without_password(self): |
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
385 username = 'test_new_api_user_passwordless' |
5497
12b47803189f
cleanup: use example.com for tests and examples
Søren Løvborg <sorenl@unity3d.com>
parents:
5474
diff
changeset
|
386 email = username + "@example.com" |
3809
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
387 |
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
388 id_, params = _build_data(self.apikey, 'create_user', |
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
389 username=username, |
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
390 email=email) |
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
391 response = api_call(self, params) |
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
392 |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
393 usr = db.User.get_by_username(username) |
3809
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
394 ret = dict( |
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
395 msg='created new user `%s`' % username, |
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
396 user=jsonify(usr.get_api_data()) |
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
397 ) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
398 try: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
399 expected = ret |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
400 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
401 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
402 fixture.destroy_user(usr.user_id) |
3809
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
403 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
404 def test_api_create_user_with_extern_name(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
405 username = 'test_new_api_user_passwordless' |
5497
12b47803189f
cleanup: use example.com for tests and examples
Søren Løvborg <sorenl@unity3d.com>
parents:
5474
diff
changeset
|
406 email = username + "@example.com" |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
407 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
408 id_, params = _build_data(self.apikey, 'create_user', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
409 username=username, |
4209
de26de99ac5b
Rename auth_rhodecode to auth_internal
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4206
diff
changeset
|
410 email=email, extern_name='internal') |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
411 response = api_call(self, params) |
3809
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
412 |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
413 usr = db.User.get_by_username(username) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
414 ret = dict( |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
415 msg='created new user `%s`' % username, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
416 user=jsonify(usr.get_api_data()) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
417 ) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
418 try: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
419 expected = ret |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
420 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
421 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
422 fixture.destroy_user(usr.user_id) |
3809
647fb653048e
make the password optional in API calls
Marcin Kuzminski <marcin@python-works.com>
parents:
3808
diff
changeset
|
423 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
424 @mock.patch.object(UserModel, 'create_or_update', raise_exception) |
2526 | 425 def test_api_create_user_when_exception_happened(self): |
426 | |
427 username = 'test_new_api_user' | |
5497
12b47803189f
cleanup: use example.com for tests and examples
Søren Løvborg <sorenl@unity3d.com>
parents:
5474
diff
changeset
|
428 email = username + "@example.com" |
2526 | 429 |
430 id_, params = _build_data(self.apikey, 'create_user', | |
431 username=username, | |
432 email=email, | |
433 password='trololo') | |
2738 | 434 response = api_call(self, params) |
2526 | 435 expected = 'failed to create user `%s`' % username |
436 self._compare_error(id_, expected, given=response.body) | |
437 | |
438 def test_api_delete_user(self): | |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
439 usr = UserModel().create_or_update(username='test_user', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
440 password='qweqwe', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
441 email='u232@example.com', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
442 firstname='u1', lastname='u1') |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
443 meta.Session().commit() |
2526 | 444 username = usr.username |
445 email = usr.email | |
446 usr_id = usr.user_id | |
447 ## DELETE THIS USER NOW | |
448 | |
449 id_, params = _build_data(self.apikey, 'delete_user', | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
450 userid=username, ) |
2738 | 451 response = api_call(self, params) |
2526 | 452 |
453 ret = {'msg': 'deleted user ID:%s %s' % (usr_id, username), | |
454 'user': None} | |
455 expected = ret | |
456 self._compare_ok(id_, expected, given=response.body) | |
457 | |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
458 @mock.patch.object(UserModel, 'delete', raise_exception) |
2526 | 459 def test_api_delete_user_when_exception_happened(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
460 usr = UserModel().create_or_update(username='test_user', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
461 password='qweqwe', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
462 email='u232@example.com', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
463 firstname='u1', lastname='u1') |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
464 meta.Session().commit() |
2526 | 465 username = usr.username |
466 | |
467 id_, params = _build_data(self.apikey, 'delete_user', | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
468 userid=username, ) |
2738 | 469 response = api_call(self, params) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
470 ret = 'failed to delete user ID:%s %s' % (usr.user_id, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
471 usr.username) |
2526 | 472 expected = ret |
473 self._compare_error(id_, expected, given=response.body) | |
474 | |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
475 @base.parametrize('name,expected', [ |
5907
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
476 ('firstname', 'new_username'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
477 ('lastname', 'new_username'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
478 ('email', 'new_username'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
479 ('admin', True), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
480 ('admin', False), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
481 ('extern_type', 'ldap'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
482 ('extern_type', None), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
483 ('extern_name', 'test'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
484 ('extern_name', None), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
485 ('active', False), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
486 ('active', True), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
487 ('password', 'newpass'), |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
488 ]) |
2526 | 489 def test_api_update_user(self, name, expected): |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
490 usr = db.User.get_by_username(self.TEST_USER_LOGIN) |
2526 | 491 kw = {name: expected, |
492 'userid': usr.user_id} | |
493 id_, params = _build_data(self.apikey, 'update_user', **kw) | |
2738 | 494 response = api_call(self, params) |
2526 | 495 |
496 ret = { | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
497 'msg': 'updated user ID:%s %s' % ( |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
498 usr.user_id, self.TEST_USER_LOGIN), |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
499 'user': jsonify(db.User \ |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
500 .get_by_username(self.TEST_USER_LOGIN) \ |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
501 .get_api_data()) |
2526 | 502 } |
503 | |
504 expected = ret | |
505 self._compare_ok(id_, expected, given=response.body) | |
506 | |
507 def test_api_update_user_no_changed_params(self): | |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
508 usr = db.User.get_by_username(base.TEST_USER_ADMIN_LOGIN) |
2526 | 509 ret = jsonify(usr.get_api_data()) |
510 id_, params = _build_data(self.apikey, 'update_user', | |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
511 userid=base.TEST_USER_ADMIN_LOGIN) |
2526 | 512 |
2738 | 513 response = api_call(self, params) |
2526 | 514 ret = { |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
515 'msg': 'updated user ID:%s %s' % ( |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
516 usr.user_id, base.TEST_USER_ADMIN_LOGIN), |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
517 'user': ret |
2526 | 518 } |
519 expected = ret | |
520 self._compare_ok(id_, expected, given=response.body) | |
521 | |
522 def test_api_update_user_by_user_id(self): | |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
523 usr = db.User.get_by_username(base.TEST_USER_ADMIN_LOGIN) |
2526 | 524 ret = jsonify(usr.get_api_data()) |
525 id_, params = _build_data(self.apikey, 'update_user', | |
526 userid=usr.user_id) | |
527 | |
2738 | 528 response = api_call(self, params) |
2526 | 529 ret = { |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
530 'msg': 'updated user ID:%s %s' % ( |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
531 usr.user_id, base.TEST_USER_ADMIN_LOGIN), |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
532 'user': ret |
2526 | 533 } |
534 expected = ret | |
535 self._compare_ok(id_, expected, given=response.body) | |
536 | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
537 def test_api_update_user_default_user(self): |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
538 usr = db.User.get_default_user() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
539 id_, params = _build_data(self.apikey, 'update_user', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
540 userid=usr.user_id) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
541 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
542 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
543 expected = 'editing default user is forbidden' |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
544 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
545 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
546 @mock.patch.object(UserModel, 'update_user', raise_exception) |
2526 | 547 def test_api_update_user_when_exception_happens(self): |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
548 usr = db.User.get_by_username(base.TEST_USER_ADMIN_LOGIN) |
2526 | 549 ret = jsonify(usr.get_api_data()) |
550 id_, params = _build_data(self.apikey, 'update_user', | |
551 userid=usr.user_id) | |
552 | |
2738 | 553 response = api_call(self, params) |
2526 | 554 ret = 'failed to update user `%s`' % usr.user_id |
555 | |
556 expected = ret | |
557 self._compare_error(id_, expected, given=response.body) | |
558 | |
559 def test_api_get_repo(self): | |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
560 new_group = 'some_new_group' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
561 make_user_group(new_group) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
562 RepoModel().grant_user_group_permission(repo=self.REPO, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
563 group_name=new_group, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
564 perm='repository.read') |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
565 meta.Session().commit() |
2526 | 566 id_, params = _build_data(self.apikey, 'get_repo', |
567 repoid=self.REPO) | |
2738 | 568 response = api_call(self, params) |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
569 assert "tags" not in response.json['result'] |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
570 assert 'pull_requests' not in response.json['result'] |
2526 | 571 |
572 repo = RepoModel().get_by_repo_name(self.REPO) | |
573 ret = repo.get_api_data() | |
574 | |
575 members = [] | |
3215 | 576 followers = [] |
2526 | 577 for user in repo.repo_to_perm: |
578 perm = user.permission.permission_name | |
579 user = user.user | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
580 user_data = {'name': user.username, 'type': "user", |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
581 'permission': perm} |
2526 | 582 members.append(user_data) |
583 | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
584 for user_group in repo.users_group_to_perm: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
585 perm = user_group.permission.permission_name |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
586 user_group = user_group.users_group |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
587 user_group_data = {'name': user_group.users_group_name, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
588 'type': "user_group", 'permission': perm} |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
589 members.append(user_group_data) |
2526 | 590 |
3215 | 591 for user in repo.followers: |
592 followers.append(user.user.get_api_data()) | |
593 | |
2526 | 594 ret['members'] = members |
3215 | 595 ret['followers'] = followers |
2526 | 596 |
597 expected = ret | |
598 self._compare_ok(id_, expected, given=response.body) | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
599 fixture.destroy_user_group(new_group) |
2526 | 600 |
6653
98d26beb0965
api: add optional branches, tags and bookmarks information to get_repo API data
domruf <dominikruf@gmail.com>
parents:
6652
diff
changeset
|
601 id_, params = _build_data(self.apikey, 'get_repo', repoid=self.REPO, |
6654
bf9900e6e177
api: add option to get pullrequests for get_repo
domruf <dominikruf@gmail.com>
parents:
6653
diff
changeset
|
602 with_revision_names=True, |
bf9900e6e177
api: add option to get pullrequests for get_repo
domruf <dominikruf@gmail.com>
parents:
6653
diff
changeset
|
603 with_pullrequests=True) |
6653
98d26beb0965
api: add optional branches, tags and bookmarks information to get_repo API data
domruf <dominikruf@gmail.com>
parents:
6652
diff
changeset
|
604 response = api_call(self, params) |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
605 assert "v0.2.0" in response.json['result']['tags'] |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
606 assert 'pull_requests' in response.json['result'] |
6653
98d26beb0965
api: add optional branches, tags and bookmarks information to get_repo API data
domruf <dominikruf@gmail.com>
parents:
6652
diff
changeset
|
607 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
608 @base.parametrize('grant_perm', [ |
5907
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
609 ('repository.admin'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
610 ('repository.write'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
611 ('repository.read'), |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
612 ]) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
613 def test_api_get_repo_by_non_admin(self, grant_perm): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
614 RepoModel().grant_user_permission(repo=self.REPO, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
615 user=self.TEST_USER_LOGIN, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
616 perm=grant_perm) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
617 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
618 id_, params = _build_data(self.apikey_regular, 'get_repo', |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
619 repoid=self.REPO) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
620 response = api_call(self, params) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
621 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
622 repo = RepoModel().get_by_repo_name(self.REPO) |
8379
a893d2ce599c
tests: fix test_api_get_repo_by_non_admin dependency on other users having repo permissions
Mads Kiilerich <mads@kiilerich.com>
parents:
8360
diff
changeset
|
623 assert len(repo.repo_to_perm) >= 2 # make sure we actually are testing something - probably the default 2 permissions, possibly more |
a893d2ce599c
tests: fix test_api_get_repo_by_non_admin dependency on other users having repo permissions
Mads Kiilerich <mads@kiilerich.com>
parents:
8360
diff
changeset
|
624 |
a893d2ce599c
tests: fix test_api_get_repo_by_non_admin dependency on other users having repo permissions
Mads Kiilerich <mads@kiilerich.com>
parents:
8360
diff
changeset
|
625 expected = repo.get_api_data() |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
626 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
627 members = [] |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
628 for user in repo.repo_to_perm: |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
629 perm = user.permission.permission_name |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
630 user_obj = user.user |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
631 user_data = {'name': user_obj.username, 'type': "user", |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
632 'permission': perm} |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
633 members.append(user_data) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
634 for user_group in repo.users_group_to_perm: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
635 perm = user_group.permission.permission_name |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
636 user_group_obj = user_group.users_group |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
637 user_group_data = {'name': user_group_obj.users_group_name, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
638 'type': "user_group", 'permission': perm} |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
639 members.append(user_group_data) |
8379
a893d2ce599c
tests: fix test_api_get_repo_by_non_admin dependency on other users having repo permissions
Mads Kiilerich <mads@kiilerich.com>
parents:
8360
diff
changeset
|
640 expected['members'] = members |
a893d2ce599c
tests: fix test_api_get_repo_by_non_admin dependency on other users having repo permissions
Mads Kiilerich <mads@kiilerich.com>
parents:
8360
diff
changeset
|
641 |
a893d2ce599c
tests: fix test_api_get_repo_by_non_admin dependency on other users having repo permissions
Mads Kiilerich <mads@kiilerich.com>
parents:
8360
diff
changeset
|
642 followers = [] |
3216
81bbb8086f03
whitespace cleanup
Marcin Kuzminski <marcin@python-works.com>
parents:
3215
diff
changeset
|
643 |
3215 | 644 for user in repo.followers: |
645 followers.append(user.user.get_api_data()) | |
3216
81bbb8086f03
whitespace cleanup
Marcin Kuzminski <marcin@python-works.com>
parents:
3215
diff
changeset
|
646 |
8379
a893d2ce599c
tests: fix test_api_get_repo_by_non_admin dependency on other users having repo permissions
Mads Kiilerich <mads@kiilerich.com>
parents:
8360
diff
changeset
|
647 expected['followers'] = followers |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
648 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
649 try: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
650 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
651 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
652 RepoModel().revoke_user_permission(self.REPO, self.TEST_USER_LOGIN) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
653 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
654 def test_api_get_repo_by_non_admin_no_permission_to_repo(self): |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
655 RepoModel().grant_user_permission(repo=self.REPO, |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
656 user=db.User.DEFAULT_USER_NAME, |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
657 perm='repository.none') |
7687
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
658 try: |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
659 RepoModel().grant_user_permission(repo=self.REPO, |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
660 user=self.TEST_USER_LOGIN, |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
661 perm='repository.none') |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
662 |
7687
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
663 id_, params = _build_data(self.apikey_regular, 'get_repo', |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
664 repoid=self.REPO) |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
665 response = api_call(self, params) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
666 |
7687
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
667 expected = 'repository `%s` does not exist' % (self.REPO) |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
668 self._compare_error(id_, expected, given=response.body) |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
669 finally: |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
670 RepoModel().grant_user_permission(repo=self.REPO, |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
671 user=db.User.DEFAULT_USER_NAME, |
7687
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
672 perm='repository.read') |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
673 |
2526 | 674 def test_api_get_repo_that_doesn_not_exist(self): |
675 id_, params = _build_data(self.apikey, 'get_repo', | |
676 repoid='no-such-repo') | |
2738 | 677 response = api_call(self, params) |
2526 | 678 |
679 ret = 'repository `%s` does not exist' % 'no-such-repo' | |
680 expected = ret | |
681 self._compare_error(id_, expected, given=response.body) | |
682 | |
683 def test_api_get_repos(self): | |
684 id_, params = _build_data(self.apikey, 'get_repos') | |
2738 | 685 response = api_call(self, params) |
2526 | 686 |
6515
884d2c246570
cleanup: use list comprehensions
Søren Løvborg <sorenl@unity3d.com>
parents:
6364
diff
changeset
|
687 expected = jsonify([ |
884d2c246570
cleanup: use list comprehensions
Søren Løvborg <sorenl@unity3d.com>
parents:
6364
diff
changeset
|
688 repo.get_api_data() |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
689 for repo in db.Repository.query() |
6515
884d2c246570
cleanup: use list comprehensions
Søren Løvborg <sorenl@unity3d.com>
parents:
6364
diff
changeset
|
690 ]) |
2526 | 691 |
692 self._compare_ok(id_, expected, given=response.body) | |
693 | |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
694 def test_api_get_repos_non_admin(self): |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
695 id_, params = _build_data(self.apikey_regular, 'get_repos') |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
696 response = api_call(self, params) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
697 |
6515
884d2c246570
cleanup: use list comprehensions
Søren Løvborg <sorenl@unity3d.com>
parents:
6364
diff
changeset
|
698 expected = jsonify([ |
884d2c246570
cleanup: use list comprehensions
Søren Løvborg <sorenl@unity3d.com>
parents:
6364
diff
changeset
|
699 repo.get_api_data() |
8734
87c2cd07166a
lib: move get_all_user_repos to AuthUser
Mads Kiilerich <mads@kiilerich.com>
parents:
8728
diff
changeset
|
700 for repo in AuthUser(dbuser=db.User.get_by_username(self.TEST_USER_LOGIN)).get_all_user_repos() |
6515
884d2c246570
cleanup: use list comprehensions
Søren Løvborg <sorenl@unity3d.com>
parents:
6364
diff
changeset
|
701 ]) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
702 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
703 self._compare_ok(id_, expected, given=response.body) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
704 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
705 @base.parametrize('name,ret_type', [ |
5907
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
706 ('all', 'all'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
707 ('dirs', 'dirs'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
708 ('files', 'files'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
709 ]) |
2526 | 710 def test_api_get_repo_nodes(self, name, ret_type): |
711 rev = 'tip' | |
712 path = '/' | |
713 id_, params = _build_data(self.apikey, 'get_repo_nodes', | |
714 repoid=self.REPO, revision=rev, | |
715 root_path=path, | |
716 ret_type=ret_type) | |
2738 | 717 response = api_call(self, params) |
2526 | 718 |
719 # we don't the actual return types here since it's tested somewhere | |
720 # else | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
721 expected = response.json['result'] |
2526 | 722 self._compare_ok(id_, expected, given=response.body) |
723 | |
724 def test_api_get_repo_nodes_bad_revisions(self): | |
725 rev = 'i-dont-exist' | |
726 path = '/' | |
727 id_, params = _build_data(self.apikey, 'get_repo_nodes', | |
728 repoid=self.REPO, revision=rev, | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
729 root_path=path, ) |
2738 | 730 response = api_call(self, params) |
2526 | 731 |
732 expected = 'failed to get repo: `%s` nodes' % self.REPO | |
733 self._compare_error(id_, expected, given=response.body) | |
734 | |
735 def test_api_get_repo_nodes_bad_path(self): | |
736 rev = 'tip' | |
737 path = '/idontexits' | |
738 id_, params = _build_data(self.apikey, 'get_repo_nodes', | |
739 repoid=self.REPO, revision=rev, | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
740 root_path=path, ) |
2738 | 741 response = api_call(self, params) |
2526 | 742 |
743 expected = 'failed to get repo: `%s` nodes' % self.REPO | |
744 self._compare_error(id_, expected, given=response.body) | |
745 | |
746 def test_api_get_repo_nodes_bad_ret_type(self): | |
747 rev = 'tip' | |
748 path = '/' | |
749 ret_type = 'error' | |
750 id_, params = _build_data(self.apikey, 'get_repo_nodes', | |
751 repoid=self.REPO, revision=rev, | |
752 root_path=path, | |
753 ret_type=ret_type) | |
2738 | 754 response = api_call(self, params) |
2526 | 755 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
756 expected = ('ret_type must be one of %s' |
8044
91103995888b
tests: fix ordering of options of "ret_type must be one of ..." returned from api
Mads Kiilerich <mads@kiilerich.com>
parents:
8021
diff
changeset
|
757 % (','.join(sorted(['files', 'dirs', 'all'])))) |
2526 | 758 self._compare_error(id_, expected, given=response.body) |
759 | |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
760 @base.parametrize('name,ret_type,grant_perm', [ |
5907
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
761 ('all', 'all', 'repository.write'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
762 ('dirs', 'dirs', 'repository.admin'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
763 ('files', 'files', 'repository.read'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
764 ]) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
765 def test_api_get_repo_nodes_by_regular_user(self, name, ret_type, grant_perm): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
766 RepoModel().grant_user_permission(repo=self.REPO, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
767 user=self.TEST_USER_LOGIN, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
768 perm=grant_perm) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
769 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
770 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
771 rev = 'tip' |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
772 path = '/' |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
773 id_, params = _build_data(self.apikey_regular, 'get_repo_nodes', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
774 repoid=self.REPO, revision=rev, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
775 root_path=path, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
776 ret_type=ret_type) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
777 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
778 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
779 # we don't the actual return types here since it's tested somewhere |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
780 # else |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
781 expected = response.json['result'] |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
782 try: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
783 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
784 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
785 RepoModel().revoke_user_permission(self.REPO, self.TEST_USER_LOGIN) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
786 |
8940
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
787 @base.parametrize('changing_attr,updates', [ |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
788 ('owner', {'owner': base.TEST_USER_REGULAR_LOGIN}), |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
789 ('description', {'description': 'new description'}), |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
790 ('clone_uri', {'clone_uri': 'http://example.com/repo'}), # will fail - pulling from non-existing repo should fail |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
791 ('clone_uri', {'clone_uri': '/repo'}), # will fail - pulling from local repo was a misfeature - it would bypass access control |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
792 ('clone_uri', {'clone_uri': None}), |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
793 ('landing_rev', {'landing_rev': 'branch:master'}), |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
794 ('private', {'private': True}), |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
795 #('enable_statistics', {'enable_statistics': True}), # currently broken |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
796 #('enable_downloads', {'enable_downloads': True}), # currently broken |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
797 ('repo_group', {'group': 'test_group_for_update'}), |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
798 ]) |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
799 def test_api_create_repo(self, changing_attr, updates): |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
800 repo_name = repo_name_full = 'new_repo' |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
801 |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
802 if changing_attr == 'repo_group': |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
803 group_name = updates['group'] |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
804 fixture.create_repo_group(group_name) |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
805 repo_name_full = '/'.join([group_name, repo_name]) |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
806 updates = {} |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
807 |
2526 | 808 id_, params = _build_data(self.apikey, 'create_repo', |
8940
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
809 repo_type=self.REPO_TYPE, repo_name=repo_name_full, **updates) |
2738 | 810 response = api_call(self, params) |
2526 | 811 |
8940
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
812 try: |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
813 expected = { |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
814 'msg': 'Created new repository `%s`' % repo_name_full, |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
815 'success': True} |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
816 if changing_attr == 'clone_uri' and updates['clone_uri']: |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
817 expected = 'failed to create repository `%s`' % repo_name |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
818 self._compare_error(id_, expected, given=response.body) |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
819 return |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
820 else: |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
821 self._compare_ok(id_, expected, given=response.body) |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
822 |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
823 repo = db.Repository.get_by_repo_name(repo_name_full) |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
824 assert repo is not None |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
825 |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
826 expected_data = { |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
827 'clone_uri': None, |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
828 'created_on': repo.created_on, |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
829 'description': repo_name, |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
830 'enable_downloads': False, |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
831 'enable_statistics': False, |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
832 'fork_of': None, |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
833 'landing_rev': ['rev', 'tip'], |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
834 'last_changeset': {'author': '', |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
835 'date': datetime.datetime(1970, 1, 1, 0, 0), |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
836 'message': '', |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
837 'raw_id': '0000000000000000000000000000000000000000', |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
838 'revision': -1, |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
839 'short_id': '000000000000'}, |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
840 'owner': 'test_admin', |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
841 'private': False, |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
842 'repo_id': repo.repo_id, |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
843 'repo_name': repo_name_full, |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
844 'repo_type': self.REPO_TYPE, |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
845 } |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
846 expected_data.update(updates) |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
847 if changing_attr == 'landing_rev': |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
848 expected_data['landing_rev'] = expected_data['landing_rev'].split(':', 1) |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
849 assert repo.get_api_data() == expected_data |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
850 finally: |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
851 fixture.destroy_repo(repo_name_full) |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
852 if changing_attr == 'repo_group': |
1d1fe8c2ef57
tests: update test_api_create_repo with better coverage of create_repo api
Mads Kiilerich <mads@kiilerich.com>
parents:
8939
diff
changeset
|
853 fixture.destroy_repo_group(group_name) |
2526 | 854 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
855 @base.parametrize('repo_name', [ |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
856 '', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
857 '.', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
858 '..', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
859 ':', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
860 '/', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
861 '<test>', |
7315
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
862 ]) |
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
863 def test_api_create_repo_bad_names(self, repo_name): |
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
864 id_, params = _build_data(self.apikey, 'create_repo', |
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
865 repo_name=repo_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
866 owner=base.TEST_USER_ADMIN_LOGIN, |
7315
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
867 repo_type=self.REPO_TYPE, |
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
868 ) |
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
869 response = api_call(self, params) |
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
870 if repo_name == '/': |
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
871 expected = "repo group `` not found" |
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
872 self._compare_error(id_, expected, given=response.body) |
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
873 else: |
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
874 expected = "failed to create repository `%s`" % repo_name |
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
875 self._compare_error(id_, expected, given=response.body) |
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
876 fixture.destroy_repo(repo_name) |
3fb7c1e059ed
tests: introduce API test coverage for some invalid repo names - especially repo names that would need escaping to prevent XSS
Mads Kiilerich <mads@kiilerich.com>
parents:
7314
diff
changeset
|
877 |
7310
d64cf8f33f6f
tests: improve test coverage of clone_uri and expose some existing problems with unauthenticated cloning from local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
5947
diff
changeset
|
878 def test_api_create_repo_clone_uri_local(self): |
8939
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
879 # cloning from local repos was a misfeature - it would bypass access control |
7312
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
880 # TODO: introduce other test coverage of actual remote cloning |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
881 clone_uri = os.path.join(base.TESTS_TMP_PATH, self.REPO) |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
882 repo_name = 'api-repo' |
7310
d64cf8f33f6f
tests: improve test coverage of clone_uri and expose some existing problems with unauthenticated cloning from local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
5947
diff
changeset
|
883 id_, params = _build_data(self.apikey, 'create_repo', |
d64cf8f33f6f
tests: improve test coverage of clone_uri and expose some existing problems with unauthenticated cloning from local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
5947
diff
changeset
|
884 repo_name=repo_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
885 owner=base.TEST_USER_ADMIN_LOGIN, |
7310
d64cf8f33f6f
tests: improve test coverage of clone_uri and expose some existing problems with unauthenticated cloning from local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
5947
diff
changeset
|
886 repo_type=self.REPO_TYPE, |
d64cf8f33f6f
tests: improve test coverage of clone_uri and expose some existing problems with unauthenticated cloning from local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
5947
diff
changeset
|
887 clone_uri=clone_uri, |
d64cf8f33f6f
tests: improve test coverage of clone_uri and expose some existing problems with unauthenticated cloning from local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
5947
diff
changeset
|
888 ) |
d64cf8f33f6f
tests: improve test coverage of clone_uri and expose some existing problems with unauthenticated cloning from local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
5947
diff
changeset
|
889 response = api_call(self, params) |
7312
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
890 expected = "failed to create repository `%s`" % repo_name |
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
891 self._compare_error(id_, expected, given=response.body) |
7310
d64cf8f33f6f
tests: improve test coverage of clone_uri and expose some existing problems with unauthenticated cloning from local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
5947
diff
changeset
|
892 fixture.destroy_repo(repo_name) |
d64cf8f33f6f
tests: improve test coverage of clone_uri and expose some existing problems with unauthenticated cloning from local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
5947
diff
changeset
|
893 |
5304
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
894 def test_api_create_repo_and_repo_group(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
895 repo_group_name = 'my_gr' |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
896 repo_name = '%s/api-repo' % repo_group_name |
7313
eeb8ddecaee2
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7312
diff
changeset
|
897 |
7314
083fbf531a5d
repos: only allow api repo creation in existing groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7313
diff
changeset
|
898 # repo creation can no longer also create repo group |
083fbf531a5d
repos: only allow api repo creation in existing groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7313
diff
changeset
|
899 id_, params = _build_data(self.apikey, 'create_repo', |
083fbf531a5d
repos: only allow api repo creation in existing groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7313
diff
changeset
|
900 repo_name=repo_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
901 owner=base.TEST_USER_ADMIN_LOGIN, |
7314
083fbf531a5d
repos: only allow api repo creation in existing groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7313
diff
changeset
|
902 repo_type=self.REPO_TYPE,) |
083fbf531a5d
repos: only allow api repo creation in existing groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7313
diff
changeset
|
903 response = api_call(self, params) |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
904 expected = 'repo group `%s` not found' % repo_group_name |
7314
083fbf531a5d
repos: only allow api repo creation in existing groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7313
diff
changeset
|
905 self._compare_error(id_, expected, given=response.body) |
083fbf531a5d
repos: only allow api repo creation in existing groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7313
diff
changeset
|
906 assert RepoModel().get_by_repo_name(repo_name) is None |
083fbf531a5d
repos: only allow api repo creation in existing groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7313
diff
changeset
|
907 |
083fbf531a5d
repos: only allow api repo creation in existing groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7313
diff
changeset
|
908 # create group before creating repo |
083fbf531a5d
repos: only allow api repo creation in existing groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7313
diff
changeset
|
909 rg = fixture.create_repo_group(repo_group_name) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
910 meta.Session().commit() |
7314
083fbf531a5d
repos: only allow api repo creation in existing groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7313
diff
changeset
|
911 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
912 id_, params = _build_data(self.apikey, 'create_repo', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
913 repo_name=repo_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
914 owner=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
915 repo_type=self.REPO_TYPE,) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
916 response = api_call(self, params) |
7313
eeb8ddecaee2
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7312
diff
changeset
|
917 expected = { |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
918 'msg': 'Created new repository `%s`' % repo_name, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
919 'success': True, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
920 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
921 self._compare_ok(id_, expected, given=response.body) |
7313
eeb8ddecaee2
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7312
diff
changeset
|
922 repo = RepoModel().get_by_repo_name(repo_name) |
7295
d314edb04d11
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7294
diff
changeset
|
923 assert repo is not None |
7313
eeb8ddecaee2
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7312
diff
changeset
|
924 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
925 fixture.destroy_repo(repo_name) |
7313
eeb8ddecaee2
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7312
diff
changeset
|
926 fixture.destroy_repo_group(repo_group_name) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
927 |
5304
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
928 def test_api_create_repo_in_repo_group_without_permission(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
929 repo_group_basename = 'api-repo-repo' |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
930 repo_group_name = '%s/%s' % (TEST_REPO_GROUP, repo_group_basename) |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
931 repo_name = '%s/api-repo' % repo_group_name |
5304
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
932 |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
933 top_group = db.RepoGroup.get_by_group_name(TEST_REPO_GROUP) |
7316
7d5e8894db6c
tests: clarify that fixture.create_repo_group takes a name, not a path
Mads Kiilerich <mads@kiilerich.com>
parents:
7315
diff
changeset
|
934 assert top_group |
7299
57a733313e4f
repos: introduce low level slug check of repo and group names
Mads Kiilerich <mads@kiilerich.com>
parents:
7298
diff
changeset
|
935 rg = fixture.create_repo_group(repo_group_basename, parent_group_id=top_group) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
936 meta.Session().commit() |
5304
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
937 RepoGroupModel().grant_user_permission(repo_group_name, |
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
938 self.TEST_USER_LOGIN, |
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
939 'group.none') |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
940 meta.Session().commit() |
5304
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
941 |
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
942 id_, params = _build_data(self.apikey_regular, 'create_repo', |
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
943 repo_name=repo_name, |
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
944 repo_type=self.REPO_TYPE, |
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
945 ) |
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
946 response = api_call(self, params) |
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
947 |
8513
7643d8ecbb20
api: fix repo group permission check for repo creation
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
948 # API access control match Web access control: |
7643d8ecbb20
api: fix repo group permission check for repo creation
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
949 expected = 'no permission to create repo in test_repo_group/api-repo-repo' |
7643d8ecbb20
api: fix repo group permission check for repo creation
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
950 self._compare_error(id_, expected, given=response.body) |
7643d8ecbb20
api: fix repo group permission check for repo creation
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
951 |
5304
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
952 fixture.destroy_repo(repo_name) |
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
953 fixture.destroy_repo_group(repo_group_name) |
975f5769be08
tests: add test coverage for how repo creation access control is different through API and Web
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5227
diff
changeset
|
954 |
2526 | 955 def test_api_create_repo_unknown_owner(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
956 repo_name = 'api-repo' |
2526 | 957 owner = 'i-dont-exist' |
958 id_, params = _build_data(self.apikey, 'create_repo', | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
959 repo_name=repo_name, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
960 owner=owner, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
961 repo_type=self.REPO_TYPE, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
962 ) |
2738 | 963 response = api_call(self, params) |
2526 | 964 expected = 'user `%s` does not exist' % owner |
965 self._compare_error(id_, expected, given=response.body) | |
966 | |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
967 def test_api_create_repo_dont_specify_owner(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
968 repo_name = 'api-repo' |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
969 owner = 'i-dont-exist' |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
970 id_, params = _build_data(self.apikey, 'create_repo', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
971 repo_name=repo_name, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
972 repo_type=self.REPO_TYPE, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
973 ) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
974 response = api_call(self, params) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
975 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
976 repo = RepoModel().get_by_repo_name(repo_name) |
6868
48a00daba2f2
codingstyle: replace comparison for equality against None with "is" expression
Lars Kruse <devel@sumpfralle.de>
parents:
6864
diff
changeset
|
977 assert repo is not None |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
978 ret = { |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
979 'msg': 'Created new repository `%s`' % repo_name, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
980 'success': True, |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
981 } |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
982 expected = ret |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
983 self._compare_ok(id_, expected, given=response.body) |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
984 fixture.destroy_repo(repo_name) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
985 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
986 def test_api_create_repo_by_non_admin(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
987 repo_name = 'api-repo' |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
988 owner = 'i-dont-exist' |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
989 id_, params = _build_data(self.apikey_regular, 'create_repo', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
990 repo_name=repo_name, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
991 repo_type=self.REPO_TYPE, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
992 ) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
993 response = api_call(self, params) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
994 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
995 repo = RepoModel().get_by_repo_name(repo_name) |
6868
48a00daba2f2
codingstyle: replace comparison for equality against None with "is" expression
Lars Kruse <devel@sumpfralle.de>
parents:
6864
diff
changeset
|
996 assert repo is not None |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
997 ret = { |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
998 'msg': 'Created new repository `%s`' % repo_name, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
999 'success': True, |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1000 } |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1001 expected = ret |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1002 self._compare_ok(id_, expected, given=response.body) |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1003 fixture.destroy_repo(repo_name) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1004 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1005 def test_api_create_repo_by_non_admin_specify_owner(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1006 repo_name = 'api-repo' |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1007 owner = 'i-dont-exist' |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1008 id_, params = _build_data(self.apikey_regular, 'create_repo', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1009 repo_name=repo_name, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1010 repo_type=self.REPO_TYPE, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1011 owner=owner) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1012 response = api_call(self, params) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1013 |
4212
24c0d584ba86
General renaming to Kallithea
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4209
diff
changeset
|
1014 expected = 'Only Kallithea admin can specify `owner` param' |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1015 self._compare_error(id_, expected, given=response.body) |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1016 fixture.destroy_repo(repo_name) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1017 |
2526 | 1018 def test_api_create_repo_exists(self): |
1019 repo_name = self.REPO | |
1020 id_, params = _build_data(self.apikey, 'create_repo', | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1021 repo_name=repo_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1022 owner=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1023 repo_type=self.REPO_TYPE,) |
2738 | 1024 response = api_call(self, params) |
2526 | 1025 expected = "repo `%s` already exist" % repo_name |
1026 self._compare_error(id_, expected, given=response.body) | |
1027 | |
7313
eeb8ddecaee2
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7312
diff
changeset
|
1028 def test_api_create_repo_dot_dot(self): |
7314
083fbf531a5d
repos: only allow api repo creation in existing groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7313
diff
changeset
|
1029 # it is only possible to create repositories in existing repo groups - and '..' can't be used |
7313
eeb8ddecaee2
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7312
diff
changeset
|
1030 group_name = '%s/..' % TEST_REPO_GROUP |
eeb8ddecaee2
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7312
diff
changeset
|
1031 repo_name = '%s/%s' % (group_name, 'could-be-outside') |
eeb8ddecaee2
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7312
diff
changeset
|
1032 id_, params = _build_data(self.apikey, 'create_repo', |
eeb8ddecaee2
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7312
diff
changeset
|
1033 repo_name=repo_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1034 owner=base.TEST_USER_ADMIN_LOGIN, |
7313
eeb8ddecaee2
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7312
diff
changeset
|
1035 repo_type=self.REPO_TYPE,) |
eeb8ddecaee2
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7312
diff
changeset
|
1036 response = api_call(self, params) |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1037 expected = 'repo group `%s` not found' % group_name |
7314
083fbf531a5d
repos: only allow api repo creation in existing groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7313
diff
changeset
|
1038 self._compare_error(id_, expected, given=response.body) |
7313
eeb8ddecaee2
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7312
diff
changeset
|
1039 fixture.destroy_repo(repo_name) |
eeb8ddecaee2
tests: tweak test coverage of repo creation API - prepare for other changes
Mads Kiilerich <mads@kiilerich.com>
parents:
7312
diff
changeset
|
1040 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1041 @mock.patch.object(RepoModel, 'create', raise_exception) |
2526 | 1042 def test_api_create_repo_exception_occurred(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1043 repo_name = 'api-repo' |
2526 | 1044 id_, params = _build_data(self.apikey, 'create_repo', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1045 repo_name=repo_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1046 owner=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1047 repo_type=self.REPO_TYPE,) |
2738 | 1048 response = api_call(self, params) |
2526 | 1049 expected = 'failed to create repository `%s`' % repo_name |
1050 self._compare_error(id_, expected, given=response.body) | |
1051 | |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1052 @base.parametrize('changing_attr,updates', [ |
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1053 ('owner', {'owner': base.TEST_USER_REGULAR_LOGIN}), |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1054 ('description', {'description': 'new description'}), |
7312
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
1055 ('clone_uri', {'clone_uri': 'http://example.com/repo'}), # will fail - pulling from non-existing repo should fail |
8939
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1056 ('clone_uri', {'clone_uri': '/repo'}), # will fail - pulling from local repo was a misfeature - it would bypass access control |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1057 ('clone_uri', {'clone_uri': None}), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1058 ('landing_rev', {'landing_rev': 'branch:master'}), |
8939
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1059 ('private', {'private': True}), |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1060 ('enable_statistics', {'enable_statistics': True}), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1061 ('enable_downloads', {'enable_downloads': True}), |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1062 ('name', {'name': 'new_repo_name'}), |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1063 ('repo_group', {'group': 'test_group_for_update'}), |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1064 ]) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1065 def test_api_update_repo(self, changing_attr, updates): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1066 repo_name = 'api_update_me' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1067 repo = fixture.create_repo(repo_name, repo_type=self.REPO_TYPE) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1068 if changing_attr == 'repo_group': |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1069 fixture.create_repo_group(updates['group']) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1070 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1071 id_, params = _build_data(self.apikey, 'update_repo', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1072 repoid=repo_name, **updates) |
8939
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1073 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1074 if changing_attr == 'name': |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1075 repo_name = updates['name'] |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1076 if changing_attr == 'repo_group': |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1077 repo_name = '/'.join([updates['group'], repo_name]) |
8939
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1078 expected = { |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1079 'msg': 'updated repo ID:%s %s' % (repo.repo_id, repo_name), |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1080 'repository': repo.get_api_data() |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1081 } |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1082 expected['repository'].update(updates) |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1083 if changing_attr == 'clone_uri' and updates['clone_uri'] is None: |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1084 expected['repository']['clone_uri'] = '' |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1085 if changing_attr == 'landing_rev': |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1086 expected['repository']['landing_rev'] = expected['repository']['landing_rev'].split(':', 1) |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1087 if changing_attr == 'name': |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1088 expected['repository']['repo_name'] = expected['repository'].pop('name') |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1089 if changing_attr == 'repo_group': |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1090 expected['repository']['repo_name'] = expected['repository'].pop('group') + '/' + repo.repo_name |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1091 |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1092 response = api_call(self, params) |
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1093 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1094 try: |
7312
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
1095 if changing_attr == 'clone_uri' and updates['clone_uri']: |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1096 expected = 'failed to update repo `%s`' % repo_name |
7312
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
1097 self._compare_error(id_, expected, given=response.body) |
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
1098 else: |
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
1099 self._compare_ok(id_, expected, given=response.body) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1100 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1101 fixture.destroy_repo(repo_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1102 if changing_attr == 'repo_group': |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1103 fixture.destroy_repo_group(updates['group']) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1104 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1105 @base.parametrize('changing_attr,updates', [ |
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1106 ('owner', {'owner': base.TEST_USER_REGULAR_LOGIN}), |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1107 ('description', {'description': 'new description'}), |
7312
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
1108 ('clone_uri', {'clone_uri': 'http://example.com/repo'}), # will fail - pulling from non-existing repo should fail |
8939
9de126d62202
tests: update_repo without begging the question
Mads Kiilerich <mads@kiilerich.com>
parents:
8867
diff
changeset
|
1109 ('clone_uri', {'clone_uri': '/repo'}), # will fail - pulling from local repo was a misfeature - it would bypass access control |
5946
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1110 ('clone_uri', {'clone_uri': None}), |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1111 ('landing_rev', {'landing_rev': 'branch:master'}), |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1112 ('enable_statistics', {'enable_statistics': True}), |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1113 ('enable_downloads', {'enable_downloads': True}), |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1114 ('name', {'name': 'new_repo_name'}), |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1115 ('repo_group', {'group': 'test_group_for_update'}), |
5946
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1116 ]) |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1117 def test_api_update_group_repo(self, changing_attr, updates): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1118 group_name = 'lololo' |
5946
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1119 fixture.create_repo_group(group_name) |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1120 repo_name = '%s/api_update_me' % group_name |
5946
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1121 repo = fixture.create_repo(repo_name, repo_group=group_name, repo_type=self.REPO_TYPE) |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1122 if changing_attr == 'repo_group': |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1123 fixture.create_repo_group(updates['group']) |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1124 |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1125 id_, params = _build_data(self.apikey, 'update_repo', |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1126 repoid=repo_name, **updates) |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1127 response = api_call(self, params) |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1128 if changing_attr == 'name': |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1129 repo_name = '%s/%s' % (group_name, updates['name']) |
5946
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1130 if changing_attr == 'repo_group': |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1131 repo_name = '/'.join([updates['group'], repo_name.rsplit('/', 1)[-1]]) |
5946
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1132 try: |
7312
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
1133 if changing_attr == 'clone_uri' and updates['clone_uri']: |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1134 expected = 'failed to update repo `%s`' % repo_name |
7312
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
1135 self._compare_error(id_, expected, given=response.body) |
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
1136 else: |
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
1137 expected = { |
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
1138 'msg': 'updated repo ID:%s %s' % (repo.repo_id, repo_name), |
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
1139 'repository': repo.get_api_data() |
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
1140 } |
fa3365c94064
repos: introduce low level check of clone URIs to prevent direct file system access to local repos
Mads Kiilerich <mads@kiilerich.com>
parents:
7310
diff
changeset
|
1141 self._compare_ok(id_, expected, given=response.body) |
5946
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1142 finally: |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1143 fixture.destroy_repo(repo_name) |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1144 if changing_attr == 'repo_group': |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1145 fixture.destroy_repo_group(updates['group']) |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1146 fixture.destroy_repo_group(group_name) |
ffe4d5060d91
api: avoid duplicating group name when updating repo (Issue #37)
Mads Kiilerich <madski@unity3d.com>
parents:
5497
diff
changeset
|
1147 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1148 def test_api_update_repo_repo_group_does_not_exist(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1149 repo_name = 'admin_owned' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1150 fixture.create_repo(repo_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1151 updates = {'group': 'test_group_for_update'} |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1152 id_, params = _build_data(self.apikey, 'update_repo', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1153 repoid=repo_name, **updates) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1154 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1155 try: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1156 expected = 'repository group `%s` does not exist' % updates['group'] |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1157 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1158 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1159 fixture.destroy_repo(repo_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1160 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1161 def test_api_update_repo_regular_user_not_allowed(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1162 repo_name = 'admin_owned' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1163 fixture.create_repo(repo_name) |
6212
8be0633ff852
api: fail when given unknown arguments
Mads Kiilerich <madski@unity3d.com>
parents:
6117
diff
changeset
|
1164 updates = {'description': 'something else'} |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1165 id_, params = _build_data(self.apikey_regular, 'update_repo', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1166 repoid=repo_name, **updates) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1167 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1168 try: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1169 expected = 'repository `%s` does not exist' % repo_name |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1170 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1171 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1172 fixture.destroy_repo(repo_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1173 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1174 @mock.patch.object(RepoModel, 'update', raise_exception) |
4792
923037eb67d4
spelling: fix various typos
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4769
diff
changeset
|
1175 def test_api_update_repo_exception_occurred(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1176 repo_name = 'api_update_me' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1177 fixture.create_repo(repo_name, repo_type=self.REPO_TYPE) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1178 id_, params = _build_data(self.apikey, 'update_repo', |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1179 repoid=repo_name, owner=base.TEST_USER_ADMIN_LOGIN,) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1180 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1181 try: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1182 expected = 'failed to update repo `%s`' % repo_name |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1183 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1184 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1185 fixture.destroy_repo(repo_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1186 |
8514
7f3515800bd8
api: fix update_repo check for permission to create top level repos
Mads Kiilerich <mads@kiilerich.com>
parents:
8513
diff
changeset
|
1187 def test_api_update_repo_regular_user_change_top_level_repo_name(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1188 repo_name = 'admin_owned' |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1189 new_repo_name = 'new_repo_name' |
5222
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1190 fixture.create_repo(repo_name, repo_type=self.REPO_TYPE) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1191 RepoModel().grant_user_permission(repo=repo_name, |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1192 user=self.TEST_USER_LOGIN, |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1193 perm='repository.admin') |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1194 UserModel().revoke_perm('default', 'hg.create.repository') |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1195 UserModel().grant_perm('default', 'hg.create.none') |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1196 updates = {'name': new_repo_name} |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1197 id_, params = _build_data(self.apikey_regular, 'update_repo', |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1198 repoid=repo_name, **updates) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1199 response = api_call(self, params) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1200 try: |
8514
7f3515800bd8
api: fix update_repo check for permission to create top level repos
Mads Kiilerich <mads@kiilerich.com>
parents:
8513
diff
changeset
|
1201 expected = 'no permission to create (or move) top level repositories' |
5222
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1202 self._compare_error(id_, expected, given=response.body) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1203 finally: |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1204 fixture.destroy_repo(repo_name) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1205 fixture.destroy_repo(new_repo_name) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1206 |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1207 def test_api_update_repo_regular_user_change_repo_name_allowed(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1208 repo_name = 'admin_owned' |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1209 new_repo_name = 'new_repo_name' |
5222
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1210 repo = fixture.create_repo(repo_name, repo_type=self.REPO_TYPE) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1211 RepoModel().grant_user_permission(repo=repo_name, |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1212 user=self.TEST_USER_LOGIN, |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1213 perm='repository.admin') |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1214 UserModel().revoke_perm('default', 'hg.create.none') |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1215 UserModel().grant_perm('default', 'hg.create.repository') |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1216 updates = {'name': new_repo_name} |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1217 id_, params = _build_data(self.apikey_regular, 'update_repo', |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1218 repoid=repo_name, **updates) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1219 response = api_call(self, params) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1220 try: |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1221 expected = { |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1222 'msg': 'updated repo ID:%s %s' % (repo.repo_id, new_repo_name), |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1223 'repository': repo.get_api_data() |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1224 } |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1225 self._compare_ok(id_, expected, given=response.body) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1226 finally: |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1227 fixture.destroy_repo(repo_name) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1228 fixture.destroy_repo(new_repo_name) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1229 |
5223
0b7b52bfaf5d
api: make update_repo check permissions to check owner like create_repo does
Mads Kiilerich <madski@unity3d.com>
parents:
5222
diff
changeset
|
1230 def test_api_update_repo_regular_user_change_owner(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1231 repo_name = 'admin_owned' |
5223
0b7b52bfaf5d
api: make update_repo check permissions to check owner like create_repo does
Mads Kiilerich <madski@unity3d.com>
parents:
5222
diff
changeset
|
1232 fixture.create_repo(repo_name, repo_type=self.REPO_TYPE) |
0b7b52bfaf5d
api: make update_repo check permissions to check owner like create_repo does
Mads Kiilerich <madski@unity3d.com>
parents:
5222
diff
changeset
|
1233 RepoModel().grant_user_permission(repo=repo_name, |
0b7b52bfaf5d
api: make update_repo check permissions to check owner like create_repo does
Mads Kiilerich <madski@unity3d.com>
parents:
5222
diff
changeset
|
1234 user=self.TEST_USER_LOGIN, |
0b7b52bfaf5d
api: make update_repo check permissions to check owner like create_repo does
Mads Kiilerich <madski@unity3d.com>
parents:
5222
diff
changeset
|
1235 perm='repository.admin') |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1236 updates = {'owner': base.TEST_USER_ADMIN_LOGIN} |
5223
0b7b52bfaf5d
api: make update_repo check permissions to check owner like create_repo does
Mads Kiilerich <madski@unity3d.com>
parents:
5222
diff
changeset
|
1237 id_, params = _build_data(self.apikey_regular, 'update_repo', |
0b7b52bfaf5d
api: make update_repo check permissions to check owner like create_repo does
Mads Kiilerich <madski@unity3d.com>
parents:
5222
diff
changeset
|
1238 repoid=repo_name, **updates) |
0b7b52bfaf5d
api: make update_repo check permissions to check owner like create_repo does
Mads Kiilerich <madski@unity3d.com>
parents:
5222
diff
changeset
|
1239 response = api_call(self, params) |
0b7b52bfaf5d
api: make update_repo check permissions to check owner like create_repo does
Mads Kiilerich <madski@unity3d.com>
parents:
5222
diff
changeset
|
1240 try: |
0b7b52bfaf5d
api: make update_repo check permissions to check owner like create_repo does
Mads Kiilerich <madski@unity3d.com>
parents:
5222
diff
changeset
|
1241 expected = 'Only Kallithea admin can specify `owner` param' |
0b7b52bfaf5d
api: make update_repo check permissions to check owner like create_repo does
Mads Kiilerich <madski@unity3d.com>
parents:
5222
diff
changeset
|
1242 self._compare_error(id_, expected, given=response.body) |
0b7b52bfaf5d
api: make update_repo check permissions to check owner like create_repo does
Mads Kiilerich <madski@unity3d.com>
parents:
5222
diff
changeset
|
1243 finally: |
0b7b52bfaf5d
api: make update_repo check permissions to check owner like create_repo does
Mads Kiilerich <madski@unity3d.com>
parents:
5222
diff
changeset
|
1244 fixture.destroy_repo(repo_name) |
0b7b52bfaf5d
api: make update_repo check permissions to check owner like create_repo does
Mads Kiilerich <madski@unity3d.com>
parents:
5222
diff
changeset
|
1245 |
2526 | 1246 def test_api_delete_repo(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1247 repo_name = 'api_delete_me' |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1248 fixture.create_repo(repo_name, repo_type=self.REPO_TYPE) |
2526 | 1249 |
1250 id_, params = _build_data(self.apikey, 'delete_repo', | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1251 repoid=repo_name, ) |
2738 | 1252 response = api_call(self, params) |
2526 | 1253 |
1254 ret = { | |
1255 'msg': 'Deleted repository `%s`' % repo_name, | |
1256 'success': True | |
1257 } | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1258 try: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1259 expected = ret |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1260 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1261 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1262 fixture.destroy_repo(repo_name) |
2526 | 1263 |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1264 def test_api_delete_repo_by_non_admin(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1265 repo_name = 'api_delete_me' |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1266 fixture.create_repo(repo_name, repo_type=self.REPO_TYPE, |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1267 cur_user=self.TEST_USER_LOGIN) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1268 id_, params = _build_data(self.apikey_regular, 'delete_repo', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1269 repoid=repo_name, ) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1270 response = api_call(self, params) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1271 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1272 ret = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1273 'msg': 'Deleted repository `%s`' % repo_name, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1274 'success': True |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1275 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1276 try: |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1277 expected = ret |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1278 self._compare_ok(id_, expected, given=response.body) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1279 finally: |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1280 fixture.destroy_repo(repo_name) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1281 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1282 def test_api_delete_repo_by_non_admin_no_permission(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1283 repo_name = 'api_delete_me' |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1284 fixture.create_repo(repo_name, repo_type=self.REPO_TYPE) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1285 try: |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1286 id_, params = _build_data(self.apikey_regular, 'delete_repo', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1287 repoid=repo_name, ) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1288 response = api_call(self, params) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1289 expected = 'repository `%s` does not exist' % (repo_name) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1290 self._compare_error(id_, expected, given=response.body) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1291 finally: |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1292 fixture.destroy_repo(repo_name) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1293 |
2526 | 1294 def test_api_delete_repo_exception_occurred(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1295 repo_name = 'api_delete_me' |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1296 fixture.create_repo(repo_name, repo_type=self.REPO_TYPE) |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1297 try: |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1298 with mock.patch.object(RepoModel, 'delete', raise_exception): |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1299 id_, params = _build_data(self.apikey, 'delete_repo', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1300 repoid=repo_name, ) |
2738 | 1301 response = api_call(self, params) |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1302 |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1303 expected = 'failed to delete repository `%s`' % repo_name |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1304 self._compare_error(id_, expected, given=response.body) |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1305 finally: |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1306 fixture.destroy_repo(repo_name) |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1307 |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1308 def test_api_fork_repo(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1309 fork_name = 'api-repo-fork' |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1310 id_, params = _build_data(self.apikey, 'fork_repo', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1311 repoid=self.REPO, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1312 fork_name=fork_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1313 owner=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1314 ) |
2738 | 1315 response = api_call(self, params) |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1316 |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1317 ret = { |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1318 'msg': 'Created fork of `%s` as `%s`' % (self.REPO, |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1319 fork_name), |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1320 'success': True, |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1321 } |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1322 expected = ret |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1323 self._compare_ok(id_, expected, given=response.body) |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1324 fixture.destroy_repo(fork_name) |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1325 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1326 @base.parametrize('fork_name', [ |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1327 'api-repo-fork', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1328 '%s/api-repo-fork' % TEST_REPO_GROUP, |
5947
6754597990cb
api: fix forking of repos in repo groups (Issue #210)
Mads Kiilerich <madski@unity3d.com>
parents:
5946
diff
changeset
|
1329 ]) |
6754597990cb
api: fix forking of repos in repo groups (Issue #210)
Mads Kiilerich <madski@unity3d.com>
parents:
5946
diff
changeset
|
1330 def test_api_fork_repo_non_admin(self, fork_name): |
8513
7643d8ecbb20
api: fix repo group permission check for repo creation
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1331 RepoGroupModel().grant_user_permission(TEST_REPO_GROUP, |
7643d8ecbb20
api: fix repo group permission check for repo creation
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1332 self.TEST_USER_LOGIN, |
7643d8ecbb20
api: fix repo group permission check for repo creation
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1333 'group.write') |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1334 id_, params = _build_data(self.apikey_regular, 'fork_repo', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1335 repoid=self.REPO, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1336 fork_name=fork_name, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1337 ) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1338 response = api_call(self, params) |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1339 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1340 ret = { |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1341 'msg': 'Created fork of `%s` as `%s`' % (self.REPO, |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1342 fork_name), |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1343 'success': True, |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1344 } |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1345 expected = ret |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1346 self._compare_ok(id_, expected, given=response.body) |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1347 fixture.destroy_repo(fork_name) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1348 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1349 def test_api_fork_repo_non_admin_specify_owner(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1350 fork_name = 'api-repo-fork' |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1351 id_, params = _build_data(self.apikey_regular, 'fork_repo', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1352 repoid=self.REPO, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1353 fork_name=fork_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1354 owner=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1355 ) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1356 response = api_call(self, params) |
4212
24c0d584ba86
General renaming to Kallithea
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4209
diff
changeset
|
1357 expected = 'Only Kallithea admin can specify `owner` param' |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1358 self._compare_error(id_, expected, given=response.body) |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1359 fixture.destroy_repo(fork_name) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1360 |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1361 def test_api_fork_repo_non_admin_no_permission_to_fork(self): |
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1362 RepoModel().grant_user_permission(repo=self.REPO, |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
1363 user=db.User.DEFAULT_USER_NAME, |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1364 perm='repository.none') |
8867
3119d680a8d5
tests: address pedantic pytype 2021.4.1 warning
Mads Kiilerich <mads@kiilerich.com>
parents:
8851
diff
changeset
|
1365 fork_name = 'api-repo-fork' |
7687
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
1366 try: |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
1367 id_, params = _build_data(self.apikey_regular, 'fork_repo', |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
1368 repoid=self.REPO, |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
1369 fork_name=fork_name, |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
1370 ) |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
1371 response = api_call(self, params) |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
1372 expected = 'repository `%s` does not exist' % (self.REPO) |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
1373 self._compare_error(id_, expected, given=response.body) |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
1374 finally: |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
1375 RepoModel().grant_user_permission(repo=self.REPO, |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
1376 user=db.User.DEFAULT_USER_NAME, |
7687
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
1377 perm='repository.read') |
b2634df81a11
auth: explicit user permission should not blindly overrule permissions through user groups
Mads Kiilerich <mads@kiilerich.com>
parents:
7684
diff
changeset
|
1378 fixture.destroy_repo(fork_name) |
3163
28571535dd61
API methods create_repo, fork_repo, delete_repo, get_repo, get_repos
Marcin Kuzminski <marcin@python-works.com>
parents:
3161
diff
changeset
|
1379 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1380 @base.parametrize('name,perm', [ |
5907
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1381 ('read', 'repository.read'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1382 ('write', 'repository.write'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1383 ('admin', 'repository.admin'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1384 ]) |
5222
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1385 def test_api_fork_repo_non_admin_no_create_repo_permission(self, name, perm): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1386 fork_name = 'api-repo-fork' |
5222
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1387 # regardless of base repository permission, forking is disallowed |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1388 # when repository creation is disabled |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1389 RepoModel().grant_user_permission(repo=self.REPO, |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1390 user=self.TEST_USER_LOGIN, |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1391 perm=perm) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1392 UserModel().revoke_perm('default', 'hg.create.repository') |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1393 UserModel().grant_perm('default', 'hg.create.none') |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1394 id_, params = _build_data(self.apikey_regular, 'fork_repo', |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1395 repoid=self.REPO, |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1396 fork_name=fork_name, |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1397 ) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1398 response = api_call(self, params) |
8513
7643d8ecbb20
api: fix repo group permission check for repo creation
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1399 expected = 'no permission to create top level repo' |
5222
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1400 self._compare_error(id_, expected, given=response.body) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1401 fixture.destroy_repo(fork_name) |
6620542597d3
api: check repo create permissions for update_repo and fork_repo as for create-repo
Mads Kiilerich <madski@unity3d.com>
parents:
4792
diff
changeset
|
1402 |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1403 def test_api_fork_repo_unknown_owner(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1404 fork_name = 'api-repo-fork' |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1405 owner = 'i-dont-exist' |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1406 id_, params = _build_data(self.apikey, 'fork_repo', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1407 repoid=self.REPO, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1408 fork_name=fork_name, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1409 owner=owner, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1410 ) |
2738 | 1411 response = api_call(self, params) |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1412 expected = 'user `%s` does not exist' % owner |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1413 self._compare_error(id_, expected, given=response.body) |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1414 |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1415 def test_api_fork_repo_fork_exists(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1416 fork_name = 'api-repo-fork' |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1417 fixture.create_fork(self.REPO, fork_name) |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1418 |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1419 try: |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1420 fork_name = 'api-repo-fork' |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1421 |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1422 id_, params = _build_data(self.apikey, 'fork_repo', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1423 repoid=self.REPO, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1424 fork_name=fork_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1425 owner=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1426 ) |
2738 | 1427 response = api_call(self, params) |
2526 | 1428 |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1429 expected = "fork `%s` already exist" % fork_name |
2526 | 1430 self._compare_error(id_, expected, given=response.body) |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1431 finally: |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3502
diff
changeset
|
1432 fixture.destroy_repo(fork_name) |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1433 |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1434 def test_api_fork_repo_repo_exists(self): |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1435 fork_name = self.REPO |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1436 |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1437 id_, params = _build_data(self.apikey, 'fork_repo', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1438 repoid=self.REPO, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1439 fork_name=fork_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1440 owner=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1441 ) |
2738 | 1442 response = api_call(self, params) |
2526 | 1443 |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1444 expected = "repo `%s` already exist" % fork_name |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1445 self._compare_error(id_, expected, given=response.body) |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1446 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1447 @mock.patch.object(RepoModel, 'create_fork', raise_exception) |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1448 def test_api_fork_repo_exception_occurred(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1449 fork_name = 'api-repo-fork' |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1450 id_, params = _build_data(self.apikey, 'fork_repo', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1451 repoid=self.REPO, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1452 fork_name=fork_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1453 owner=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1454 ) |
2738 | 1455 response = api_call(self, params) |
2653
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1456 |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1457 expected = 'failed to fork repository `%s` as `%s`' % (self.REPO, |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1458 fork_name) |
8be70a4d72c7
Implemented #354 added forking option to API
Marcin Kuzminski <marcin@python-works.com>
parents:
2529
diff
changeset
|
1459 self._compare_error(id_, expected, given=response.body) |
2526 | 1460 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1461 def test_api_get_user_group(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1462 id_, params = _build_data(self.apikey, 'get_user_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1463 usergroupid=TEST_USER_GROUP) |
2738 | 1464 response = api_call(self, params) |
2526 | 1465 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1466 user_group = UserGroupModel().get_group(TEST_USER_GROUP) |
2526 | 1467 members = [] |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1468 for user in user_group.members: |
2526 | 1469 user = user.user |
1470 members.append(user.get_api_data()) | |
1471 | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1472 ret = user_group.get_api_data() |
2526 | 1473 ret['members'] = members |
1474 expected = ret | |
1475 self._compare_ok(id_, expected, given=response.body) | |
1476 | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1477 def test_api_get_user_groups(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1478 gr_name = 'test_user_group2' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1479 make_user_group(gr_name) |
2526 | 1480 |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1481 try: |
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1482 id_, params = _build_data(self.apikey, 'get_user_groups', ) |
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1483 response = api_call(self, params) |
2526 | 1484 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1485 expected = [] |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1486 for gr_name in [TEST_USER_GROUP, 'test_user_group2']: |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1487 user_group = UserGroupModel().get_group(gr_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1488 ret = user_group.get_api_data() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1489 expected.append(ret) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1490 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1491 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1492 fixture.destroy_user_group(gr_name) |
2526 | 1493 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1494 def test_api_create_user_group(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1495 group_name = 'some_new_group' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1496 id_, params = _build_data(self.apikey, 'create_user_group', |
2526 | 1497 group_name=group_name) |
2738 | 1498 response = api_call(self, params) |
2526 | 1499 |
1500 ret = { | |
3415
b8f929bff7e3
fixed tests and missing replacements from 5f1850e4712a
Marcin Kuzminski <marcin@python-works.com>
parents:
3235
diff
changeset
|
1501 'msg': 'created new user group `%s`' % group_name, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1502 'user_group': jsonify(UserGroupModel() \ |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1503 .get_by_name(group_name) \ |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1504 .get_api_data()) |
2526 | 1505 } |
1506 expected = ret | |
1507 self._compare_ok(id_, expected, given=response.body) | |
1508 | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1509 fixture.destroy_user_group(group_name) |
2526 | 1510 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1511 def test_api_get_user_group_that_exist(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1512 id_, params = _build_data(self.apikey, 'create_user_group', |
3417
fa6ba6727475
further cleanup of UsersGroup
Mads Kiilerich <madski@unity3d.com>
parents:
3415
diff
changeset
|
1513 group_name=TEST_USER_GROUP) |
2738 | 1514 response = api_call(self, params) |
2526 | 1515 |
3417
fa6ba6727475
further cleanup of UsersGroup
Mads Kiilerich <madski@unity3d.com>
parents:
3415
diff
changeset
|
1516 expected = "user group `%s` already exist" % TEST_USER_GROUP |
2526 | 1517 self._compare_error(id_, expected, given=response.body) |
1518 | |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1519 @mock.patch.object(UserGroupModel, 'create', raise_exception) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1520 def test_api_get_user_group_exception_occurred(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1521 group_name = 'exception_happens' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1522 id_, params = _build_data(self.apikey, 'create_user_group', |
2526 | 1523 group_name=group_name) |
2738 | 1524 response = api_call(self, params) |
2526 | 1525 |
1526 expected = 'failed to create group `%s`' % group_name | |
1527 self._compare_error(id_, expected, given=response.body) | |
1528 | |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1529 @base.parametrize('changing_attr,updates', [ |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1530 ('group_name', {'group_name': 'new_group_name'}), |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1531 ('group_name', {'group_name': 'test_group_for_update'}), |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1532 ('owner', {'owner': base.TEST_USER_REGULAR_LOGIN}), |
5907
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1533 ('active', {'active': False}), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1534 ('active', {'active': True}), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1535 ]) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1536 def test_api_update_user_group(self, changing_attr, updates): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1537 gr_name = 'test_group_for_update' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1538 user_group = fixture.create_user_group(gr_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1539 try: |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1540 id_, params = _build_data(self.apikey, 'update_user_group', |
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1541 usergroupid=gr_name, **updates) |
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1542 response = api_call(self, params) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1543 expected = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1544 'msg': 'updated user group ID:%s %s' % (user_group.users_group_id, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1545 user_group.users_group_name), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1546 'user_group': user_group.get_api_data() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1547 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1548 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1549 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1550 if changing_attr == 'group_name': |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1551 # switch to updated name for proper cleanup |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1552 gr_name = updates['group_name'] |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1553 fixture.destroy_user_group(gr_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1554 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1555 @mock.patch.object(UserGroupModel, 'update', raise_exception) |
4792
923037eb67d4
spelling: fix various typos
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4769
diff
changeset
|
1556 def test_api_update_user_group_exception_occurred(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1557 gr_name = 'test_group' |
3714
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
1558 fixture.create_user_group(gr_name) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1559 try: |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1560 id_, params = _build_data(self.apikey, 'update_user_group', |
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1561 usergroupid=gr_name) |
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1562 response = api_call(self, params) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1563 expected = 'failed to update user group `%s`' % gr_name |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1564 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1565 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1566 fixture.destroy_user_group(gr_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1567 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1568 def test_api_add_user_to_user_group(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1569 gr_name = 'test_group' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1570 fixture.create_user_group(gr_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1571 try: |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1572 id_, params = _build_data(self.apikey, 'add_user_to_user_group', |
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1573 usergroupid=gr_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1574 userid=base.TEST_USER_ADMIN_LOGIN) |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1575 response = api_call(self, params) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1576 expected = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1577 'msg': 'added member `%s` to user group `%s`' % ( |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1578 base.TEST_USER_ADMIN_LOGIN, gr_name), |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1579 'success': True |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1580 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1581 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1582 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1583 fixture.destroy_user_group(gr_name) |
2526 | 1584 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1585 def test_api_add_user_to_user_group_that_doesnt_exist(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1586 id_, params = _build_data(self.apikey, 'add_user_to_user_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1587 usergroupid='false-group', |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1588 userid=base.TEST_USER_ADMIN_LOGIN) |
2738 | 1589 response = api_call(self, params) |
2526 | 1590 |
3415
b8f929bff7e3
fixed tests and missing replacements from 5f1850e4712a
Marcin Kuzminski <marcin@python-works.com>
parents:
3235
diff
changeset
|
1591 expected = 'user group `%s` does not exist' % 'false-group' |
2526 | 1592 self._compare_error(id_, expected, given=response.body) |
1593 | |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1594 @mock.patch.object(UserGroupModel, 'add_user_to_group', raise_exception) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1595 def test_api_add_user_to_user_group_exception_occurred(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1596 gr_name = 'test_group' |
3714
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
1597 fixture.create_user_group(gr_name) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1598 try: |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1599 id_, params = _build_data(self.apikey, 'add_user_to_user_group', |
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1600 usergroupid=gr_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1601 userid=base.TEST_USER_ADMIN_LOGIN) |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1602 response = api_call(self, params) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1603 expected = 'failed to add member to user group `%s`' % gr_name |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1604 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1605 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1606 fixture.destroy_user_group(gr_name) |
2526 | 1607 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1608 def test_api_remove_user_from_user_group(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1609 gr_name = 'test_group_3' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1610 gr = fixture.create_user_group(gr_name) |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1611 UserGroupModel().add_user_to_group(gr, user=base.TEST_USER_ADMIN_LOGIN) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
1612 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1613 try: |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1614 id_, params = _build_data(self.apikey, 'remove_user_from_user_group', |
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1615 usergroupid=gr_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1616 userid=base.TEST_USER_ADMIN_LOGIN) |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1617 response = api_call(self, params) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1618 expected = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1619 'msg': 'removed member `%s` from user group `%s`' % ( |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1620 base.TEST_USER_ADMIN_LOGIN, gr_name |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1621 ), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1622 'success': True} |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1623 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1624 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1625 fixture.destroy_user_group(gr_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1626 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1627 @mock.patch.object(UserGroupModel, 'remove_user_from_group', raise_exception) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1628 def test_api_remove_user_from_user_group_exception_occurred(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1629 gr_name = 'test_group_3' |
3714
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
1630 gr = fixture.create_user_group(gr_name) |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1631 UserGroupModel().add_user_to_group(gr, user=base.TEST_USER_ADMIN_LOGIN) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
1632 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1633 try: |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1634 id_, params = _build_data(self.apikey, 'remove_user_from_user_group', |
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1635 usergroupid=gr_name, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1636 userid=base.TEST_USER_ADMIN_LOGIN) |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1637 response = api_call(self, params) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1638 expected = 'failed to remove member from user group `%s`' % gr_name |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1639 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1640 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1641 fixture.destroy_user_group(gr_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1642 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1643 def test_api_delete_user_group(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1644 gr_name = 'test_group' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1645 ugroup = fixture.create_user_group(gr_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1646 gr_id = ugroup.users_group_id |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1647 try: |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1648 id_, params = _build_data(self.apikey, 'delete_user_group', |
6212
8be0633ff852
api: fail when given unknown arguments
Mads Kiilerich <madski@unity3d.com>
parents:
6117
diff
changeset
|
1649 usergroupid=gr_name) |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1650 response = api_call(self, params) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1651 expected = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1652 'user_group': None, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1653 'msg': 'deleted user group ID:%s %s' % (gr_id, gr_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1654 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1655 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1656 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1657 if UserGroupModel().get_by_name(gr_name): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1658 fixture.destroy_user_group(gr_name) |
2526 | 1659 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1660 def test_api_delete_user_group_that_is_assigned(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1661 gr_name = 'test_group' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1662 ugroup = fixture.create_user_group(gr_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1663 gr_id = ugroup.users_group_id |
2526 | 1664 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1665 ugr_to_perm = RepoModel().grant_user_group_permission(self.REPO, gr_name, 'repository.write') |
4769
2181d0058c6a
usergroup: more descriptive error message when deleting user group
Joseph Rivera <rivera.d.joseph@gmail.com>
parents:
4212
diff
changeset
|
1666 msg = 'User Group assigned to %s' % ugr_to_perm.repository.repo_name |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1667 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1668 try: |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1669 id_, params = _build_data(self.apikey, 'delete_user_group', |
6212
8be0633ff852
api: fail when given unknown arguments
Mads Kiilerich <madski@unity3d.com>
parents:
6117
diff
changeset
|
1670 usergroupid=gr_name) |
5806
f33cc4af706b
tests: finally block also needs to be executed if api_call itself fails
domruf <dominikruf@gmail.com>
parents:
5752
diff
changeset
|
1671 response = api_call(self, params) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1672 expected = msg |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1673 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1674 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1675 if UserGroupModel().get_by_name(gr_name): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1676 fixture.destroy_user_group(gr_name) |
2526 | 1677 |
4792
923037eb67d4
spelling: fix various typos
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4769
diff
changeset
|
1678 def test_api_delete_user_group_exception_occurred(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
1679 gr_name = 'test_group' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1680 ugroup = fixture.create_user_group(gr_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1681 gr_id = ugroup.users_group_id |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1682 id_, params = _build_data(self.apikey, 'delete_user_group', |
6212
8be0633ff852
api: fail when given unknown arguments
Mads Kiilerich <madski@unity3d.com>
parents:
6117
diff
changeset
|
1683 usergroupid=gr_name) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1684 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1685 try: |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1686 with mock.patch.object(UserGroupModel, 'delete', raise_exception): |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1687 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1688 expected = 'failed to delete user group ID:%s %s' % (gr_id, gr_name) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1689 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1690 finally: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1691 fixture.destroy_user_group(gr_name) |
2526 | 1692 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1693 @base.parametrize('name,perm', [ |
5907
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1694 ('none', 'repository.none'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1695 ('read', 'repository.read'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1696 ('write', 'repository.write'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1697 ('admin', 'repository.admin'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1698 ]) |
2526 | 1699 def test_api_grant_user_permission(self, name, perm): |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1700 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1701 'grant_user_permission', |
2526 | 1702 repoid=self.REPO, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1703 userid=base.TEST_USER_ADMIN_LOGIN, |
2526 | 1704 perm=perm) |
2738 | 1705 response = api_call(self, params) |
2526 | 1706 |
1707 ret = { | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1708 'msg': 'Granted perm: `%s` for user: `%s` in repo: `%s`' % ( |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1709 perm, base.TEST_USER_ADMIN_LOGIN, self.REPO |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1710 ), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1711 'success': True |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1712 } |
2526 | 1713 expected = ret |
1714 self._compare_ok(id_, expected, given=response.body) | |
1715 | |
1716 def test_api_grant_user_permission_wrong_permission(self): | |
1717 perm = 'haha.no.permission' | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1718 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1719 'grant_user_permission', |
2526 | 1720 repoid=self.REPO, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1721 userid=base.TEST_USER_ADMIN_LOGIN, |
2526 | 1722 perm=perm) |
2738 | 1723 response = api_call(self, params) |
2526 | 1724 |
1725 expected = 'permission `%s` does not exist' % perm | |
1726 self._compare_error(id_, expected, given=response.body) | |
1727 | |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1728 @mock.patch.object(RepoModel, 'grant_user_permission', raise_exception) |
2526 | 1729 def test_api_grant_user_permission_exception_when_adding(self): |
1730 perm = 'repository.read' | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1731 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1732 'grant_user_permission', |
2526 | 1733 repoid=self.REPO, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1734 userid=base.TEST_USER_ADMIN_LOGIN, |
2526 | 1735 perm=perm) |
2738 | 1736 response = api_call(self, params) |
2526 | 1737 |
1738 expected = 'failed to edit permission for user: `%s` in repo: `%s`' % ( | |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1739 base.TEST_USER_ADMIN_LOGIN, self.REPO |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1740 ) |
2526 | 1741 self._compare_error(id_, expected, given=response.body) |
1742 | |
1743 def test_api_revoke_user_permission(self): | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1744 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1745 'revoke_user_permission', |
2526 | 1746 repoid=self.REPO, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1747 userid=base.TEST_USER_ADMIN_LOGIN, ) |
2738 | 1748 response = api_call(self, params) |
2526 | 1749 |
1750 expected = { | |
1751 'msg': 'Revoked perm for user: `%s` in repo: `%s`' % ( | |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1752 base.TEST_USER_ADMIN_LOGIN, self.REPO |
2526 | 1753 ), |
1754 'success': True | |
1755 } | |
1756 self._compare_ok(id_, expected, given=response.body) | |
1757 | |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1758 @mock.patch.object(RepoModel, 'revoke_user_permission', raise_exception) |
2526 | 1759 def test_api_revoke_user_permission_exception_when_adding(self): |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1760 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1761 'revoke_user_permission', |
2526 | 1762 repoid=self.REPO, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1763 userid=base.TEST_USER_ADMIN_LOGIN, ) |
2738 | 1764 response = api_call(self, params) |
2526 | 1765 |
1766 expected = 'failed to edit permission for user: `%s` in repo: `%s`' % ( | |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1767 base.TEST_USER_ADMIN_LOGIN, self.REPO |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1768 ) |
2526 | 1769 self._compare_error(id_, expected, given=response.body) |
1770 | |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1771 @base.parametrize('name,perm', [ |
5907
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1772 ('none', 'repository.none'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1773 ('read', 'repository.read'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1774 ('write', 'repository.write'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1775 ('admin', 'repository.admin'), |
526724b8b6ce
pytest migration: api: convert to TestControllerPytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
5906
diff
changeset
|
1776 ]) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1777 def test_api_grant_user_group_permission(self, name, perm): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1778 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1779 'grant_user_group_permission', |
2526 | 1780 repoid=self.REPO, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1781 usergroupid=TEST_USER_GROUP, |
2526 | 1782 perm=perm) |
2738 | 1783 response = api_call(self, params) |
2526 | 1784 |
1785 ret = { | |
3415
b8f929bff7e3
fixed tests and missing replacements from 5f1850e4712a
Marcin Kuzminski <marcin@python-works.com>
parents:
3235
diff
changeset
|
1786 'msg': 'Granted perm: `%s` for user group: `%s` in repo: `%s`' % ( |
3417
fa6ba6727475
further cleanup of UsersGroup
Mads Kiilerich <madski@unity3d.com>
parents:
3415
diff
changeset
|
1787 perm, TEST_USER_GROUP, self.REPO |
2526 | 1788 ), |
1789 'success': True | |
1790 } | |
1791 expected = ret | |
1792 self._compare_ok(id_, expected, given=response.body) | |
1793 | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1794 def test_api_grant_user_group_permission_wrong_permission(self): |
2526 | 1795 perm = 'haha.no.permission' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1796 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1797 'grant_user_group_permission', |
2526 | 1798 repoid=self.REPO, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1799 usergroupid=TEST_USER_GROUP, |
2526 | 1800 perm=perm) |
2738 | 1801 response = api_call(self, params) |
2526 | 1802 |
1803 expected = 'permission `%s` does not exist' % perm | |
1804 self._compare_error(id_, expected, given=response.body) | |
1805 | |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1806 @mock.patch.object(RepoModel, 'grant_user_group_permission', raise_exception) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1807 def test_api_grant_user_group_permission_exception_when_adding(self): |
2526 | 1808 perm = 'repository.read' |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1809 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1810 'grant_user_group_permission', |
2526 | 1811 repoid=self.REPO, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1812 usergroupid=TEST_USER_GROUP, |
2526 | 1813 perm=perm) |
2738 | 1814 response = api_call(self, params) |
2526 | 1815 |
3415
b8f929bff7e3
fixed tests and missing replacements from 5f1850e4712a
Marcin Kuzminski <marcin@python-works.com>
parents:
3235
diff
changeset
|
1816 expected = 'failed to edit permission for user group: `%s` in repo: `%s`' % ( |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1817 TEST_USER_GROUP, self.REPO |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1818 ) |
2526 | 1819 self._compare_error(id_, expected, given=response.body) |
1820 | |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1821 def test_api_revoke_user_group_permission(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1822 RepoModel().grant_user_group_permission(repo=self.REPO, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1823 group_name=TEST_USER_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1824 perm='repository.read') |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
1825 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1826 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1827 'revoke_user_group_permission', |
2526 | 1828 repoid=self.REPO, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1829 usergroupid=TEST_USER_GROUP, ) |
2738 | 1830 response = api_call(self, params) |
2526 | 1831 |
1832 expected = { | |
3415
b8f929bff7e3
fixed tests and missing replacements from 5f1850e4712a
Marcin Kuzminski <marcin@python-works.com>
parents:
3235
diff
changeset
|
1833 'msg': 'Revoked perm for user group: `%s` in repo: `%s`' % ( |
3417
fa6ba6727475
further cleanup of UsersGroup
Mads Kiilerich <madski@unity3d.com>
parents:
3415
diff
changeset
|
1834 TEST_USER_GROUP, self.REPO |
2526 | 1835 ), |
1836 'success': True | |
1837 } | |
1838 self._compare_ok(id_, expected, given=response.body) | |
1839 | |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1840 @mock.patch.object(RepoModel, 'revoke_user_group_permission', raise_exception) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1841 def test_api_revoke_user_group_permission_exception_when_adding(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1842 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1843 'revoke_user_group_permission', |
2526 | 1844 repoid=self.REPO, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1845 usergroupid=TEST_USER_GROUP, ) |
2738 | 1846 response = api_call(self, params) |
2526 | 1847 |
3415
b8f929bff7e3
fixed tests and missing replacements from 5f1850e4712a
Marcin Kuzminski <marcin@python-works.com>
parents:
3235
diff
changeset
|
1848 expected = 'failed to edit permission for user group: `%s` in repo: `%s`' % ( |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1849 TEST_USER_GROUP, self.REPO |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1850 ) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1851 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1852 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1853 @base.parametrize('name,perm,apply_to_children', [ |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1854 ('none', 'group.none', 'none'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1855 ('read', 'group.read', 'none'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1856 ('write', 'group.write', 'none'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1857 ('admin', 'group.admin', 'none'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1858 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1859 ('none', 'group.none', 'all'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1860 ('read', 'group.read', 'all'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1861 ('write', 'group.write', 'all'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1862 ('admin', 'group.admin', 'all'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1863 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1864 ('none', 'group.none', 'repos'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1865 ('read', 'group.read', 'repos'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1866 ('write', 'group.write', 'repos'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1867 ('admin', 'group.admin', 'repos'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1868 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1869 ('none', 'group.none', 'groups'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1870 ('read', 'group.read', 'groups'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1871 ('write', 'group.write', 'groups'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1872 ('admin', 'group.admin', 'groups'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1873 ]) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1874 def test_api_grant_user_permission_to_repo_group(self, name, perm, apply_to_children): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1875 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1876 'grant_user_permission_to_repo_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1877 repogroupid=TEST_REPO_GROUP, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1878 userid=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1879 perm=perm, apply_to_children=apply_to_children) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1880 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1881 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1882 ret = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1883 'msg': 'Granted perm: `%s` (recursive:%s) for user: `%s` in repo group: `%s`' % ( |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1884 perm, apply_to_children, base.TEST_USER_ADMIN_LOGIN, TEST_REPO_GROUP |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1885 ), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1886 'success': True |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1887 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1888 expected = ret |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1889 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1890 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1891 @base.parametrize('name,perm,apply_to_children,grant_admin,access_ok', [ |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1892 ('none_fails', 'group.none', 'none', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1893 ('read_fails', 'group.read', 'none', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1894 ('write_fails', 'group.write', 'none', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1895 ('admin_fails', 'group.admin', 'none', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1896 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1897 # with granted perms |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1898 ('none_ok', 'group.none', 'none', True, True), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1899 ('read_ok', 'group.read', 'none', True, True), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1900 ('write_ok', 'group.write', 'none', True, True), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1901 ('admin_ok', 'group.admin', 'none', True, True), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1902 ]) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1903 def test_api_grant_user_permission_to_repo_group_by_regular_user( |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1904 self, name, perm, apply_to_children, grant_admin, access_ok): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1905 if grant_admin: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1906 RepoGroupModel().grant_user_permission(TEST_REPO_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1907 self.TEST_USER_LOGIN, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1908 'group.admin') |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
1909 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1910 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1911 id_, params = _build_data(self.apikey_regular, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1912 'grant_user_permission_to_repo_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1913 repogroupid=TEST_REPO_GROUP, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1914 userid=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1915 perm=perm, apply_to_children=apply_to_children) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1916 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1917 if access_ok: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1918 ret = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1919 'msg': 'Granted perm: `%s` (recursive:%s) for user: `%s` in repo group: `%s`' % ( |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1920 perm, apply_to_children, base.TEST_USER_ADMIN_LOGIN, TEST_REPO_GROUP |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1921 ), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1922 'success': True |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1923 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1924 expected = ret |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1925 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1926 else: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1927 expected = 'repository group `%s` does not exist' % TEST_REPO_GROUP |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1928 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1929 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1930 def test_api_grant_user_permission_to_repo_group_wrong_permission(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1931 perm = 'haha.no.permission' |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1932 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1933 'grant_user_permission_to_repo_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1934 repogroupid=TEST_REPO_GROUP, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1935 userid=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1936 perm=perm) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1937 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1938 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1939 expected = 'permission `%s` does not exist' % perm |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1940 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1941 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
1942 @mock.patch.object(RepoGroupModel, 'grant_user_permission', raise_exception) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1943 def test_api_grant_user_permission_to_repo_group_exception_when_adding(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1944 perm = 'group.read' |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1945 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1946 'grant_user_permission_to_repo_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1947 repogroupid=TEST_REPO_GROUP, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1948 userid=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1949 perm=perm) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1950 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1951 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1952 expected = 'failed to edit permission for user: `%s` in repo group: `%s`' % ( |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1953 base.TEST_USER_ADMIN_LOGIN, TEST_REPO_GROUP |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1954 ) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1955 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1956 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1957 @base.parametrize('name,apply_to_children', [ |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1958 ('none', 'none'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1959 ('all', 'all'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1960 ('repos', 'repos'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1961 ('groups', 'groups'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1962 ]) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1963 def test_api_revoke_user_permission_from_repo_group(self, name, apply_to_children): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1964 RepoGroupModel().grant_user_permission(repo_group=TEST_REPO_GROUP, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1965 user=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1966 perm='group.read',) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
1967 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1968 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1969 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1970 'revoke_user_permission_from_repo_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1971 repogroupid=TEST_REPO_GROUP, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1972 userid=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1973 apply_to_children=apply_to_children,) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1974 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1975 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1976 expected = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1977 'msg': 'Revoked perm (recursive:%s) for user: `%s` in repo group: `%s`' % ( |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1978 apply_to_children, base.TEST_USER_ADMIN_LOGIN, TEST_REPO_GROUP |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1979 ), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1980 'success': True |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1981 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1982 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1983 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1984 @base.parametrize('name,apply_to_children,grant_admin,access_ok', [ |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1985 ('none', 'none', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1986 ('all', 'all', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1987 ('repos', 'repos', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1988 ('groups', 'groups', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1989 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1990 # after granting admin rights |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1991 ('none', 'none', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1992 ('all', 'all', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1993 ('repos', 'repos', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1994 ('groups', 'groups', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1995 ]) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1996 def test_api_revoke_user_permission_from_repo_group_by_regular_user( |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1997 self, name, apply_to_children, grant_admin, access_ok): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
1998 RepoGroupModel().grant_user_permission(repo_group=TEST_REPO_GROUP, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
1999 user=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2000 perm='group.read',) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
2001 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2002 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2003 if grant_admin: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2004 RepoGroupModel().grant_user_permission(TEST_REPO_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2005 self.TEST_USER_LOGIN, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2006 'group.admin') |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
2007 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2008 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2009 id_, params = _build_data(self.apikey_regular, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2010 'revoke_user_permission_from_repo_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2011 repogroupid=TEST_REPO_GROUP, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
2012 userid=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2013 apply_to_children=apply_to_children,) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2014 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2015 if access_ok: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2016 expected = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2017 'msg': 'Revoked perm (recursive:%s) for user: `%s` in repo group: `%s`' % ( |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
2018 apply_to_children, base.TEST_USER_ADMIN_LOGIN, TEST_REPO_GROUP |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2019 ), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2020 'success': True |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2021 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2022 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2023 else: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2024 expected = 'repository group `%s` does not exist' % TEST_REPO_GROUP |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2025 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2026 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
2027 @mock.patch.object(RepoGroupModel, 'revoke_user_permission', raise_exception) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2028 def test_api_revoke_user_permission_from_repo_group_exception_when_adding(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2029 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2030 'revoke_user_permission_from_repo_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2031 repogroupid=TEST_REPO_GROUP, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
2032 userid=base.TEST_USER_ADMIN_LOGIN, ) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2033 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2034 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2035 expected = 'failed to edit permission for user: `%s` in repo group: `%s`' % ( |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
2036 base.TEST_USER_ADMIN_LOGIN, TEST_REPO_GROUP |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2037 ) |
2526 | 2038 self._compare_error(id_, expected, given=response.body) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2039 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
2040 @base.parametrize('name,perm,apply_to_children', [ |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2041 ('none', 'group.none', 'none'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2042 ('read', 'group.read', 'none'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2043 ('write', 'group.write', 'none'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2044 ('admin', 'group.admin', 'none'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2045 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2046 ('none', 'group.none', 'all'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2047 ('read', 'group.read', 'all'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2048 ('write', 'group.write', 'all'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2049 ('admin', 'group.admin', 'all'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2050 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2051 ('none', 'group.none', 'repos'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2052 ('read', 'group.read', 'repos'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2053 ('write', 'group.write', 'repos'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2054 ('admin', 'group.admin', 'repos'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2055 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2056 ('none', 'group.none', 'groups'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2057 ('read', 'group.read', 'groups'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2058 ('write', 'group.write', 'groups'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2059 ('admin', 'group.admin', 'groups'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2060 ]) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2061 def test_api_grant_user_group_permission_to_repo_group(self, name, perm, apply_to_children): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2062 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2063 'grant_user_group_permission_to_repo_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2064 repogroupid=TEST_REPO_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2065 usergroupid=TEST_USER_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2066 perm=perm, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2067 apply_to_children=apply_to_children,) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2068 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2069 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2070 ret = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2071 'msg': 'Granted perm: `%s` (recursive:%s) for user group: `%s` in repo group: `%s`' % ( |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2072 perm, apply_to_children, TEST_USER_GROUP, TEST_REPO_GROUP |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2073 ), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2074 'success': True |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2075 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2076 expected = ret |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2077 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2078 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
2079 @base.parametrize('name,perm,apply_to_children,grant_admin,access_ok', [ |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2080 ('none_fails', 'group.none', 'none', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2081 ('read_fails', 'group.read', 'none', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2082 ('write_fails', 'group.write', 'none', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2083 ('admin_fails', 'group.admin', 'none', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2084 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2085 # with granted perms |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2086 ('none_ok', 'group.none', 'none', True, True), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2087 ('read_ok', 'group.read', 'none', True, True), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2088 ('write_ok', 'group.write', 'none', True, True), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2089 ('admin_ok', 'group.admin', 'none', True, True), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2090 ]) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2091 def test_api_grant_user_group_permission_to_repo_group_by_regular_user( |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2092 self, name, perm, apply_to_children, grant_admin, access_ok): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2093 if grant_admin: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2094 RepoGroupModel().grant_user_permission(TEST_REPO_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2095 self.TEST_USER_LOGIN, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2096 'group.admin') |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
2097 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2098 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2099 id_, params = _build_data(self.apikey_regular, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2100 'grant_user_group_permission_to_repo_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2101 repogroupid=TEST_REPO_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2102 usergroupid=TEST_USER_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2103 perm=perm, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2104 apply_to_children=apply_to_children,) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2105 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2106 if access_ok: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2107 ret = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2108 'msg': 'Granted perm: `%s` (recursive:%s) for user group: `%s` in repo group: `%s`' % ( |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2109 perm, apply_to_children, TEST_USER_GROUP, TEST_REPO_GROUP |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2110 ), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2111 'success': True |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2112 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2113 expected = ret |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2114 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2115 else: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2116 expected = 'repository group `%s` does not exist' % TEST_REPO_GROUP |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2117 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2118 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2119 def test_api_grant_user_group_permission_to_repo_group_wrong_permission(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2120 perm = 'haha.no.permission' |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2121 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2122 'grant_user_group_permission_to_repo_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2123 repogroupid=TEST_REPO_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2124 usergroupid=TEST_USER_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2125 perm=perm) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2126 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2127 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2128 expected = 'permission `%s` does not exist' % perm |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2129 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2130 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
2131 @mock.patch.object(RepoGroupModel, 'grant_user_group_permission', raise_exception) |
5398
956c557749cf
cleanup: fix some risky variable redefinitions
Mads Kiilerich <madski@unity3d.com>
parents:
5326
diff
changeset
|
2132 def test_api_grant_user_group_permission_exception_when_adding_to_repo_group(self): |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2133 perm = 'group.read' |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2134 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2135 'grant_user_group_permission_to_repo_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2136 repogroupid=TEST_REPO_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2137 usergroupid=TEST_USER_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2138 perm=perm) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2139 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2140 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2141 expected = 'failed to edit permission for user group: `%s` in repo group: `%s`' % ( |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2142 TEST_USER_GROUP, TEST_REPO_GROUP |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2143 ) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2144 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2145 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
2146 @base.parametrize('name,apply_to_children', [ |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2147 ('none', 'none'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2148 ('all', 'all'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2149 ('repos', 'repos'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2150 ('groups', 'groups'), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2151 ]) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2152 def test_api_revoke_user_group_permission_from_repo_group(self, name, apply_to_children): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2153 RepoGroupModel().grant_user_group_permission(repo_group=TEST_REPO_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2154 group_name=TEST_USER_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2155 perm='group.read',) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
2156 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2157 id_, params = _build_data(self.apikey, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2158 'revoke_user_group_permission_from_repo_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2159 repogroupid=TEST_REPO_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2160 usergroupid=TEST_USER_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2161 apply_to_children=apply_to_children,) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2162 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2163 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2164 expected = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2165 'msg': 'Revoked perm (recursive:%s) for user group: `%s` in repo group: `%s`' % ( |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2166 apply_to_children, TEST_USER_GROUP, TEST_REPO_GROUP |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2167 ), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2168 'success': True |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2169 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2170 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2171 |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
2172 @base.parametrize('name,apply_to_children,grant_admin,access_ok', [ |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2173 ('none', 'none', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2174 ('all', 'all', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2175 ('repos', 'repos', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2176 ('groups', 'groups', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2177 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2178 # after granting admin rights |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2179 ('none', 'none', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2180 ('all', 'all', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2181 ('repos', 'repos', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2182 ('groups', 'groups', False, False), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2183 ]) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2184 def test_api_revoke_user_group_permission_from_repo_group_by_regular_user( |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2185 self, name, apply_to_children, grant_admin, access_ok): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2186 RepoGroupModel().grant_user_permission(repo_group=TEST_REPO_GROUP, |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
2187 user=base.TEST_USER_ADMIN_LOGIN, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2188 perm='group.read',) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
2189 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2190 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2191 if grant_admin: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2192 RepoGroupModel().grant_user_permission(TEST_REPO_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2193 self.TEST_USER_LOGIN, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2194 'group.admin') |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
2195 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2196 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2197 id_, params = _build_data(self.apikey_regular, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2198 'revoke_user_group_permission_from_repo_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2199 repogroupid=TEST_REPO_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2200 usergroupid=TEST_USER_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2201 apply_to_children=apply_to_children,) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2202 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2203 if access_ok: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2204 expected = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2205 'msg': 'Revoked perm (recursive:%s) for user group: `%s` in repo group: `%s`' % ( |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
2206 apply_to_children, base.TEST_USER_ADMIN_LOGIN, TEST_REPO_GROUP |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2207 ), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2208 'success': True |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2209 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2210 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2211 else: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2212 expected = 'repository group `%s` does not exist' % TEST_REPO_GROUP |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2213 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2214 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
2215 @mock.patch.object(RepoGroupModel, 'revoke_user_group_permission', raise_exception) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2216 def test_api_revoke_user_group_permission_from_repo_group_exception_when_adding(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2217 id_, params = _build_data(self.apikey, 'revoke_user_group_permission_from_repo_group', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2218 repogroupid=TEST_REPO_GROUP, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2219 usergroupid=TEST_USER_GROUP,) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2220 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2221 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2222 expected = 'failed to edit permission for user group: `%s` in repo group: `%s`' % ( |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2223 TEST_USER_GROUP, TEST_REPO_GROUP |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2224 ) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2225 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2226 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2227 def test_api_get_gist(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2228 gist = fixture.create_gist() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2229 gist_id = gist.gist_access_id |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2230 gist_created_on = gist.created_on |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2231 id_, params = _build_data(self.apikey, 'get_gist', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2232 gistid=gist_id, ) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2233 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2234 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2235 expected = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2236 'access_id': gist_id, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2237 'created_on': gist_created_on, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2238 'description': 'new-gist', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2239 'expires': -1.0, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2240 'gist_id': int(gist_id), |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2241 'type': 'public', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2242 'url': 'http://localhost:80/_admin/gists/%s' % gist_id |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2243 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2244 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2245 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2246 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2247 def test_api_get_gist_that_does_not_exist(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2248 id_, params = _build_data(self.apikey_regular, 'get_gist', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2249 gistid='12345', ) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2250 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2251 expected = 'gist `%s` does not exist' % ('12345',) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2252 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2253 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2254 def test_api_get_gist_private_gist_without_permission(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2255 gist = fixture.create_gist() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2256 gist_id = gist.gist_access_id |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2257 gist_created_on = gist.created_on |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2258 id_, params = _build_data(self.apikey_regular, 'get_gist', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2259 gistid=gist_id, ) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2260 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2261 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2262 expected = 'gist `%s` does not exist' % gist_id |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2263 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2264 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2265 def test_api_get_gists(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2266 fixture.create_gist() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2267 fixture.create_gist() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2268 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2269 id_, params = _build_data(self.apikey, 'get_gists') |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2270 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2271 expected = response.json |
5913
8d4f3a852716
pytest migration: api: switch to standard assert statements
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5907
diff
changeset
|
2272 assert len(response.json['result']) == 2 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2273 #self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2274 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2275 def test_api_get_gists_regular_user(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2276 # by admin |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2277 fixture.create_gist() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2278 fixture.create_gist() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2279 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2280 # by reg user |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2281 fixture.create_gist(owner=self.TEST_USER_LOGIN) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2282 fixture.create_gist(owner=self.TEST_USER_LOGIN) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2283 fixture.create_gist(owner=self.TEST_USER_LOGIN) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2284 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2285 id_, params = _build_data(self.apikey_regular, 'get_gists') |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2286 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2287 expected = response.json |
5913
8d4f3a852716
pytest migration: api: switch to standard assert statements
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5907
diff
changeset
|
2288 assert len(response.json['result']) == 3 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2289 #self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2290 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2291 def test_api_get_gists_only_for_regular_user(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2292 # by admin |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2293 fixture.create_gist() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2294 fixture.create_gist() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2295 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2296 # by reg user |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2297 fixture.create_gist(owner=self.TEST_USER_LOGIN) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2298 fixture.create_gist(owner=self.TEST_USER_LOGIN) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2299 fixture.create_gist(owner=self.TEST_USER_LOGIN) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2300 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2301 id_, params = _build_data(self.apikey, 'get_gists', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2302 userid=self.TEST_USER_LOGIN) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2303 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2304 expected = response.json |
5913
8d4f3a852716
pytest migration: api: switch to standard assert statements
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
5907
diff
changeset
|
2305 assert len(response.json['result']) == 3 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2306 #self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2307 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2308 def test_api_get_gists_regular_user_with_different_userid(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2309 id_, params = _build_data(self.apikey_regular, 'get_gists', |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
2310 userid=base.TEST_USER_ADMIN_LOGIN) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2311 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2312 expected = 'userid is not the same as your user' |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2313 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2314 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2315 def test_api_create_gist(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2316 id_, params = _build_data(self.apikey_regular, 'create_gist', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2317 lifetime=10, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2318 description='foobar-gist', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2319 gist_type='public', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2320 files={'foobar': {'content': 'foo'}}) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2321 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2322 expected = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2323 'gist': { |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2324 'access_id': response.json['result']['gist']['access_id'], |
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2325 'created_on': response.json['result']['gist']['created_on'], |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2326 'description': 'foobar-gist', |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2327 'expires': response.json['result']['gist']['expires'], |
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2328 'gist_id': response.json['result']['gist']['gist_id'], |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2329 'type': 'public', |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2330 'url': response.json['result']['gist']['url'] |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2331 }, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2332 'msg': 'created new gist' |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2333 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2334 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2335 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
2336 @mock.patch.object(GistModel, 'create', raise_exception) |
4792
923037eb67d4
spelling: fix various typos
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4769
diff
changeset
|
2337 def test_api_create_gist_exception_occurred(self): |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2338 id_, params = _build_data(self.apikey_regular, 'create_gist', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2339 files={}) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2340 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2341 expected = 'failed to create gist' |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2342 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2343 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2344 def test_api_delete_gist(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2345 gist_id = fixture.create_gist().gist_access_id |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2346 id_, params = _build_data(self.apikey, 'delete_gist', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2347 gistid=gist_id) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2348 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2349 expected = {'gist': None, 'msg': 'deleted gist ID:%s' % gist_id} |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2350 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2351 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2352 def test_api_delete_gist_regular_user(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2353 gist_id = fixture.create_gist(owner=self.TEST_USER_LOGIN).gist_access_id |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2354 id_, params = _build_data(self.apikey_regular, 'delete_gist', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2355 gistid=gist_id) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2356 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2357 expected = {'gist': None, 'msg': 'deleted gist ID:%s' % gist_id} |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2358 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2359 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2360 def test_api_delete_gist_regular_user_no_permission(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2361 gist_id = fixture.create_gist().gist_access_id |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2362 id_, params = _build_data(self.apikey_regular, 'delete_gist', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2363 gistid=gist_id) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2364 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2365 expected = 'gist `%s` does not exist' % (gist_id,) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2366 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2367 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8379
diff
changeset
|
2368 @mock.patch.object(GistModel, 'delete', raise_exception) |
4792
923037eb67d4
spelling: fix various typos
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4769
diff
changeset
|
2369 def test_api_delete_gist_exception_occurred(self): |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2370 gist_id = fixture.create_gist().gist_access_id |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2371 id_, params = _build_data(self.apikey, 'delete_gist', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2372 gistid=gist_id) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2373 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2374 expected = 'failed to delete gist ID:%s' % (gist_id,) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2375 self._compare_error(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2376 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2377 def test_api_get_ip(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2378 id_, params = _build_data(self.apikey, 'get_ip') |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2379 response = api_call(self, params) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2380 expected = { |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2381 'server_ip_addr': '0.0.0.0', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2382 'user_ips': [] |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2383 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2384 self._compare_ok(id_, expected, given=response.body) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2385 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2386 def test_api_get_server_info(self): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2387 id_, params = _build_data(self.apikey, 'get_server_info') |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2388 response = api_call(self, params) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2389 expected = db.Setting.get_server_info() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3891
diff
changeset
|
2390 self._compare_ok(id_, expected, given=response.body) |
6652
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2391 |
6683 | 2392 def test_api_get_changesets(self): |
2393 id_, params = _build_data(self.apikey, 'get_changesets', | |
2394 repoid=self.REPO, start=0, end=2) | |
2395 response = api_call(self, params) | |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2396 result = ext_json.loads(response.body)["result"] |
6683 | 2397 assert len(result) == 3 |
6869
016481e43341
codingstyle: replace ".has_key(...)" with "... is in ..."
Lars Kruse <devel@sumpfralle.de>
parents:
6868
diff
changeset
|
2398 assert 'message' in result[0] |
016481e43341
codingstyle: replace ".has_key(...)" with "... is in ..."
Lars Kruse <devel@sumpfralle.de>
parents:
6868
diff
changeset
|
2399 assert 'added' not in result[0] |
6683 | 2400 |
7145
32e6957d0aac
api: add max_revisions option to get_changesets
domruf <dominikruf@gmail.com>
parents:
7144
diff
changeset
|
2401 def test_api_get_changesets_with_max_revisions(self): |
32e6957d0aac
api: add max_revisions option to get_changesets
domruf <dominikruf@gmail.com>
parents:
7144
diff
changeset
|
2402 id_, params = _build_data(self.apikey, 'get_changesets', |
32e6957d0aac
api: add max_revisions option to get_changesets
domruf <dominikruf@gmail.com>
parents:
7144
diff
changeset
|
2403 repoid=self.REPO, start_date="2011-02-24T00:00:00", max_revisions=10) |
32e6957d0aac
api: add max_revisions option to get_changesets
domruf <dominikruf@gmail.com>
parents:
7144
diff
changeset
|
2404 response = api_call(self, params) |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2405 result = ext_json.loads(response.body)["result"] |
7145
32e6957d0aac
api: add max_revisions option to get_changesets
domruf <dominikruf@gmail.com>
parents:
7144
diff
changeset
|
2406 assert len(result) == 10 |
32e6957d0aac
api: add max_revisions option to get_changesets
domruf <dominikruf@gmail.com>
parents:
7144
diff
changeset
|
2407 assert 'message' in result[0] |
32e6957d0aac
api: add max_revisions option to get_changesets
domruf <dominikruf@gmail.com>
parents:
7144
diff
changeset
|
2408 assert 'added' not in result[0] |
32e6957d0aac
api: add max_revisions option to get_changesets
domruf <dominikruf@gmail.com>
parents:
7144
diff
changeset
|
2409 |
7144
bfb1ae42bcbb
vcs: fix get_changesets filtering on hg repo to AND the criteria instead of OR
domruf <dominikruf@gmail.com>
parents:
7140
diff
changeset
|
2410 def test_api_get_changesets_with_branch(self): |
bfb1ae42bcbb
vcs: fix get_changesets filtering on hg repo to AND the criteria instead of OR
domruf <dominikruf@gmail.com>
parents:
7140
diff
changeset
|
2411 if self.REPO == 'vcs_test_hg': |
bfb1ae42bcbb
vcs: fix get_changesets filtering on hg repo to AND the criteria instead of OR
domruf <dominikruf@gmail.com>
parents:
7140
diff
changeset
|
2412 branch = 'stable' |
bfb1ae42bcbb
vcs: fix get_changesets filtering on hg repo to AND the criteria instead of OR
domruf <dominikruf@gmail.com>
parents:
7140
diff
changeset
|
2413 else: |
bfb1ae42bcbb
vcs: fix get_changesets filtering on hg repo to AND the criteria instead of OR
domruf <dominikruf@gmail.com>
parents:
7140
diff
changeset
|
2414 pytest.skip("skipping due to missing branches in git test repo") |
bfb1ae42bcbb
vcs: fix get_changesets filtering on hg repo to AND the criteria instead of OR
domruf <dominikruf@gmail.com>
parents:
7140
diff
changeset
|
2415 id_, params = _build_data(self.apikey, 'get_changesets', |
bfb1ae42bcbb
vcs: fix get_changesets filtering on hg repo to AND the criteria instead of OR
domruf <dominikruf@gmail.com>
parents:
7140
diff
changeset
|
2416 repoid=self.REPO, branch_name=branch, start_date="2011-02-24T00:00:00") |
bfb1ae42bcbb
vcs: fix get_changesets filtering on hg repo to AND the criteria instead of OR
domruf <dominikruf@gmail.com>
parents:
7140
diff
changeset
|
2417 response = api_call(self, params) |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2418 result = ext_json.loads(response.body)["result"] |
7144
bfb1ae42bcbb
vcs: fix get_changesets filtering on hg repo to AND the criteria instead of OR
domruf <dominikruf@gmail.com>
parents:
7140
diff
changeset
|
2419 assert len(result) == 5 |
bfb1ae42bcbb
vcs: fix get_changesets filtering on hg repo to AND the criteria instead of OR
domruf <dominikruf@gmail.com>
parents:
7140
diff
changeset
|
2420 assert 'message' in result[0] |
bfb1ae42bcbb
vcs: fix get_changesets filtering on hg repo to AND the criteria instead of OR
domruf <dominikruf@gmail.com>
parents:
7140
diff
changeset
|
2421 assert 'added' not in result[0] |
bfb1ae42bcbb
vcs: fix get_changesets filtering on hg repo to AND the criteria instead of OR
domruf <dominikruf@gmail.com>
parents:
7140
diff
changeset
|
2422 |
6683 | 2423 def test_api_get_changesets_with_file_list(self): |
2424 id_, params = _build_data(self.apikey, 'get_changesets', | |
2425 repoid=self.REPO, start_date="2010-04-07T23:30:30", end_date="2010-04-08T00:31:14", with_file_list=True) | |
2426 response = api_call(self, params) | |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2427 result = ext_json.loads(response.body)["result"] |
6683 | 2428 assert len(result) == 3 |
6869
016481e43341
codingstyle: replace ".has_key(...)" with "... is in ..."
Lars Kruse <devel@sumpfralle.de>
parents:
6868
diff
changeset
|
2429 assert 'message' in result[0] |
016481e43341
codingstyle: replace ".has_key(...)" with "... is in ..."
Lars Kruse <devel@sumpfralle.de>
parents:
6868
diff
changeset
|
2430 assert 'added' in result[0] |
6683 | 2431 |
6652
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2432 def test_api_get_changeset(self): |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2433 review = fixture.review_changeset(self.REPO, self.TEST_REVISION, "approved") |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2434 id_, params = _build_data(self.apikey, 'get_changeset', |
6864
7691290837d2
codingstyle: trivial whitespace fixes
Lars Kruse <devel@sumpfralle.de>
parents:
6808
diff
changeset
|
2435 repoid=self.REPO, raw_id=self.TEST_REVISION) |
6652
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2436 response = api_call(self, params) |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2437 result = ext_json.loads(response.body)["result"] |
6652
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2438 assert result["raw_id"] == self.TEST_REVISION |
6869
016481e43341
codingstyle: replace ".has_key(...)" with "... is in ..."
Lars Kruse <devel@sumpfralle.de>
parents:
6868
diff
changeset
|
2439 assert "reviews" not in result |
6652
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2440 |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2441 def test_api_get_changeset_with_reviews(self): |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2442 reviewobjs = fixture.review_changeset(self.REPO, self.TEST_REVISION, "approved") |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2443 id_, params = _build_data(self.apikey, 'get_changeset', |
6864
7691290837d2
codingstyle: trivial whitespace fixes
Lars Kruse <devel@sumpfralle.de>
parents:
6808
diff
changeset
|
2444 repoid=self.REPO, raw_id=self.TEST_REVISION, |
7691290837d2
codingstyle: trivial whitespace fixes
Lars Kruse <devel@sumpfralle.de>
parents:
6808
diff
changeset
|
2445 with_reviews=True) |
6652
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2446 response = api_call(self, params) |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2447 result = ext_json.loads(response.body)["result"] |
6652
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2448 assert result["raw_id"] == self.TEST_REVISION |
6869
016481e43341
codingstyle: replace ".has_key(...)" with "... is in ..."
Lars Kruse <devel@sumpfralle.de>
parents:
6868
diff
changeset
|
2449 assert "reviews" in result |
6652
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2450 assert len(result["reviews"]) == 1 |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2451 review = result["reviews"][0] |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2452 expected = { |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2453 'status': 'approved', |
6808
71033bd37b4c
api: change precision of ChangesetStatus.modified_at to seconds
domruf <dominikruf@gmail.com>
parents:
6683
diff
changeset
|
2454 'modified_at': reviewobjs[0].modified_at.replace(microsecond=0).isoformat(), |
6652
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2455 'reviewer': 'test_admin', |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2456 } |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2457 assert review == expected |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2458 |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2459 def test_api_get_changeset_that_does_not_exist(self): |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2460 """ Fetch changeset status for non-existant changeset. |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2461 revision id is the above git hash used in the test above with the |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2462 last 3 nibbles replaced with 0xf. Should not exist for git _or_ hg. |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2463 """ |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2464 id_, params = _build_data(self.apikey, 'get_changeset', |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2465 repoid=self.REPO, raw_id = '7ab37bc680b4aa72c34d07b230c866c28e9fcfff') |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2466 response = api_call(self, params) |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
2467 expected = 'Changeset %s does not exist' % ('7ab37bc680b4aa72c34d07b230c866c28e9fcfff',) |
6652
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2468 self._compare_error(id_, expected, given=response.body) |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2469 |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2470 def test_api_get_changeset_without_permission(self): |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2471 review = fixture.review_changeset(self.REPO, self.TEST_REVISION, "approved") |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2472 RepoModel().revoke_user_permission(repo=self.REPO, user=self.TEST_USER_LOGIN) |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2473 RepoModel().revoke_user_permission(repo=self.REPO, user="default") |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2474 id_, params = _build_data(self.apikey_regular, 'get_changeset', |
6864
7691290837d2
codingstyle: trivial whitespace fixes
Lars Kruse <devel@sumpfralle.de>
parents:
6808
diff
changeset
|
2475 repoid=self.REPO, raw_id=self.TEST_REVISION) |
6652
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2476 response = api_call(self, params) |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
2477 expected = 'Access denied to repo %s' % self.REPO |
6652
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6638
diff
changeset
|
2478 self._compare_error(id_, expected, given=response.body) |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2479 |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2480 def test_api_get_pullrequest(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
2481 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'get test') |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2482 random_id = random.randrange(1, 9999) |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2483 params = ascii_bytes(ext_json.dumps({ |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2484 "id": random_id, |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2485 "api_key": self.apikey, |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2486 "method": 'get_pullrequest', |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2487 "args": {"pullrequest_id": pull_request_id}, |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2488 })) |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2489 response = api_call(self, params) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2490 pullrequest = db.PullRequest().get(pull_request_id) |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2491 expected = { |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2492 "status": "new", |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2493 "pull_request_id": pull_request_id, |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2494 "description": "No description", |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2495 "url": "/%s/pull-request/%s/_/%s" % (self.REPO, pull_request_id, "stable"), |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2496 "reviewers": [{"username": "test_regular"}], |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2497 "org_repo_url": "http://localhost:80/%s" % self.REPO, |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2498 "org_ref_parts": ["branch", "stable", self.TEST_PR_SRC], |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2499 "other_ref_parts": ["branch", "default", self.TEST_PR_DST], |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
2500 "comments": [{"username": base.TEST_USER_ADMIN_LOGIN, "text": "", |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2501 "comment_id": pullrequest.comments[0].comment_id}], |
8109
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
2502 "owner": base.TEST_USER_ADMIN_LOGIN, |
e527cc2ce8dc
cleanup: get rid of most "import *"
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
2503 "statuses": [{"status": "under_review", "reviewer": base.TEST_USER_ADMIN_LOGIN, "modified_at": "2000-01-01T00:00:00"} for i in range(0, len(self.TEST_PR_REVISIONS))], |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2504 "title": "get test", |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2505 "revisions": self.TEST_PR_REVISIONS, |
8644
e24531aa2449
api: extend get_pullrequest data with created_on and updated_on fields
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8599
diff
changeset
|
2506 "created_on": "2000-01-01T00:00:00", |
e24531aa2449
api: extend get_pullrequest data with created_on and updated_on fields
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8599
diff
changeset
|
2507 "updated_on": "2000-01-01T00:00:00", |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2508 } |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2509 self._compare_ok(random_id, expected, |
8078
45bfab30d433
py3: add b'' annotations in some places where they will be needed later
Mads Kiilerich <mads@kiilerich.com>
parents:
8044
diff
changeset
|
2510 given=re.sub(br"\d\d\d\d\-\d\d\-\d\dT\d\d\:\d\d\:\d\d", |
45bfab30d433
py3: add b'' annotations in some places where they will be needed later
Mads Kiilerich <mads@kiilerich.com>
parents:
8044
diff
changeset
|
2511 b"2000-01-01T00:00:00", response.body)) |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2512 |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2513 def test_api_close_pullrequest(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
2514 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'close test') |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2515 random_id = random.randrange(1, 9999) |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2516 params = ascii_bytes(ext_json.dumps({ |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2517 "id": random_id, |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2518 "api_key": self.apikey, |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2519 "method": "comment_pullrequest", |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2520 "args": {"pull_request_id": pull_request_id, "close_pr": True}, |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2521 })) |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2522 response = api_call(self, params) |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2523 self._compare_ok(random_id, True, given=response.body) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2524 pullrequest = db.PullRequest().get(pull_request_id) |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2525 assert pullrequest.comments[-1].text == '' |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2526 assert pullrequest.status == db.PullRequest.STATUS_CLOSED |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2527 assert pullrequest.is_closed() == True |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2528 |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2529 def test_api_status_pullrequest(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
2530 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, "status test") |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2531 |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2532 random_id = random.randrange(1, 9999) |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2533 params = ascii_bytes(ext_json.dumps({ |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2534 "id": random_id, |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2535 "api_key": db.User.get_by_username(base.TEST_USER_REGULAR2_LOGIN).api_key, |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2536 "method": "comment_pullrequest", |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2537 "args": {"pull_request_id": pull_request_id, "status": db.ChangesetStatus.STATUS_APPROVED}, |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2538 })) |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2539 response = api_call(self, params) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2540 pullrequest = db.PullRequest().get(pull_request_id) |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2541 self._compare_error(random_id, "No permission to change pull request status. User needs to be admin, owner or reviewer.", given=response.body) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2542 assert db.ChangesetStatus.STATUS_UNDER_REVIEW == ChangesetStatusModel().calculate_pull_request_result(pullrequest)[2] |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2543 params = ascii_bytes(ext_json.dumps({ |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2544 "id": random_id, |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2545 "api_key": db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN).api_key, |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2546 "method": "comment_pullrequest", |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2547 "args": {"pull_request_id": pull_request_id, "status": db.ChangesetStatus.STATUS_APPROVED}, |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2548 })) |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2549 response = api_call(self, params) |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2550 self._compare_ok(random_id, True, given=response.body) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2551 pullrequest = db.PullRequest().get(pull_request_id) |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2552 assert db.ChangesetStatus.STATUS_APPROVED == ChangesetStatusModel().calculate_pull_request_result(pullrequest)[2] |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2553 |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2554 def test_api_comment_pullrequest(self): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
2555 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, "comment test") |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2556 random_id = random.randrange(1, 9999) |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2557 params = ascii_bytes(ext_json.dumps({ |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2558 "id": random_id, |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2559 "api_key": self.apikey, |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2560 "method": "comment_pullrequest", |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2561 "args": {"pull_request_id": pull_request_id, "comment_msg": "Looks good to me"}, |
8120
58b6e4cd6fe9
lib: clean up ext_json and how it is used - avoid monkey patching
Mads Kiilerich <mads@kiilerich.com>
parents:
8109
diff
changeset
|
2562 })) |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2563 response = api_call(self, params) |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6654
diff
changeset
|
2564 self._compare_ok(random_id, True, given=response.body) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2565 pullrequest = db.PullRequest().get(pull_request_id) |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8120
diff
changeset
|
2566 assert pullrequest.comments[-1].text == 'Looks good to me' |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2567 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2568 def test_api_edit_reviewers_add_single(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2569 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2570 pullrequest = db.PullRequest().get(pull_request_id) |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2571 pullrequest.owner = self.test_user |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2572 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2573 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2574 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2575 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2576 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2577 "args": {"pull_request_id": pull_request_id, "add": base.TEST_USER_REGULAR2_LOGIN}, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2578 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2579 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2580 expected = { 'added': [base.TEST_USER_REGULAR2_LOGIN], 'already_present': [], 'removed': [] } |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2581 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2582 self._compare_ok(random_id, expected, given=response.body) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2583 assert db.User.get_by_username(base.TEST_USER_REGULAR2_LOGIN) in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2584 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2585 def test_api_edit_reviewers_add_nonexistent(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2586 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2587 pullrequest = db.PullRequest().get(pull_request_id) |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2588 pullrequest.owner = self.test_user |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2589 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2590 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2591 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2592 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2593 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2594 "args": {"pull_request_id": pull_request_id, "add": 999}, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2595 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2596 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2597 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2598 self._compare_error(random_id, "user `999` does not exist", given=response.body) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2599 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2600 def test_api_edit_reviewers_add_multiple(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2601 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2602 pullrequest = db.PullRequest().get(pull_request_id) |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2603 pullrequest.owner = self.test_user |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2604 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2605 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2606 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2607 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2608 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2609 "args": { |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2610 "pull_request_id": pull_request_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2611 "add": [ self.TEST_USER_LOGIN, base.TEST_USER_REGULAR2_LOGIN ] |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2612 }, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2613 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2614 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2615 # list order depends on python sorting hash, which is randomized |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2616 assert set(ext_json.loads(response.body)['result']['added']) == set([base.TEST_USER_REGULAR2_LOGIN, self.TEST_USER_LOGIN]) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2617 assert set(ext_json.loads(response.body)['result']['already_present']) == set() |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2618 assert set(ext_json.loads(response.body)['result']['removed']) == set() |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2619 |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2620 assert db.User.get_by_username(base.TEST_USER_REGULAR2_LOGIN) in pullrequest.get_reviewer_users() |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2621 assert db.User.get_by_username(self.TEST_USER_LOGIN) in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2622 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2623 def test_api_edit_reviewers_add_already_present(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2624 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2625 pullrequest = db.PullRequest().get(pull_request_id) |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2626 pullrequest.owner = self.test_user |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2627 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2628 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2629 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2630 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2631 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2632 "args": { |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2633 "pull_request_id": pull_request_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2634 "add": [ base.TEST_USER_REGULAR_LOGIN, base.TEST_USER_REGULAR2_LOGIN ] |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2635 }, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2636 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2637 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2638 expected = { 'added': [base.TEST_USER_REGULAR2_LOGIN], |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2639 'already_present': [base.TEST_USER_REGULAR_LOGIN], |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2640 'removed': [], |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2641 } |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2642 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2643 self._compare_ok(random_id, expected, given=response.body) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2644 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) in pullrequest.get_reviewer_users() |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2645 assert db.User.get_by_username(base.TEST_USER_REGULAR2_LOGIN) in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2646 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2647 def test_api_edit_reviewers_add_closed(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2648 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2649 pullrequest = db.PullRequest().get(pull_request_id) |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2650 pullrequest.owner = self.test_user |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2651 PullRequestModel().close_pull_request(pull_request_id) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2652 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2653 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2654 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2655 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2656 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2657 "args": {"pull_request_id": pull_request_id, "add": base.TEST_USER_REGULAR2_LOGIN}, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2658 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2659 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2660 self._compare_error(random_id, "Cannot edit reviewers of a closed pull request.", given=response.body) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2661 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2662 def test_api_edit_reviewers_add_not_owner(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2663 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2664 pullrequest = db.PullRequest().get(pull_request_id) |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2665 pullrequest.owner = db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2666 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2667 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2668 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2669 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2670 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2671 "args": {"pull_request_id": pull_request_id, "add": base.TEST_USER_REGULAR2_LOGIN}, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2672 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2673 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2674 self._compare_error(random_id, "No permission to edit reviewers of this pull request. User needs to be admin or pull request owner.", given=response.body) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2675 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2676 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2677 def test_api_edit_reviewers_remove_single(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2678 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2679 pullrequest = db.PullRequest().get(pull_request_id) |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2680 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2681 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2682 pullrequest.owner = self.test_user |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2683 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2684 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2685 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2686 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2687 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2688 "args": {"pull_request_id": pull_request_id, "remove": base.TEST_USER_REGULAR_LOGIN}, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2689 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2690 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2691 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2692 expected = { 'added': [], |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2693 'already_present': [], |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2694 'removed': [base.TEST_USER_REGULAR_LOGIN], |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2695 } |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2696 self._compare_ok(random_id, expected, given=response.body) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2697 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) not in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2698 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2699 def test_api_edit_reviewers_remove_nonexistent(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2700 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2701 pullrequest = db.PullRequest().get(pull_request_id) |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2702 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2703 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2704 pullrequest.owner = self.test_user |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2705 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2706 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2707 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2708 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2709 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2710 "args": {"pull_request_id": pull_request_id, "remove": 999}, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2711 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2712 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2713 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2714 self._compare_error(random_id, "user `999` does not exist", given=response.body) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2715 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2716 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2717 def test_api_edit_reviewers_remove_nonpresent(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2718 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2719 pullrequest = db.PullRequest().get(pull_request_id) |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2720 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) in pullrequest.get_reviewer_users() |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2721 assert db.User.get_by_username(base.TEST_USER_REGULAR2_LOGIN) not in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2722 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2723 pullrequest.owner = self.test_user |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2724 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2725 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2726 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2727 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2728 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2729 "args": {"pull_request_id": pull_request_id, "remove": base.TEST_USER_REGULAR2_LOGIN}, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2730 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2731 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2732 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2733 # NOTE: no explicit indication that removed user was not even a reviewer |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2734 expected = { 'added': [], |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2735 'already_present': [], |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2736 'removed': [base.TEST_USER_REGULAR2_LOGIN], |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2737 } |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2738 self._compare_ok(random_id, expected, given=response.body) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2739 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) in pullrequest.get_reviewer_users() |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2740 assert db.User.get_by_username(base.TEST_USER_REGULAR2_LOGIN) not in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2741 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2742 def test_api_edit_reviewers_remove_multiple(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2743 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2744 pullrequest = db.PullRequest().get(pull_request_id) |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2745 prr = db.PullRequestReviewer(db.User.get_by_username(base.TEST_USER_REGULAR2_LOGIN), pullrequest) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
2746 meta.Session().add(prr) |
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
2747 meta.Session().commit() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2748 |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2749 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) in pullrequest.get_reviewer_users() |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2750 assert db.User.get_by_username(base.TEST_USER_REGULAR2_LOGIN) in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2751 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2752 pullrequest.owner = self.test_user |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2753 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2754 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2755 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2756 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2757 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2758 "args": {"pull_request_id": pull_request_id, "remove": [ base.TEST_USER_REGULAR_LOGIN, base.TEST_USER_REGULAR2_LOGIN ] }, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2759 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2760 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2761 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2762 # list order depends on python sorting hash, which is randomized |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2763 assert set(ext_json.loads(response.body)['result']['added']) == set() |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2764 assert set(ext_json.loads(response.body)['result']['already_present']) == set() |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2765 assert set(ext_json.loads(response.body)['result']['removed']) == set([base.TEST_USER_REGULAR_LOGIN, base.TEST_USER_REGULAR2_LOGIN]) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2766 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) not in pullrequest.get_reviewer_users() |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2767 assert db.User.get_by_username(base.TEST_USER_REGULAR2_LOGIN) not in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2768 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2769 def test_api_edit_reviewers_remove_closed(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2770 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2771 pullrequest = db.PullRequest().get(pull_request_id) |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2772 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2773 PullRequestModel().close_pull_request(pull_request_id) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2774 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2775 pullrequest.owner = self.test_user |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2776 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2777 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2778 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2779 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2780 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2781 "args": {"pull_request_id": pull_request_id, "remove": base.TEST_USER_REGULAR_LOGIN}, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2782 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2783 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2784 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2785 self._compare_error(random_id, "Cannot edit reviewers of a closed pull request.", given=response.body) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2786 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2787 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2788 def test_api_edit_reviewers_remove_not_owner(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2789 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2790 pullrequest = db.PullRequest().get(pull_request_id) |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2791 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) in pullrequest.get_reviewer_users() |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2792 |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2793 pullrequest.owner = db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2794 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2795 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2796 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2797 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2798 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2799 "args": {"pull_request_id": pull_request_id, "remove": base.TEST_USER_REGULAR_LOGIN}, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2800 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2801 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2802 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2803 self._compare_error(random_id, "No permission to edit reviewers of this pull request. User needs to be admin or pull request owner.", given=response.body) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2804 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2805 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2806 def test_api_edit_reviewers_add_remove_single(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2807 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2808 pullrequest = db.PullRequest().get(pull_request_id) |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2809 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) in pullrequest.get_reviewer_users() |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2810 assert db.User.get_by_username(base.TEST_USER_REGULAR2_LOGIN) not in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2811 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2812 pullrequest.owner = self.test_user |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2813 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2814 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2815 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2816 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2817 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2818 "args": {"pull_request_id": pull_request_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2819 "add": base.TEST_USER_REGULAR2_LOGIN, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2820 "remove": base.TEST_USER_REGULAR_LOGIN |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2821 }, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2822 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2823 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2824 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2825 expected = { 'added': [base.TEST_USER_REGULAR2_LOGIN], |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2826 'already_present': [], |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2827 'removed': [base.TEST_USER_REGULAR_LOGIN], |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2828 } |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2829 self._compare_ok(random_id, expected, given=response.body) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2830 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) not in pullrequest.get_reviewer_users() |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2831 assert db.User.get_by_username(base.TEST_USER_REGULAR2_LOGIN) in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2832 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2833 def test_api_edit_reviewers_add_remove_multiple(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2834 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2835 pullrequest = db.PullRequest().get(pull_request_id) |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2836 prr = db.PullRequestReviewer(db.User.get_by_username(base.TEST_USER_ADMIN_LOGIN), pullrequest) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
2837 meta.Session().add(prr) |
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8661
diff
changeset
|
2838 meta.Session().commit() |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2839 assert db.User.get_by_username(base.TEST_USER_ADMIN_LOGIN) in pullrequest.get_reviewer_users() |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2840 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) in pullrequest.get_reviewer_users() |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2841 assert db.User.get_by_username(base.TEST_USER_REGULAR2_LOGIN) not in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2842 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2843 pullrequest.owner = self.test_user |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2844 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2845 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2846 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2847 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2848 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2849 "args": {"pull_request_id": pull_request_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2850 "add": [ base.TEST_USER_REGULAR2_LOGIN ], |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2851 "remove": [ base.TEST_USER_REGULAR_LOGIN, base.TEST_USER_ADMIN_LOGIN ], |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2852 }, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2853 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2854 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2855 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2856 # list order depends on python sorting hash, which is randomized |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2857 assert set(ext_json.loads(response.body)['result']['added']) == set([base.TEST_USER_REGULAR2_LOGIN]) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2858 assert set(ext_json.loads(response.body)['result']['already_present']) == set() |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2859 assert set(ext_json.loads(response.body)['result']['removed']) == set([base.TEST_USER_REGULAR_LOGIN, base.TEST_USER_ADMIN_LOGIN]) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2860 assert db.User.get_by_username(base.TEST_USER_ADMIN_LOGIN) not in pullrequest.get_reviewer_users() |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2861 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) not in pullrequest.get_reviewer_users() |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2862 assert db.User.get_by_username(base.TEST_USER_REGULAR2_LOGIN) in pullrequest.get_reviewer_users() |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2863 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2864 def test_api_edit_reviewers_invalid_params(self): |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2865 pull_request_id = fixture.create_pullrequest(self, self.REPO, self.TEST_PR_SRC, self.TEST_PR_DST, 'edit reviewer test') |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2866 pullrequest = db.PullRequest().get(pull_request_id) |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2867 assert db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) in pullrequest.get_reviewer_users() |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2868 |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
2869 pullrequest.owner = db.User.get_by_username(base.TEST_USER_REGULAR_LOGIN) |
8656
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2870 random_id = random.randrange(1, 9999) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2871 params = ascii_bytes(ext_json.dumps({ |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2872 "id": random_id, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2873 "api_key": self.apikey_regular, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2874 "method": "edit_reviewers", |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2875 "args": {"pull_request_id": pull_request_id}, |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2876 })) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2877 response = api_call(self, params) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2878 |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2879 self._compare_error(random_id, "Invalid request. Neither 'add' nor 'remove' is specified.", given=response.body) |
56451a7ca82f
api: new method: edit_reviewers
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8644
diff
changeset
|
2880 assert ext_json.loads(response.body)['result'] is None |