Show More
@@ -0,0 +1,290 b'' | |||||
|
1 | # Copyright (C) 2010-2023 RhodeCode GmbH | |||
|
2 | # | |||
|
3 | # This program is free software: you can redistribute it and/or modify | |||
|
4 | # it under the terms of the GNU Affero General Public License, version 3 | |||
|
5 | # (only), as published by the Free Software Foundation. | |||
|
6 | # | |||
|
7 | # This program is distributed in the hope that it will be useful, | |||
|
8 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
|
9 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
|
10 | # GNU General Public License for more details. | |||
|
11 | # | |||
|
12 | # You should have received a copy of the GNU Affero General Public License | |||
|
13 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
|
14 | # | |||
|
15 | # This program is dual-licensed. If you wish to learn more about the | |||
|
16 | # RhodeCode Enterprise Edition, including its added features, Support services, | |||
|
17 | # and proprietary license terms, please see https://rhodecode.com/licenses/ | |||
|
18 | ||||
|
19 | ||||
|
20 | def get_url_defs(): | |||
|
21 | from rhodecode.apps._base import ADMIN_PREFIX | |||
|
22 | ||||
|
23 | return { | |||
|
24 | "home": "/", | |||
|
25 | "main_page_repos_data": "/_home_repos", | |||
|
26 | "main_page_repo_groups_data": "/_home_repo_groups", | |||
|
27 | "repo_group_home": "/{repo_group_name}", | |||
|
28 | "user_autocomplete_data": "/_users", | |||
|
29 | "user_group_autocomplete_data": "/_user_groups", | |||
|
30 | "repo_list_data": "/_repos", | |||
|
31 | "goto_switcher_data": "/_goto_data", | |||
|
32 | "admin_home": ADMIN_PREFIX + "", | |||
|
33 | "admin_audit_logs": ADMIN_PREFIX + "/audit_logs", | |||
|
34 | "admin_defaults_repositories": ADMIN_PREFIX + "/defaults/repositories", | |||
|
35 | "admin_defaults_repositories_update": ADMIN_PREFIX + "/defaults/repositories/update", | |||
|
36 | "search": ADMIN_PREFIX + "/search", | |||
|
37 | "search_repo": "/{repo_name}/search", | |||
|
38 | "my_account_auth_tokens": ADMIN_PREFIX + "/my_account/auth_tokens", | |||
|
39 | "my_account_auth_tokens_add": ADMIN_PREFIX + "/my_account/auth_tokens/new", | |||
|
40 | "my_account_auth_tokens_delete": ADMIN_PREFIX + "/my_account/auth_tokens/delete", | |||
|
41 | "repos": ADMIN_PREFIX + "/repos", | |||
|
42 | "repos_data": ADMIN_PREFIX + "/repos_data", | |||
|
43 | "repo_groups": ADMIN_PREFIX + "/repo_groups", | |||
|
44 | "repo_groups_data": ADMIN_PREFIX + "/repo_groups_data", | |||
|
45 | "user_groups": ADMIN_PREFIX + "/user_groups", | |||
|
46 | "user_groups_data": ADMIN_PREFIX + "/user_groups_data", | |||
|
47 | "user_profile": "/_profiles/{username}", | |||
|
48 | "profile_user_group": "/_profile_user_group/{user_group_name}", | |||
|
49 | "repo_summary": "/{repo_name}", | |||
|
50 | "repo_creating_check": "/{repo_name}/repo_creating_check", | |||
|
51 | "edit_repo": "/{repo_name}/settings", | |||
|
52 | "edit_repo_vcs": "/{repo_name}/settings/vcs", | |||
|
53 | "edit_repo_vcs_update": "/{repo_name}/settings/vcs/update", | |||
|
54 | "edit_repo_vcs_svn_pattern_delete": "/{repo_name}/settings/vcs/svn_pattern/delete", | |||
|
55 | "repo_archivefile": "/{repo_name}/archive/{fname}", | |||
|
56 | "repo_files_diff": "/{repo_name}/diff/{f_path}", | |||
|
57 | "repo_files_diff_2way_redirect": "/{repo_name}/diff-2way/{f_path}", | |||
|
58 | "repo_files": "/{repo_name}/files/{commit_id}/{f_path}", | |||
|
59 | "repo_files:default_path": "/{repo_name}/files/{commit_id}/", | |||
|
60 | "repo_files:default_commit": "/{repo_name}/files", | |||
|
61 | "repo_files:rendered": "/{repo_name}/render/{commit_id}/{f_path}", | |||
|
62 | "repo_files:annotated": "/{repo_name}/annotate/{commit_id}/{f_path}", | |||
|
63 | "repo_files:annotated_previous": "/{repo_name}/annotate-previous/{commit_id}/{f_path}", | |||
|
64 | "repo_files_nodelist": "/{repo_name}/nodelist/{commit_id}/{f_path}", | |||
|
65 | "repo_file_raw": "/{repo_name}/raw/{commit_id}/{f_path}", | |||
|
66 | "repo_file_download": "/{repo_name}/download/{commit_id}/{f_path}", | |||
|
67 | "repo_file_history": "/{repo_name}/history/{commit_id}/{f_path}", | |||
|
68 | "repo_file_authors": "/{repo_name}/authors/{commit_id}/{f_path}", | |||
|
69 | "repo_files_remove_file": "/{repo_name}/remove_file/{commit_id}/{f_path}", | |||
|
70 | "repo_files_delete_file": "/{repo_name}/delete_file/{commit_id}/{f_path}", | |||
|
71 | "repo_files_edit_file": "/{repo_name}/edit_file/{commit_id}/{f_path}", | |||
|
72 | "repo_files_update_file": "/{repo_name}/update_file/{commit_id}/{f_path}", | |||
|
73 | "repo_files_add_file": "/{repo_name}/add_file/{commit_id}/{f_path}", | |||
|
74 | "repo_files_upload_file": "/{repo_name}/upload_file/{commit_id}/{f_path}", | |||
|
75 | "repo_files_create_file": "/{repo_name}/create_file/{commit_id}/{f_path}", | |||
|
76 | "repo_nodetree_full": "/{repo_name}/nodetree_full/{commit_id}/{f_path}", | |||
|
77 | "repo_nodetree_full:default_path": "/{repo_name}/nodetree_full/{commit_id}/", | |||
|
78 | "journal": ADMIN_PREFIX + "/journal", | |||
|
79 | "journal_rss": ADMIN_PREFIX + "/journal/rss", | |||
|
80 | "journal_atom": ADMIN_PREFIX + "/journal/atom", | |||
|
81 | "journal_public": ADMIN_PREFIX + "/public_journal", | |||
|
82 | "journal_public_atom": ADMIN_PREFIX + "/public_journal/atom", | |||
|
83 | "journal_public_atom_old": ADMIN_PREFIX + "/public_journal_atom", | |||
|
84 | "journal_public_rss": ADMIN_PREFIX + "/public_journal/rss", | |||
|
85 | "journal_public_rss_old": ADMIN_PREFIX + "/public_journal_rss", | |||
|
86 | "toggle_following": ADMIN_PREFIX + "/toggle_following", | |||
|
87 | "upload_file": "/_file_store/upload", | |||
|
88 | "download_file": "/_file_store/download/{fid}", | |||
|
89 | "download_file_by_token": "/_file_store/token-download/{_auth_token}/{fid}", | |||
|
90 | "gists_show": ADMIN_PREFIX + "/gists", | |||
|
91 | "gists_new": ADMIN_PREFIX + "/gists/new", | |||
|
92 | "gists_create": ADMIN_PREFIX + "/gists/create", | |||
|
93 | "gist_show": ADMIN_PREFIX + "/gists/{gist_id}", | |||
|
94 | "gist_delete": ADMIN_PREFIX + "/gists/{gist_id}/delete", | |||
|
95 | "gist_edit": ADMIN_PREFIX + "/gists/{gist_id}/edit", | |||
|
96 | "gist_edit_check_revision": ADMIN_PREFIX + "/gists/{gist_id}/edit/check_revision", | |||
|
97 | "gist_update": ADMIN_PREFIX + "/gists/{gist_id}/update", | |||
|
98 | "gist_show_rev": ADMIN_PREFIX + "/gists/{gist_id}/rev/{revision}", | |||
|
99 | "gist_show_formatted": ADMIN_PREFIX + "/gists/{gist_id}/rev/{revision}/{format}", | |||
|
100 | "gist_show_formatted_path": ADMIN_PREFIX + "/gists/{gist_id}/rev/{revision}/{format}/{f_path}", | |||
|
101 | "login": ADMIN_PREFIX + "/login", | |||
|
102 | "logout": ADMIN_PREFIX + "/logout", | |||
|
103 | "register": ADMIN_PREFIX + "/register", | |||
|
104 | "reset_password": ADMIN_PREFIX + "/password_reset", | |||
|
105 | "reset_password_confirmation": ADMIN_PREFIX + "/password_reset_confirmation", | |||
|
106 | "admin_permissions_application": ADMIN_PREFIX + "/permissions/application", | |||
|
107 | "admin_permissions_application_update": ADMIN_PREFIX + "/permissions/application/update", | |||
|
108 | "repo_commit_raw": "/{repo_name}/changeset-diff/{commit_id}", | |||
|
109 | "user_group_members_data": ADMIN_PREFIX + "/user_groups/{user_group_id}/members", | |||
|
110 | "user_groups_new": ADMIN_PREFIX + "/user_groups/new", | |||
|
111 | "user_groups_create": ADMIN_PREFIX + "/user_groups/create", | |||
|
112 | "edit_user_group": ADMIN_PREFIX + "/user_groups/{user_group_id}/edit", | |||
|
113 | "edit_user_group_advanced_sync": ADMIN_PREFIX + "/user_groups/{user_group_id}/edit/advanced/sync", | |||
|
114 | "edit_user_group_global_perms_update": ADMIN_PREFIX + "/user_groups/{user_group_id}/edit/global_permissions/update", | |||
|
115 | "user_groups_update": ADMIN_PREFIX + "/user_groups/{user_group_id}/update", | |||
|
116 | "user_groups_delete": ADMIN_PREFIX + "/user_groups/{user_group_id}/delete", | |||
|
117 | "edit_user_group_perms": ADMIN_PREFIX + "/user_groups/{user_group_id}/edit/permissions", | |||
|
118 | "edit_user_group_perms_update": ADMIN_PREFIX + "/user_groups/{user_group_id}/edit/permissions/update", | |||
|
119 | "edit_repo_group": "/{repo_group_name}/_edit", | |||
|
120 | "edit_repo_group_perms": "/{repo_group_name:}/_settings/permissions", | |||
|
121 | "edit_repo_group_perms_update": "/{repo_group_name}/_settings/permissions/update", | |||
|
122 | "edit_repo_group_advanced": "/{repo_group_name}/_settings/advanced", | |||
|
123 | "edit_repo_group_advanced_delete": "/{repo_group_name}/_settings/advanced/delete", | |||
|
124 | "edit_user_ssh_keys": ADMIN_PREFIX + "/users/{user_id}/edit/ssh_keys", | |||
|
125 | "edit_user_ssh_keys_generate_keypair": ADMIN_PREFIX + "/users/{user_id}/edit/ssh_keys/generate", | |||
|
126 | "edit_user_ssh_keys_add": ADMIN_PREFIX + "/users/{user_id}/edit/ssh_keys/new", | |||
|
127 | "edit_user_ssh_keys_delete": ADMIN_PREFIX + "/users/{user_id}/edit/ssh_keys/delete", | |||
|
128 | "users": ADMIN_PREFIX + "/users", | |||
|
129 | "users_data": ADMIN_PREFIX + "/users_data", | |||
|
130 | "users_create": ADMIN_PREFIX + "/users/create", | |||
|
131 | "users_new": ADMIN_PREFIX + "/users/new", | |||
|
132 | "user_edit": ADMIN_PREFIX + "/users/{user_id}/edit", | |||
|
133 | "user_edit_advanced": ADMIN_PREFIX + "/users/{user_id}/edit/advanced", | |||
|
134 | "user_edit_global_perms": ADMIN_PREFIX + "/users/{user_id}/edit/global_permissions", | |||
|
135 | "user_edit_global_perms_update": ADMIN_PREFIX + "/users/{user_id}/edit/global_permissions/update", | |||
|
136 | "user_update": ADMIN_PREFIX + "/users/{user_id}/update", | |||
|
137 | "user_delete": ADMIN_PREFIX + "/users/{user_id}/delete", | |||
|
138 | "user_create_personal_repo_group": ADMIN_PREFIX + "/users/{user_id}/create_repo_group", | |||
|
139 | "edit_user_auth_tokens": ADMIN_PREFIX + "/users/{user_id}/edit/auth_tokens", | |||
|
140 | "edit_user_auth_tokens_add": ADMIN_PREFIX + "/users/{user_id}/edit/auth_tokens/new", | |||
|
141 | "edit_user_auth_tokens_delete": ADMIN_PREFIX + "/users/{user_id}/edit/auth_tokens/delete", | |||
|
142 | "edit_user_emails": ADMIN_PREFIX + "/users/{user_id}/edit/emails", | |||
|
143 | "edit_user_emails_add": ADMIN_PREFIX + "/users/{user_id}/edit/emails/new", | |||
|
144 | "edit_user_emails_delete": ADMIN_PREFIX + "/users/{user_id}/edit/emails/delete", | |||
|
145 | "edit_user_ips": ADMIN_PREFIX + "/users/{user_id}/edit/ips", | |||
|
146 | "edit_user_ips_add": ADMIN_PREFIX + "/users/{user_id}/edit/ips/new", | |||
|
147 | "edit_user_ips_delete": ADMIN_PREFIX + "/users/{user_id}/edit/ips/delete", | |||
|
148 | "edit_user_perms_summary": ADMIN_PREFIX + "/users/{user_id}/edit/permissions_summary", | |||
|
149 | "edit_user_perms_summary_json": ADMIN_PREFIX + "/users/{user_id}/edit/permissions_summary/json", | |||
|
150 | "edit_user_audit_logs": ADMIN_PREFIX + "/users/{user_id}/edit/audit", | |||
|
151 | "edit_user_audit_logs_download": ADMIN_PREFIX + "/users/{user_id}/edit/audit/download", | |||
|
152 | "admin_settings": ADMIN_PREFIX + "/settings", | |||
|
153 | "admin_settings_update": ADMIN_PREFIX + "/settings/update", | |||
|
154 | "admin_settings_global": ADMIN_PREFIX + "/settings/global", | |||
|
155 | "admin_settings_global_update": ADMIN_PREFIX + "/settings/global/update", | |||
|
156 | "admin_settings_vcs": ADMIN_PREFIX + "/settings/vcs", | |||
|
157 | "admin_settings_vcs_update": ADMIN_PREFIX + "/settings/vcs/update", | |||
|
158 | "admin_settings_vcs_svn_pattern_delete": ADMIN_PREFIX + "/settings/vcs/svn_pattern_delete", | |||
|
159 | "admin_settings_mapping": ADMIN_PREFIX + "/settings/mapping", | |||
|
160 | "admin_settings_mapping_update": ADMIN_PREFIX + "/settings/mapping/update", | |||
|
161 | "admin_settings_visual": ADMIN_PREFIX + "/settings/visual", | |||
|
162 | "admin_settings_visual_update": ADMIN_PREFIX + "/settings/visual/update", | |||
|
163 | "admin_settings_issuetracker": ADMIN_PREFIX + "/settings/issue-tracker", | |||
|
164 | "admin_settings_issuetracker_update": ADMIN_PREFIX + "/settings/issue-tracker/update", | |||
|
165 | "admin_settings_issuetracker_test": ADMIN_PREFIX + "/settings/issue-tracker/test", | |||
|
166 | "admin_settings_issuetracker_delete": ADMIN_PREFIX + "/settings/issue-tracker/delete", | |||
|
167 | "admin_settings_email": ADMIN_PREFIX + "/settings/email", | |||
|
168 | "admin_settings_email_update": ADMIN_PREFIX + "/settings/email/update", | |||
|
169 | "admin_settings_hooks": ADMIN_PREFIX + "/settings/hooks", | |||
|
170 | "admin_settings_hooks_update": ADMIN_PREFIX + "/settings/hooks/update", | |||
|
171 | "admin_settings_hooks_delete": ADMIN_PREFIX + "/settings/hooks/delete", | |||
|
172 | "admin_settings_search": ADMIN_PREFIX + "/settings/search", | |||
|
173 | "admin_settings_labs": ADMIN_PREFIX + "/settings/labs", | |||
|
174 | "admin_settings_labs_update": ADMIN_PREFIX + "/settings/labs/update", | |||
|
175 | "admin_settings_sessions": ADMIN_PREFIX + "/settings/sessions", | |||
|
176 | "admin_settings_sessions_cleanup": ADMIN_PREFIX + "/settings/sessions/cleanup", | |||
|
177 | "admin_settings_system": ADMIN_PREFIX + "/settings/system", | |||
|
178 | "admin_settings_system_update": ADMIN_PREFIX + "/settings/system/updates", | |||
|
179 | "admin_settings_open_source": ADMIN_PREFIX + "/settings/open_source", | |||
|
180 | "repo_group_new": ADMIN_PREFIX + "/repo_group/new", | |||
|
181 | "repo_group_create": ADMIN_PREFIX + "/repo_group/create", | |||
|
182 | "repo_new": ADMIN_PREFIX + "/repos/new", | |||
|
183 | "repo_create": ADMIN_PREFIX + "/repos/create", | |||
|
184 | "admin_permissions_global": ADMIN_PREFIX + "/permissions/global", | |||
|
185 | "admin_permissions_global_update": ADMIN_PREFIX + "/permissions/global/update", | |||
|
186 | "admin_permissions_object": ADMIN_PREFIX + "/permissions/object", | |||
|
187 | "admin_permissions_object_update": ADMIN_PREFIX + "/permissions/object/update", | |||
|
188 | "admin_permissions_ips": ADMIN_PREFIX + "/permissions/ips", | |||
|
189 | "admin_permissions_overview": ADMIN_PREFIX + "/permissions/overview", | |||
|
190 | "admin_permissions_ssh_keys": ADMIN_PREFIX + "/permissions/ssh_keys", | |||
|
191 | "admin_permissions_ssh_keys_data": ADMIN_PREFIX + "/permissions/ssh_keys/data", | |||
|
192 | "admin_permissions_ssh_keys_update": ADMIN_PREFIX + "/permissions/ssh_keys/update", | |||
|
193 | "pullrequest_show": "/{repo_name}/pull-request/{pull_request_id}", | |||
|
194 | "pull_requests_global": ADMIN_PREFIX + "/pull-request/{pull_request_id}", | |||
|
195 | "pull_requests_global_0": ADMIN_PREFIX + "/pull_requests/{pull_request_id}", | |||
|
196 | "pull_requests_global_1": ADMIN_PREFIX + "/pull-requests/{pull_request_id}", | |||
|
197 | "notifications_show_all": ADMIN_PREFIX + "/notifications", | |||
|
198 | "notifications_mark_all_read": ADMIN_PREFIX + "/notifications_mark_all_read", | |||
|
199 | "notifications_show": ADMIN_PREFIX + "/notifications/{notification_id}", | |||
|
200 | "notifications_update": ADMIN_PREFIX + "/notifications/{notification_id}/update", | |||
|
201 | "notifications_delete": ADMIN_PREFIX + "/notifications/{notification_id}/delete", | |||
|
202 | "my_account": ADMIN_PREFIX + "/my_account/profile", | |||
|
203 | "my_account_edit": ADMIN_PREFIX + "/my_account/edit", | |||
|
204 | "my_account_update": ADMIN_PREFIX + "/my_account/update", | |||
|
205 | "my_account_pullrequests": ADMIN_PREFIX + "/my_account/pull_requests", | |||
|
206 | "my_account_pullrequests_data": ADMIN_PREFIX + "/my_account/pull_requests/data", | |||
|
207 | "my_account_emails": ADMIN_PREFIX + "/my_account/emails", | |||
|
208 | "my_account_emails_add": ADMIN_PREFIX + "/my_account/emails/new", | |||
|
209 | "my_account_emails_delete": ADMIN_PREFIX + "/my_account/emails/delete", | |||
|
210 | "my_account_password": ADMIN_PREFIX + "/my_account/password", | |||
|
211 | "my_account_password_update": ADMIN_PREFIX + "/my_account/password/update", | |||
|
212 | "my_account_repos": ADMIN_PREFIX + "/my_account/repos", | |||
|
213 | "my_account_watched": ADMIN_PREFIX + "/my_account/watched", | |||
|
214 | "my_account_perms": ADMIN_PREFIX + "/my_account/perms", | |||
|
215 | "my_account_notifications": ADMIN_PREFIX + "/my_account/notifications", | |||
|
216 | "my_account_ssh_keys": ADMIN_PREFIX + "/my_account/ssh_keys", | |||
|
217 | "my_account_ssh_keys_generate": ADMIN_PREFIX + "/my_account/ssh_keys/generate", | |||
|
218 | "my_account_ssh_keys_add": ADMIN_PREFIX + "/my_account/ssh_keys/new", | |||
|
219 | "my_account_ssh_keys_delete": ADMIN_PREFIX + "/my_account/ssh_keys/delete", | |||
|
220 | "pullrequest_show_all": "/{repo_name}/pull-request", | |||
|
221 | "pullrequest_show_all_data": "/{repo_name}/pull-request-data", | |||
|
222 | "bookmarks_home": "/{repo_name}/bookmarks", | |||
|
223 | "branches_home": "/{repo_name}/branches", | |||
|
224 | "tags_home": "/{repo_name}/tags", | |||
|
225 | "repo_changelog": "/{repo_name}/changelog", | |||
|
226 | "repo_commits": "/{repo_name}/commits", | |||
|
227 | "repo_commits_file": "/{repo_name}/commits/{commit_id}/{f_path}", | |||
|
228 | "repo_commits_elements": "/{repo_name}/commits_elements", | |||
|
229 | "repo_commit": "/{repo_name}/changeset/{commit_id}", | |||
|
230 | "repo_commit_comment_create": "/{repo_name}/changeset/{commit_id}/comment/create", | |||
|
231 | "repo_commit_comment_preview": "/{repo_name}/changeset/{commit_id}/comment/preview", | |||
|
232 | "repo_commit_comment_delete": "/{repo_name}/changeset/{commit_id}/comment/{comment_id}/delete", | |||
|
233 | "repo_commit_comment_edit": "/{repo_name}/changeset/{commit_id}/comment/{comment_id}/edit", | |||
|
234 | "repo_commit_children": "/{repo_name}/changeset_children/{commit_id}", | |||
|
235 | "repo_commit_parents": "/{repo_name}/changeset_parents/{commit_id}", | |||
|
236 | "repo_commit_patch": "/{repo_name}/changeset-patch/{commit_id}", | |||
|
237 | "repo_commit_download": "/{repo_name}/changeset-download/{commit_id}", | |||
|
238 | "repo_commit_data": "/{repo_name}/changeset-data/{commit_id}", | |||
|
239 | "repo_compare": "/{repo_name}/compare/{source_ref_type}@{source_ref}...{target_ref_type}@{target_ref}", | |||
|
240 | "repo_compare_select": "/{repo_name}/compare", | |||
|
241 | "rss_feed_home": "/{repo_name}/feed-rss", | |||
|
242 | "atom_feed_home": "/{repo_name}/feed-atom", | |||
|
243 | "rss_feed_home_old": "/{repo_name}/feed/rss", | |||
|
244 | "atom_feed_home_old": "/{repo_name}/feed/atom", | |||
|
245 | "repo_fork_new": "/{repo_name}/fork", | |||
|
246 | "repo_fork_create": "/{repo_name}/fork/create", | |||
|
247 | "repo_forks_show_all": "/{repo_name}/forks", | |||
|
248 | "repo_forks_data": "/{repo_name}/forks/data", | |||
|
249 | "edit_repo_issuetracker": "/{repo_name}/settings/issue_trackers", | |||
|
250 | "edit_repo_issuetracker_test": "/{repo_name}/settings/issue_trackers/test", | |||
|
251 | "edit_repo_issuetracker_delete": "/{repo_name}/settings/issue_trackers/delete", | |||
|
252 | "edit_repo_issuetracker_update": "/{repo_name}/settings/issue_trackers/update", | |||
|
253 | "edit_repo_maintenance": "/{repo_name}/settings/maintenance", | |||
|
254 | "edit_repo_maintenance_execute": "/{repo_name}/settings/maintenance/execute", | |||
|
255 | "repo_changelog_file": "/{repo_name}/changelog/{commit_id}/{f_path}", | |||
|
256 | "pullrequest_repo_refs": "/{repo_name}/pull-request/refs/{target_repo_name:.*?[^/]}", | |||
|
257 | "pullrequest_repo_targets": "/{repo_name}/pull-request/repo-destinations", | |||
|
258 | "pullrequest_new": "/{repo_name}/pull-request/new", | |||
|
259 | "pullrequest_create": "/{repo_name}/pull-request/create", | |||
|
260 | "pullrequest_update": "/{repo_name}/pull-request/{pull_request_id}/update", | |||
|
261 | "pullrequest_merge": "/{repo_name}/pull-request/{pull_request_id}/merge", | |||
|
262 | "pullrequest_delete": "/{repo_name}/pull-request/{pull_request_id}/delete", | |||
|
263 | "pullrequest_comment_create": "/{repo_name}/pull-request/{pull_request_id}/comment", | |||
|
264 | "pullrequest_comment_delete": "/{repo_name}/pull-request/{pull_request_id}/comment/{comment_id}/delete", | |||
|
265 | "pullrequest_comment_edit": "/{repo_name}/pull-request/{pull_request_id}/comment/{comment_id}/edit", | |||
|
266 | "edit_repo_caches": "/{repo_name}/settings/caches", | |||
|
267 | "edit_repo_perms": "/{repo_name}/settings/permissions", | |||
|
268 | "edit_repo_fields": "/{repo_name}/settings/fields", | |||
|
269 | "edit_repo_remote": "/{repo_name}/settings/remote", | |||
|
270 | "edit_repo_statistics": "/{repo_name}/settings/statistics", | |||
|
271 | "edit_repo_advanced": "/{repo_name}/settings/advanced", | |||
|
272 | "edit_repo_advanced_delete": "/{repo_name}/settings/advanced/delete", | |||
|
273 | "edit_repo_advanced_archive": "/{repo_name}/settings/advanced/archive", | |||
|
274 | "edit_repo_advanced_fork": "/{repo_name}/settings/advanced/fork", | |||
|
275 | "edit_repo_advanced_locking": "/{repo_name}/settings/advanced/locking", | |||
|
276 | "edit_repo_advanced_journal": "/{repo_name}/settings/advanced/journal", | |||
|
277 | "repo_stats": "/{repo_name}/repo_stats/{commit_id}", | |||
|
278 | "repo_refs_data": "/{repo_name}/refs-data", | |||
|
279 | "repo_refs_changelog_data": "/{repo_name}/refs-data-changelog" | |||
|
280 | } | |||
|
281 | ||||
|
282 | ||||
|
283 | def route_path(name, params=None, **kwargs): | |||
|
284 | import urllib.parse | |||
|
285 | ||||
|
286 | base_url = get_url_defs()[name].format(**kwargs) | |||
|
287 | ||||
|
288 | if params: | |||
|
289 | base_url = f"{base_url}?{urllib.parse.urlencode(params)}" | |||
|
290 | return base_url |
@@ -163,8 +163,7 b' def exception_view(exc, request):' | |||||
163 | # make the whole above block safe |
|
163 | # make the whole above block safe | |
164 | pass |
|
164 | pass | |
165 |
|
165 | |||
166 |
fault_message = "No such method: {}. Similar methods: {}" |
|
166 | fault_message = f"No such method: {method}. Similar methods: {similar}" | |
167 | method, similar) |
|
|||
168 | else: |
|
167 | else: | |
169 | fault_message = 'undefined error' |
|
168 | fault_message = 'undefined error' | |
170 | exc_info = exc.exc_info() |
|
169 | exc_info = exc.exc_info() |
@@ -25,28 +25,12 b' import pytest' | |||||
25 |
|
25 | |||
26 | from rhodecode.lib.str_utils import safe_str |
|
26 | from rhodecode.lib.str_utils import safe_str | |
27 | from rhodecode.tests import * |
|
27 | from rhodecode.tests import * | |
|
28 | from rhodecode.tests.routes import route_path | |||
28 | from rhodecode.tests.fixture import FIXTURES |
|
29 | from rhodecode.tests.fixture import FIXTURES | |
29 | from rhodecode.model.db import UserLog |
|
30 | from rhodecode.model.db import UserLog | |
30 | from rhodecode.model.meta import Session |
|
31 | from rhodecode.model.meta import Session | |
31 |
|
32 | |||
32 |
|
33 | |||
33 | def route_path(name, params=None, **kwargs): |
|
|||
34 | import urllib.request |
|
|||
35 | import urllib.parse |
|
|||
36 | import urllib.error |
|
|||
37 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
38 |
|
||||
39 | base_url = { |
|
|||
40 | 'admin_home': ADMIN_PREFIX, |
|
|||
41 | 'admin_audit_logs': ADMIN_PREFIX + '/audit_logs', |
|
|||
42 |
|
||||
43 | }[name].format(**kwargs) |
|
|||
44 |
|
||||
45 | if params: |
|
|||
46 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
47 | return base_url |
|
|||
48 |
|
||||
49 |
|
||||
50 | @pytest.mark.usefixtures('app') |
|
34 | @pytest.mark.usefixtures('app') | |
51 | class TestAdminController(object): |
|
35 | class TestAdminController(object): | |
52 |
|
36 |
@@ -20,27 +20,10 b'' | |||||
20 | import pytest |
|
20 | import pytest | |
21 |
|
21 | |||
22 | from rhodecode.tests import assert_session_flash |
|
22 | from rhodecode.tests import assert_session_flash | |
|
23 | from rhodecode.tests.routes import route_path | |||
23 | from rhodecode.model.settings import SettingsModel |
|
24 | from rhodecode.model.settings import SettingsModel | |
24 |
|
25 | |||
25 |
|
26 | |||
26 | def route_path(name, params=None, **kwargs): |
|
|||
27 | import urllib.request |
|
|||
28 | import urllib.parse |
|
|||
29 | import urllib.error |
|
|||
30 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
31 |
|
||||
32 | base_url = { |
|
|||
33 | 'admin_defaults_repositories': |
|
|||
34 | ADMIN_PREFIX + '/defaults/repositories', |
|
|||
35 | 'admin_defaults_repositories_update': |
|
|||
36 | ADMIN_PREFIX + '/defaults/repositories/update', |
|
|||
37 | }[name].format(**kwargs) |
|
|||
38 |
|
||||
39 | if params: |
|
|||
40 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
41 | return base_url |
|
|||
42 |
|
||||
43 |
|
||||
44 | @pytest.mark.usefixtures("app") |
|
27 | @pytest.mark.usefixtures("app") | |
45 | class TestDefaultsView(object): |
|
28 | class TestDefaultsView(object): | |
46 |
|
29 |
@@ -21,30 +21,11 b' import pytest' | |||||
21 |
|
21 | |||
22 | from rhodecode.tests import TestController |
|
22 | from rhodecode.tests import TestController | |
23 | from rhodecode.tests.fixture import Fixture |
|
23 | from rhodecode.tests.fixture import Fixture | |
|
24 | from rhodecode.tests.routes import route_path | |||
24 |
|
25 | |||
25 | fixture = Fixture() |
|
26 | fixture = Fixture() | |
26 |
|
27 | |||
27 |
|
28 | |||
28 | def route_path(name, params=None, **kwargs): |
|
|||
29 | import urllib.request |
|
|||
30 | import urllib.parse |
|
|||
31 | import urllib.error |
|
|||
32 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
33 |
|
||||
34 | base_url = { |
|
|||
35 | 'admin_home': ADMIN_PREFIX, |
|
|||
36 | 'pullrequest_show': '/{repo_name}/pull-request/{pull_request_id}', |
|
|||
37 | 'pull_requests_global': ADMIN_PREFIX + '/pull-request/{pull_request_id}', |
|
|||
38 | 'pull_requests_global_0': ADMIN_PREFIX + '/pull_requests/{pull_request_id}', |
|
|||
39 | 'pull_requests_global_1': ADMIN_PREFIX + '/pull-requests/{pull_request_id}', |
|
|||
40 |
|
||||
41 | }[name].format(**kwargs) |
|
|||
42 |
|
||||
43 | if params: |
|
|||
44 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
45 | return base_url |
|
|||
46 |
|
||||
47 |
|
||||
48 | class TestAdminMainView(TestController): |
|
29 | class TestAdminMainView(TestController): | |
49 |
|
30 | |||
50 | def test_access_admin_home(self): |
|
31 | def test_access_admin_home(self): |
@@ -25,54 +25,7 b' from rhodecode.model.permission import P' | |||||
25 | from rhodecode.model.ssh_key import SshKeyModel |
|
25 | from rhodecode.model.ssh_key import SshKeyModel | |
26 | from rhodecode.tests import ( |
|
26 | from rhodecode.tests import ( | |
27 | TestController, clear_cache_regions, assert_session_flash) |
|
27 | TestController, clear_cache_regions, assert_session_flash) | |
28 |
|
28 | from rhodecode.tests.routes import route_path | ||
29 |
|
||||
30 | def route_path(name, params=None, **kwargs): |
|
|||
31 | import urllib.request |
|
|||
32 | import urllib.parse |
|
|||
33 | import urllib.error |
|
|||
34 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
35 |
|
||||
36 | base_url = { |
|
|||
37 | 'edit_user_ips': |
|
|||
38 | ADMIN_PREFIX + '/users/{user_id}/edit/ips', |
|
|||
39 | 'edit_user_ips_add': |
|
|||
40 | ADMIN_PREFIX + '/users/{user_id}/edit/ips/new', |
|
|||
41 | 'edit_user_ips_delete': |
|
|||
42 | ADMIN_PREFIX + '/users/{user_id}/edit/ips/delete', |
|
|||
43 |
|
||||
44 | 'admin_permissions_application': |
|
|||
45 | ADMIN_PREFIX + '/permissions/application', |
|
|||
46 | 'admin_permissions_application_update': |
|
|||
47 | ADMIN_PREFIX + '/permissions/application/update', |
|
|||
48 |
|
||||
49 | 'admin_permissions_global': |
|
|||
50 | ADMIN_PREFIX + '/permissions/global', |
|
|||
51 | 'admin_permissions_global_update': |
|
|||
52 | ADMIN_PREFIX + '/permissions/global/update', |
|
|||
53 |
|
||||
54 | 'admin_permissions_object': |
|
|||
55 | ADMIN_PREFIX + '/permissions/object', |
|
|||
56 | 'admin_permissions_object_update': |
|
|||
57 | ADMIN_PREFIX + '/permissions/object/update', |
|
|||
58 |
|
||||
59 | 'admin_permissions_ips': |
|
|||
60 | ADMIN_PREFIX + '/permissions/ips', |
|
|||
61 | 'admin_permissions_overview': |
|
|||
62 | ADMIN_PREFIX + '/permissions/overview', |
|
|||
63 |
|
||||
64 | 'admin_permissions_ssh_keys': |
|
|||
65 | ADMIN_PREFIX + '/permissions/ssh_keys', |
|
|||
66 | 'admin_permissions_ssh_keys_data': |
|
|||
67 | ADMIN_PREFIX + '/permissions/ssh_keys/data', |
|
|||
68 | 'admin_permissions_ssh_keys_update': |
|
|||
69 | ADMIN_PREFIX + '/permissions/ssh_keys/update' |
|
|||
70 |
|
||||
71 | }[name].format(**kwargs) |
|
|||
72 |
|
||||
73 | if params: |
|
|||
74 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
75 | return base_url |
|
|||
76 |
|
29 | |||
77 |
|
30 | |||
78 | class TestAdminPermissionsController(TestController): |
|
31 | class TestAdminPermissionsController(TestController): |
@@ -38,30 +38,12 b' from rhodecode.tests import (' | |||||
38 | login_user_session, assert_session_flash, TEST_USER_ADMIN_LOGIN, |
|
38 | login_user_session, assert_session_flash, TEST_USER_ADMIN_LOGIN, | |
39 | TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS) |
|
39 | TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS) | |
40 | from rhodecode.tests.fixture import Fixture, error_function |
|
40 | from rhodecode.tests.fixture import Fixture, error_function | |
41 |
from rhodecode.tests.utils import |
|
41 | from rhodecode.tests.utils import repo_on_filesystem | |
|
42 | from rhodecode.tests.routes import route_path | |||
42 |
|
43 | |||
43 | fixture = Fixture() |
|
44 | fixture = Fixture() | |
44 |
|
45 | |||
45 |
|
46 | |||
46 | def route_path(name, params=None, **kwargs): |
|
|||
47 | import urllib.request |
|
|||
48 | import urllib.parse |
|
|||
49 | import urllib.error |
|
|||
50 |
|
||||
51 | base_url = { |
|
|||
52 | 'repos': ADMIN_PREFIX + '/repos', |
|
|||
53 | 'repos_data': ADMIN_PREFIX + '/repos_data', |
|
|||
54 | 'repo_new': ADMIN_PREFIX + '/repos/new', |
|
|||
55 | 'repo_create': ADMIN_PREFIX + '/repos/create', |
|
|||
56 |
|
||||
57 | 'repo_creating_check': '/{repo_name}/repo_creating_check', |
|
|||
58 | }[name].format(**kwargs) |
|
|||
59 |
|
||||
60 | if params: |
|
|||
61 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
62 | return base_url |
|
|||
63 |
|
||||
64 |
|
||||
65 | def _get_permission_for_user(user, repo): |
|
47 | def _get_permission_for_user(user, repo): | |
66 | perm = UserRepoToPerm.query()\ |
|
48 | perm = UserRepoToPerm.query()\ | |
67 | .filter(UserRepoToPerm.repository == |
|
49 | .filter(UserRepoToPerm.repository == |
@@ -28,26 +28,10 b' from rhodecode.model.repo_group import R' | |||||
28 | from rhodecode.tests import ( |
|
28 | from rhodecode.tests import ( | |
29 | assert_session_flash, TEST_USER_REGULAR_LOGIN, TESTS_TMP_PATH) |
|
29 | assert_session_flash, TEST_USER_REGULAR_LOGIN, TESTS_TMP_PATH) | |
30 | from rhodecode.tests.fixture import Fixture |
|
30 | from rhodecode.tests.fixture import Fixture | |
31 |
|
31 | from rhodecode.tests.routes import route_path | ||
32 | fixture = Fixture() |
|
|||
33 |
|
32 | |||
34 |
|
33 | |||
35 | def route_path(name, params=None, **kwargs): |
|
34 | fixture = Fixture() | |
36 | import urllib.request |
|
|||
37 | import urllib.parse |
|
|||
38 | import urllib.error |
|
|||
39 |
|
||||
40 | base_url = { |
|
|||
41 | 'repo_groups': ADMIN_PREFIX + '/repo_groups', |
|
|||
42 | 'repo_groups_data': ADMIN_PREFIX + '/repo_groups_data', |
|
|||
43 | 'repo_group_new': ADMIN_PREFIX + '/repo_group/new', |
|
|||
44 | 'repo_group_create': ADMIN_PREFIX + '/repo_group/create', |
|
|||
45 |
|
||||
46 | }[name].format(**kwargs) |
|
|||
47 |
|
||||
48 | if params: |
|
|||
49 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
50 | return base_url |
|
|||
51 |
|
35 | |||
52 |
|
36 | |||
53 | def _get_permission_for_user(user, repo): |
|
37 | def _get_permission_for_user(user, repo): |
@@ -27,85 +27,12 b' from rhodecode.model.db import RhodeCode' | |||||
27 | from rhodecode.model.meta import Session |
|
27 | from rhodecode.model.meta import Session | |
28 | from rhodecode.model.settings import SettingsModel, IssueTrackerSettingsModel |
|
28 | from rhodecode.model.settings import SettingsModel, IssueTrackerSettingsModel | |
29 | from rhodecode.tests import assert_session_flash |
|
29 | from rhodecode.tests import assert_session_flash | |
|
30 | from rhodecode.tests.routes import route_path | |||
30 |
|
31 | |||
31 |
|
32 | |||
32 | UPDATE_DATA_QUALNAME = 'rhodecode.model.update.UpdateModel.get_update_data' |
|
33 | UPDATE_DATA_QUALNAME = 'rhodecode.model.update.UpdateModel.get_update_data' | |
33 |
|
34 | |||
34 |
|
35 | |||
35 | def route_path(name, params=None, **kwargs): |
|
|||
36 | import urllib.request |
|
|||
37 | import urllib.parse |
|
|||
38 | import urllib.error |
|
|||
39 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
40 |
|
||||
41 | base_url = { |
|
|||
42 |
|
||||
43 | 'admin_settings': |
|
|||
44 | ADMIN_PREFIX +'/settings', |
|
|||
45 | 'admin_settings_update': |
|
|||
46 | ADMIN_PREFIX + '/settings/update', |
|
|||
47 | 'admin_settings_global': |
|
|||
48 | ADMIN_PREFIX + '/settings/global', |
|
|||
49 | 'admin_settings_global_update': |
|
|||
50 | ADMIN_PREFIX + '/settings/global/update', |
|
|||
51 | 'admin_settings_vcs': |
|
|||
52 | ADMIN_PREFIX + '/settings/vcs', |
|
|||
53 | 'admin_settings_vcs_update': |
|
|||
54 | ADMIN_PREFIX + '/settings/vcs/update', |
|
|||
55 | 'admin_settings_vcs_svn_pattern_delete': |
|
|||
56 | ADMIN_PREFIX + '/settings/vcs/svn_pattern_delete', |
|
|||
57 | 'admin_settings_mapping': |
|
|||
58 | ADMIN_PREFIX + '/settings/mapping', |
|
|||
59 | 'admin_settings_mapping_update': |
|
|||
60 | ADMIN_PREFIX + '/settings/mapping/update', |
|
|||
61 | 'admin_settings_visual': |
|
|||
62 | ADMIN_PREFIX + '/settings/visual', |
|
|||
63 | 'admin_settings_visual_update': |
|
|||
64 | ADMIN_PREFIX + '/settings/visual/update', |
|
|||
65 | 'admin_settings_issuetracker': |
|
|||
66 | ADMIN_PREFIX + '/settings/issue-tracker', |
|
|||
67 | 'admin_settings_issuetracker_update': |
|
|||
68 | ADMIN_PREFIX + '/settings/issue-tracker/update', |
|
|||
69 | 'admin_settings_issuetracker_test': |
|
|||
70 | ADMIN_PREFIX + '/settings/issue-tracker/test', |
|
|||
71 | 'admin_settings_issuetracker_delete': |
|
|||
72 | ADMIN_PREFIX + '/settings/issue-tracker/delete', |
|
|||
73 | 'admin_settings_email': |
|
|||
74 | ADMIN_PREFIX + '/settings/email', |
|
|||
75 | 'admin_settings_email_update': |
|
|||
76 | ADMIN_PREFIX + '/settings/email/update', |
|
|||
77 | 'admin_settings_hooks': |
|
|||
78 | ADMIN_PREFIX + '/settings/hooks', |
|
|||
79 | 'admin_settings_hooks_update': |
|
|||
80 | ADMIN_PREFIX + '/settings/hooks/update', |
|
|||
81 | 'admin_settings_hooks_delete': |
|
|||
82 | ADMIN_PREFIX + '/settings/hooks/delete', |
|
|||
83 | 'admin_settings_search': |
|
|||
84 | ADMIN_PREFIX + '/settings/search', |
|
|||
85 | 'admin_settings_labs': |
|
|||
86 | ADMIN_PREFIX + '/settings/labs', |
|
|||
87 | 'admin_settings_labs_update': |
|
|||
88 | ADMIN_PREFIX + '/settings/labs/update', |
|
|||
89 |
|
||||
90 | 'admin_settings_sessions': |
|
|||
91 | ADMIN_PREFIX + '/settings/sessions', |
|
|||
92 | 'admin_settings_sessions_cleanup': |
|
|||
93 | ADMIN_PREFIX + '/settings/sessions/cleanup', |
|
|||
94 | 'admin_settings_system': |
|
|||
95 | ADMIN_PREFIX + '/settings/system', |
|
|||
96 | 'admin_settings_system_update': |
|
|||
97 | ADMIN_PREFIX + '/settings/system/updates', |
|
|||
98 | 'admin_settings_open_source': |
|
|||
99 | ADMIN_PREFIX + '/settings/open_source', |
|
|||
100 |
|
||||
101 |
|
||||
102 | }[name].format(**kwargs) |
|
|||
103 |
|
||||
104 | if params: |
|
|||
105 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
106 | return base_url |
|
|||
107 |
|
||||
108 |
|
||||
109 | @pytest.mark.usefixtures('autologin_user', 'app') |
|
36 | @pytest.mark.usefixtures('autologin_user', 'app') | |
110 | class TestAdminSettingsController(object): |
|
37 | class TestAdminSettingsController(object): | |
111 |
|
38 |
@@ -23,32 +23,13 b' from rhodecode.model.db import UserGroup' | |||||
23 | from rhodecode.model.meta import Session |
|
23 | from rhodecode.model.meta import Session | |
24 |
|
24 | |||
25 | from rhodecode.tests import ( |
|
25 | from rhodecode.tests import ( | |
26 |
TestController, |
|
26 | TestController, assert_session_flash) | |
27 | from rhodecode.tests.fixture import Fixture |
|
27 | from rhodecode.tests.fixture import Fixture | |
|
28 | from rhodecode.tests.routes import route_path | |||
28 |
|
29 | |||
29 | fixture = Fixture() |
|
30 | fixture = Fixture() | |
30 |
|
31 | |||
31 |
|
32 | |||
32 | def route_path(name, params=None, **kwargs): |
|
|||
33 | import urllib.request |
|
|||
34 | import urllib.parse |
|
|||
35 | import urllib.error |
|
|||
36 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
37 |
|
||||
38 | base_url = { |
|
|||
39 | 'user_groups': ADMIN_PREFIX + '/user_groups', |
|
|||
40 | 'user_groups_data': ADMIN_PREFIX + '/user_groups_data', |
|
|||
41 | 'user_group_members_data': ADMIN_PREFIX + '/user_groups/{user_group_id}/members', |
|
|||
42 | 'user_groups_new': ADMIN_PREFIX + '/user_groups/new', |
|
|||
43 | 'user_groups_create': ADMIN_PREFIX + '/user_groups/create', |
|
|||
44 | 'edit_user_group': ADMIN_PREFIX + '/user_groups/{user_group_id}/edit', |
|
|||
45 | }[name].format(**kwargs) |
|
|||
46 |
|
||||
47 | if params: |
|
|||
48 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
49 | return base_url |
|
|||
50 |
|
||||
51 |
|
||||
52 | class TestAdminUserGroupsView(TestController): |
|
33 | class TestAdminUserGroupsView(TestController): | |
53 |
|
34 | |||
54 | def test_show_users(self): |
|
35 | def test_show_users(self): |
@@ -29,79 +29,11 b' from rhodecode.model.user import UserMod' | |||||
29 | from rhodecode.tests import ( |
|
29 | from rhodecode.tests import ( | |
30 | TestController, TEST_USER_REGULAR_LOGIN, assert_session_flash) |
|
30 | TestController, TEST_USER_REGULAR_LOGIN, assert_session_flash) | |
31 | from rhodecode.tests.fixture import Fixture |
|
31 | from rhodecode.tests.fixture import Fixture | |
|
32 | from rhodecode.tests.routes import route_path | |||
32 |
|
33 | |||
33 | fixture = Fixture() |
|
34 | fixture = Fixture() | |
34 |
|
35 | |||
35 |
|
36 | |||
36 | def route_path(name, params=None, **kwargs): |
|
|||
37 | import urllib.request |
|
|||
38 | import urllib.parse |
|
|||
39 | import urllib.error |
|
|||
40 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
41 |
|
||||
42 | base_url = { |
|
|||
43 | 'users': |
|
|||
44 | ADMIN_PREFIX + '/users', |
|
|||
45 | 'users_data': |
|
|||
46 | ADMIN_PREFIX + '/users_data', |
|
|||
47 | 'users_create': |
|
|||
48 | ADMIN_PREFIX + '/users/create', |
|
|||
49 | 'users_new': |
|
|||
50 | ADMIN_PREFIX + '/users/new', |
|
|||
51 | 'user_edit': |
|
|||
52 | ADMIN_PREFIX + '/users/{user_id}/edit', |
|
|||
53 | 'user_edit_advanced': |
|
|||
54 | ADMIN_PREFIX + '/users/{user_id}/edit/advanced', |
|
|||
55 | 'user_edit_global_perms': |
|
|||
56 | ADMIN_PREFIX + '/users/{user_id}/edit/global_permissions', |
|
|||
57 | 'user_edit_global_perms_update': |
|
|||
58 | ADMIN_PREFIX + '/users/{user_id}/edit/global_permissions/update', |
|
|||
59 | 'user_update': |
|
|||
60 | ADMIN_PREFIX + '/users/{user_id}/update', |
|
|||
61 | 'user_delete': |
|
|||
62 | ADMIN_PREFIX + '/users/{user_id}/delete', |
|
|||
63 | 'user_create_personal_repo_group': |
|
|||
64 | ADMIN_PREFIX + '/users/{user_id}/create_repo_group', |
|
|||
65 |
|
||||
66 | 'edit_user_auth_tokens': |
|
|||
67 | ADMIN_PREFIX + '/users/{user_id}/edit/auth_tokens', |
|
|||
68 | 'edit_user_auth_tokens_add': |
|
|||
69 | ADMIN_PREFIX + '/users/{user_id}/edit/auth_tokens/new', |
|
|||
70 | 'edit_user_auth_tokens_delete': |
|
|||
71 | ADMIN_PREFIX + '/users/{user_id}/edit/auth_tokens/delete', |
|
|||
72 |
|
||||
73 | 'edit_user_emails': |
|
|||
74 | ADMIN_PREFIX + '/users/{user_id}/edit/emails', |
|
|||
75 | 'edit_user_emails_add': |
|
|||
76 | ADMIN_PREFIX + '/users/{user_id}/edit/emails/new', |
|
|||
77 | 'edit_user_emails_delete': |
|
|||
78 | ADMIN_PREFIX + '/users/{user_id}/edit/emails/delete', |
|
|||
79 |
|
||||
80 | 'edit_user_ips': |
|
|||
81 | ADMIN_PREFIX + '/users/{user_id}/edit/ips', |
|
|||
82 | 'edit_user_ips_add': |
|
|||
83 | ADMIN_PREFIX + '/users/{user_id}/edit/ips/new', |
|
|||
84 | 'edit_user_ips_delete': |
|
|||
85 | ADMIN_PREFIX + '/users/{user_id}/edit/ips/delete', |
|
|||
86 |
|
||||
87 | 'edit_user_perms_summary': |
|
|||
88 | ADMIN_PREFIX + '/users/{user_id}/edit/permissions_summary', |
|
|||
89 | 'edit_user_perms_summary_json': |
|
|||
90 | ADMIN_PREFIX + '/users/{user_id}/edit/permissions_summary/json', |
|
|||
91 |
|
||||
92 | 'edit_user_audit_logs': |
|
|||
93 | ADMIN_PREFIX + '/users/{user_id}/edit/audit', |
|
|||
94 |
|
||||
95 | 'edit_user_audit_logs_download': |
|
|||
96 | ADMIN_PREFIX + '/users/{user_id}/edit/audit/download', |
|
|||
97 |
|
||||
98 | }[name].format(**kwargs) |
|
|||
99 |
|
||||
100 | if params: |
|
|||
101 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
102 | return base_url |
|
|||
103 |
|
||||
104 |
|
||||
105 | class TestAdminUsersView(TestController): |
|
37 | class TestAdminUsersView(TestController): | |
106 |
|
38 | |||
107 | def test_show_users(self): |
|
39 | def test_show_users(self): |
@@ -23,33 +23,11 b' from rhodecode.model.db import User, Use' | |||||
23 |
|
23 | |||
24 | from rhodecode.tests import TestController, assert_session_flash |
|
24 | from rhodecode.tests import TestController, assert_session_flash | |
25 | from rhodecode.tests.fixture import Fixture |
|
25 | from rhodecode.tests.fixture import Fixture | |
|
26 | from rhodecode.tests.routes import route_path | |||
26 |
|
27 | |||
27 | fixture = Fixture() |
|
28 | fixture = Fixture() | |
28 |
|
29 | |||
29 |
|
30 | |||
30 | def route_path(name, params=None, **kwargs): |
|
|||
31 | import urllib.request |
|
|||
32 | import urllib.parse |
|
|||
33 | import urllib.error |
|
|||
34 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
35 |
|
||||
36 | base_url = { |
|
|||
37 | 'edit_user_ssh_keys': |
|
|||
38 | ADMIN_PREFIX + '/users/{user_id}/edit/ssh_keys', |
|
|||
39 | 'edit_user_ssh_keys_generate_keypair': |
|
|||
40 | ADMIN_PREFIX + '/users/{user_id}/edit/ssh_keys/generate', |
|
|||
41 | 'edit_user_ssh_keys_add': |
|
|||
42 | ADMIN_PREFIX + '/users/{user_id}/edit/ssh_keys/new', |
|
|||
43 | 'edit_user_ssh_keys_delete': |
|
|||
44 | ADMIN_PREFIX + '/users/{user_id}/edit/ssh_keys/delete', |
|
|||
45 |
|
||||
46 | }[name].format(**kwargs) |
|
|||
47 |
|
||||
48 | if params: |
|
|||
49 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
50 | return base_url |
|
|||
51 |
|
||||
52 |
|
||||
53 | class TestAdminUsersSshKeysView(TestController): |
|
31 | class TestAdminUsersSshKeysView(TestController): | |
54 | INVALID_KEY = """\ |
|
32 | INVALID_KEY = """\ | |
55 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDk+77sjDzVeB6vevJsuZds1iNU5 |
|
33 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDk+77sjDzVeB6vevJsuZds1iNU5 |
@@ -21,25 +21,10 b' import pytest' | |||||
21 | from rhodecode.lib.ext_json import json |
|
21 | from rhodecode.lib.ext_json import json | |
22 | from rhodecode.model.auth_token import AuthTokenModel |
|
22 | from rhodecode.model.auth_token import AuthTokenModel | |
23 | from rhodecode.model.db import Session, FileStore, Repository, User |
|
23 | from rhodecode.model.db import Session, FileStore, Repository, User | |
24 | from rhodecode.tests import TestController |
|
|||
25 | from rhodecode.apps.file_store import utils, config_keys |
|
24 | from rhodecode.apps.file_store import utils, config_keys | |
26 |
|
25 | |||
27 |
|
26 | from rhodecode.tests import TestController | ||
28 | def route_path(name, params=None, **kwargs): |
|
27 | from rhodecode.tests.routes import route_path | |
29 | import urllib.request |
|
|||
30 | import urllib.parse |
|
|||
31 | import urllib.error |
|
|||
32 |
|
||||
33 | base_url = { |
|
|||
34 | 'upload_file': '/_file_store/upload', |
|
|||
35 | 'download_file': '/_file_store/download/{fid}', |
|
|||
36 | 'download_file_by_token': '/_file_store/token-download/{_auth_token}/{fid}' |
|
|||
37 |
|
||||
38 | }[name].format(**kwargs) |
|
|||
39 |
|
||||
40 | if params: |
|
|||
41 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
42 | return base_url |
|
|||
43 |
|
28 | |||
44 |
|
29 | |||
45 | class TestFileStoreViews(TestController): |
|
30 | class TestFileStoreViews(TestController): |
@@ -26,31 +26,7 b' from rhodecode.model.meta import Session' | |||||
26 | from rhodecode.tests import ( |
|
26 | from rhodecode.tests import ( | |
27 | TEST_USER_ADMIN_LOGIN, TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS, |
|
27 | TEST_USER_ADMIN_LOGIN, TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS, | |
28 | TestController, assert_session_flash) |
|
28 | TestController, assert_session_flash) | |
29 |
|
29 | from rhodecode.tests.routes import route_path | ||
30 |
|
||||
31 | def route_path(name, params=None, **kwargs): |
|
|||
32 | import urllib.parse |
|
|||
33 | import urllib.error |
|
|||
34 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
35 |
|
||||
36 | base_url = { |
|
|||
37 | 'gists_show': ADMIN_PREFIX + '/gists', |
|
|||
38 | 'gists_new': ADMIN_PREFIX + '/gists/new', |
|
|||
39 | 'gists_create': ADMIN_PREFIX + '/gists/create', |
|
|||
40 | 'gist_show': ADMIN_PREFIX + '/gists/{gist_id}', |
|
|||
41 | 'gist_delete': ADMIN_PREFIX + '/gists/{gist_id}/delete', |
|
|||
42 | 'gist_edit': ADMIN_PREFIX + '/gists/{gist_id}/edit', |
|
|||
43 | 'gist_edit_check_revision': ADMIN_PREFIX + '/gists/{gist_id}/edit/check_revision', |
|
|||
44 | 'gist_update': ADMIN_PREFIX + '/gists/{gist_id}/update', |
|
|||
45 | 'gist_show_rev': ADMIN_PREFIX + '/gists/{gist_id}/rev/{revision}', |
|
|||
46 | 'gist_show_formatted': ADMIN_PREFIX + '/gists/{gist_id}/rev/{revision}/{format}', |
|
|||
47 | 'gist_show_formatted_path': ADMIN_PREFIX + '/gists/{gist_id}/rev/{revision}/{format}/{f_path}', |
|
|||
48 |
|
||||
49 | }[name].format(**kwargs) |
|
|||
50 |
|
||||
51 | if params: |
|
|||
52 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
53 | return base_url |
|
|||
54 |
|
30 | |||
55 |
|
31 | |||
56 | class GistUtility(object): |
|
32 | class GistUtility(object): |
@@ -19,8 +19,6 b'' | |||||
19 | import pytest |
|
19 | import pytest | |
20 |
|
20 | |||
21 | from . import assert_and_get_main_filter_content |
|
21 | from . import assert_and_get_main_filter_content | |
22 | from rhodecode.tests import TestController, TEST_USER_ADMIN_LOGIN |
|
|||
23 | from rhodecode.tests.fixture import Fixture |
|
|||
24 |
|
22 | |||
25 | from rhodecode.lib.utils import map_groups |
|
23 | from rhodecode.lib.utils import map_groups | |
26 | from rhodecode.lib.ext_json import json |
|
24 | from rhodecode.lib.ext_json import json | |
@@ -28,21 +26,11 b' from rhodecode.model.repo import RepoMod' | |||||
28 | from rhodecode.model.repo_group import RepoGroupModel |
|
26 | from rhodecode.model.repo_group import RepoGroupModel | |
29 | from rhodecode.model.db import Session, Repository, RepoGroup |
|
27 | from rhodecode.model.db import Session, Repository, RepoGroup | |
30 |
|
28 | |||
31 | fixture = Fixture() |
|
29 | from rhodecode.tests import TestController, TEST_USER_ADMIN_LOGIN | |
32 |
|
30 | from rhodecode.tests.fixture import Fixture | ||
33 |
|
31 | from rhodecode.tests.routes import route_path | ||
34 | def route_path(name, params=None, **kwargs): |
|
|||
35 | import urllib.request |
|
|||
36 | import urllib.parse |
|
|||
37 | import urllib.error |
|
|||
38 |
|
32 | |||
39 | base_url = { |
|
33 | fixture = Fixture() | |
40 | 'goto_switcher_data': '/_goto_data', |
|
|||
41 | }[name].format(**kwargs) |
|
|||
42 |
|
||||
43 | if params: |
|
|||
44 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
45 | return base_url |
|
|||
46 |
|
34 | |||
47 |
|
35 | |||
48 | class TestGotoSwitcherData(TestController): |
|
36 | class TestGotoSwitcherData(TestController): |
@@ -17,29 +17,17 b'' | |||||
17 | # and proprietary license terms, please see https://rhodecode.com/licenses/ |
|
17 | # and proprietary license terms, please see https://rhodecode.com/licenses/ | |
18 |
|
18 | |||
19 | from . import assert_and_get_repo_list_content |
|
19 | from . import assert_and_get_repo_list_content | |
20 | from rhodecode.tests import TestController |
|
20 | ||
21 | from rhodecode.tests.fixture import Fixture |
|
|||
22 | from rhodecode.model.db import Repository |
|
21 | from rhodecode.model.db import Repository | |
23 | from rhodecode.lib.ext_json import json |
|
22 | from rhodecode.lib.ext_json import json | |
24 |
|
23 | |||
|
24 | from rhodecode.tests import TestController | |||
|
25 | from rhodecode.tests.fixture import Fixture | |||
|
26 | from rhodecode.tests.routes import route_path | |||
25 |
|
27 | |||
26 | fixture = Fixture() |
|
28 | fixture = Fixture() | |
27 |
|
29 | |||
28 |
|
30 | |||
29 | def route_path(name, params=None, **kwargs): |
|
|||
30 | import urllib.request |
|
|||
31 | import urllib.parse |
|
|||
32 | import urllib.error |
|
|||
33 |
|
||||
34 | base_url = { |
|
|||
35 | 'repo_list_data': '/_repos', |
|
|||
36 | }[name].format(**kwargs) |
|
|||
37 |
|
||||
38 | if params: |
|
|||
39 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
40 | return base_url |
|
|||
41 |
|
||||
42 |
|
||||
43 | class TestRepoListData(TestController): |
|
31 | class TestRepoListData(TestController): | |
44 |
|
32 | |||
45 | def test_returns_list_of_repos_and_groups(self, xhr_header): |
|
33 | def test_returns_list_of_repos_and_groups(self, xhr_header): |
@@ -17,28 +17,15 b'' | |||||
17 | # and proprietary license terms, please see https://rhodecode.com/licenses/ |
|
17 | # and proprietary license terms, please see https://rhodecode.com/licenses/ | |
18 | import pytest |
|
18 | import pytest | |
19 |
|
19 | |||
|
20 | from rhodecode.lib.ext_json import json | |||
|
21 | ||||
20 | from rhodecode.tests import TestController |
|
22 | from rhodecode.tests import TestController | |
21 | from rhodecode.tests.fixture import Fixture |
|
23 | from rhodecode.tests.fixture import Fixture | |
22 |
from rhodecode. |
|
24 | from rhodecode.tests.routes import route_path | |
23 |
|
25 | |||
24 | fixture = Fixture() |
|
26 | fixture = Fixture() | |
25 |
|
27 | |||
26 |
|
28 | |||
27 | def route_path(name, params=None, **kwargs): |
|
|||
28 | import urllib.request |
|
|||
29 | import urllib.parse |
|
|||
30 | import urllib.error |
|
|||
31 |
|
||||
32 | base_url = { |
|
|||
33 | 'user_autocomplete_data': '/_users', |
|
|||
34 | 'user_group_autocomplete_data': '/_user_groups' |
|
|||
35 | }[name].format(**kwargs) |
|
|||
36 |
|
||||
37 | if params: |
|
|||
38 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
39 | return base_url |
|
|||
40 |
|
||||
41 |
|
||||
42 | class TestUserAutocompleteData(TestController): |
|
29 | class TestUserAutocompleteData(TestController): | |
43 |
|
30 | |||
44 | def test_returns_list_of_users(self, user_util, xhr_header): |
|
31 | def test_returns_list_of_users(self, user_util, xhr_header): |
@@ -37,29 +37,15 b'' | |||||
37 |
|
37 | |||
38 | import pytest |
|
38 | import pytest | |
39 |
|
39 | |||
|
40 | from rhodecode.lib.ext_json import json | |||
|
41 | ||||
40 | from rhodecode.tests import TestController |
|
42 | from rhodecode.tests import TestController | |
41 | from rhodecode.tests.fixture import Fixture |
|
43 | from rhodecode.tests.fixture import Fixture | |
42 |
from rhodecode. |
|
44 | from rhodecode.tests.routes import route_path | |
43 |
|
||||
44 |
|
45 | |||
45 | fixture = Fixture() |
|
46 | fixture = Fixture() | |
46 |
|
47 | |||
47 |
|
48 | |||
48 | def route_path(name, params=None, **kwargs): |
|
|||
49 | import urllib.request |
|
|||
50 | import urllib.parse |
|
|||
51 | import urllib.error |
|
|||
52 |
|
||||
53 | base_url = { |
|
|||
54 | 'user_autocomplete_data': '/_users', |
|
|||
55 | 'user_group_autocomplete_data': '/_user_groups' |
|
|||
56 | }[name].format(**kwargs) |
|
|||
57 |
|
||||
58 | if params: |
|
|||
59 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
60 | return base_url |
|
|||
61 |
|
||||
62 |
|
||||
63 | class TestUserGroupAutocompleteData(TestController): |
|
49 | class TestUserGroupAutocompleteData(TestController): | |
64 |
|
50 | |||
65 | def test_returns_list_of_user_groups(self, user_util, xhr_header): |
|
51 | def test_returns_list_of_user_groups(self, user_util, xhr_header): |
@@ -22,23 +22,13 b' import pytest' | |||||
22 | import rhodecode |
|
22 | import rhodecode | |
23 | from rhodecode.model.db import Repository, RepoGroup, User |
|
23 | from rhodecode.model.db import Repository, RepoGroup, User | |
24 | from rhodecode.model.meta import Session |
|
24 | from rhodecode.model.meta import Session | |
25 | from rhodecode.model.repo import RepoModel |
|
|||
26 | from rhodecode.model.repo_group import RepoGroupModel |
|
|||
27 | from rhodecode.model.settings import SettingsModel |
|
25 | from rhodecode.model.settings import SettingsModel | |
28 | from rhodecode.tests import TestController |
|
26 | from rhodecode.tests import TestController | |
29 | from rhodecode.tests.fixture import Fixture |
|
27 | from rhodecode.tests.fixture import Fixture | |
30 | from rhodecode.lib import helpers as h |
|
28 | from rhodecode.tests.routes import route_path | |
31 |
|
||||
32 | fixture = Fixture() |
|
|||
33 |
|
29 | |||
34 |
|
30 | |||
35 | def route_path(name, **kwargs): |
|
31 | fixture = Fixture() | |
36 | return { |
|
|||
37 | 'home': '/', |
|
|||
38 | 'main_page_repos_data': '/_home_repos', |
|
|||
39 | 'main_page_repo_groups_data': '/_home_repo_groups', |
|
|||
40 | 'repo_group_home': '/{repo_group_name}' |
|
|||
41 | }[name].format(**kwargs) |
|
|||
42 |
|
32 | |||
43 |
|
33 | |||
44 | class TestHomeController(TestController): |
|
34 | class TestHomeController(TestController): |
@@ -22,30 +22,10 b' import datetime' | |||||
22 | import pytest |
|
22 | import pytest | |
23 |
|
23 | |||
24 | from rhodecode.apps._base import ADMIN_PREFIX |
|
24 | from rhodecode.apps._base import ADMIN_PREFIX | |
25 | from rhodecode.tests import TestController |
|
|||
26 | from rhodecode.model.db import UserFollowing, Repository |
|
25 | from rhodecode.model.db import UserFollowing, Repository | |
27 |
|
26 | |||
28 |
|
27 | from rhodecode.tests import TestController | ||
29 | def route_path(name, params=None, **kwargs): |
|
28 | from rhodecode.tests.routes import route_path | |
30 | import urllib.request |
|
|||
31 | import urllib.parse |
|
|||
32 | import urllib.error |
|
|||
33 |
|
||||
34 | base_url = { |
|
|||
35 | 'journal': ADMIN_PREFIX + '/journal', |
|
|||
36 | 'journal_rss': ADMIN_PREFIX + '/journal/rss', |
|
|||
37 | 'journal_atom': ADMIN_PREFIX + '/journal/atom', |
|
|||
38 | 'journal_public': ADMIN_PREFIX + '/public_journal', |
|
|||
39 | 'journal_public_atom': ADMIN_PREFIX + '/public_journal/atom', |
|
|||
40 | 'journal_public_atom_old': ADMIN_PREFIX + '/public_journal_atom', |
|
|||
41 | 'journal_public_rss': ADMIN_PREFIX + '/public_journal/rss', |
|
|||
42 | 'journal_public_rss_old': ADMIN_PREFIX + '/public_journal_rss', |
|
|||
43 | 'toggle_following': ADMIN_PREFIX + '/toggle_following', |
|
|||
44 | }[name].format(**kwargs) |
|
|||
45 |
|
||||
46 | if params: |
|
|||
47 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
48 | return base_url |
|
|||
49 |
|
29 | |||
50 |
|
30 | |||
51 | class TestJournalViews(TestController): |
|
31 | class TestJournalViews(TestController): |
@@ -21,50 +21,24 b' import urllib.parse' | |||||
21 | import mock |
|
21 | import mock | |
22 | import pytest |
|
22 | import pytest | |
23 |
|
23 | |||
24 | from rhodecode.tests import ( |
|
24 | ||
25 | assert_session_flash, HG_REPO, TEST_USER_ADMIN_LOGIN, |
|
|||
26 | no_newline_id_generator) |
|
|||
27 | from rhodecode.tests.fixture import Fixture |
|
|||
28 | from rhodecode.lib.auth import check_password |
|
25 | from rhodecode.lib.auth import check_password | |
29 | from rhodecode.lib import helpers as h |
|
26 | from rhodecode.lib import helpers as h | |
30 | from rhodecode.model.auth_token import AuthTokenModel |
|
27 | from rhodecode.model.auth_token import AuthTokenModel | |
31 | from rhodecode.model.db import User, Notification, UserApiKeys |
|
28 | from rhodecode.model.db import User, Notification, UserApiKeys | |
32 | from rhodecode.model.meta import Session |
|
29 | from rhodecode.model.meta import Session | |
33 |
|
30 | |||
|
31 | from rhodecode.tests import ( | |||
|
32 | assert_session_flash, HG_REPO, TEST_USER_ADMIN_LOGIN, | |||
|
33 | no_newline_id_generator) | |||
|
34 | from rhodecode.tests.fixture import Fixture | |||
|
35 | from rhodecode.tests.routes import route_path | |||
|
36 | ||||
34 | fixture = Fixture() |
|
37 | fixture = Fixture() | |
35 |
|
38 | |||
36 | whitelist_view = ['RepoCommitsView:repo_commit_raw'] |
|
39 | whitelist_view = ['RepoCommitsView:repo_commit_raw'] | |
37 |
|
40 | |||
38 |
|
41 | |||
39 | def route_path(name, params=None, **kwargs): |
|
|||
40 | import urllib.request |
|
|||
41 | import urllib.parse |
|
|||
42 | import urllib.error |
|
|||
43 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
44 |
|
||||
45 | base_url = { |
|
|||
46 | 'login': ADMIN_PREFIX + '/login', |
|
|||
47 | 'logout': ADMIN_PREFIX + '/logout', |
|
|||
48 | 'register': ADMIN_PREFIX + '/register', |
|
|||
49 | 'reset_password': |
|
|||
50 | ADMIN_PREFIX + '/password_reset', |
|
|||
51 | 'reset_password_confirmation': |
|
|||
52 | ADMIN_PREFIX + '/password_reset_confirmation', |
|
|||
53 |
|
||||
54 | 'admin_permissions_application': |
|
|||
55 | ADMIN_PREFIX + '/permissions/application', |
|
|||
56 | 'admin_permissions_application_update': |
|
|||
57 | ADMIN_PREFIX + '/permissions/application/update', |
|
|||
58 |
|
||||
59 | 'repo_commit_raw': '/{repo_name}/raw-changeset/{commit_id}' |
|
|||
60 |
|
||||
61 | }[name].format(**kwargs) |
|
|||
62 |
|
||||
63 | if params: |
|
|||
64 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
65 | return base_url |
|
|||
66 |
|
||||
67 |
|
||||
68 | @pytest.mark.usefixtures('app') |
|
42 | @pytest.mark.usefixtures('app') | |
69 | class TestLoginController(object): |
|
43 | class TestLoginController(object): | |
70 | destroy_users = set() |
|
44 | destroy_users = set() |
@@ -24,34 +24,10 b' from rhodecode.tests import (' | |||||
24 | TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS) |
|
24 | TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS) | |
25 | from rhodecode.tests.fixture import Fixture |
|
25 | from rhodecode.tests.fixture import Fixture | |
26 | from rhodecode.tests.utils import AssertResponse |
|
26 | from rhodecode.tests.utils import AssertResponse | |
27 |
|
27 | from rhodecode.tests.routes import route_path | ||
28 | fixture = Fixture() |
|
|||
29 |
|
28 | |||
30 |
|
29 | |||
31 | def route_path(name, params=None, **kwargs): |
|
30 | fixture = Fixture() | |
32 | import urllib.request |
|
|||
33 | import urllib.parse |
|
|||
34 | import urllib.error |
|
|||
35 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
36 |
|
||||
37 | base_url = { |
|
|||
38 | 'login': ADMIN_PREFIX + '/login', |
|
|||
39 | 'logout': ADMIN_PREFIX + '/logout', |
|
|||
40 | 'register': ADMIN_PREFIX + '/register', |
|
|||
41 | 'reset_password': |
|
|||
42 | ADMIN_PREFIX + '/password_reset', |
|
|||
43 | 'reset_password_confirmation': |
|
|||
44 | ADMIN_PREFIX + '/password_reset_confirmation', |
|
|||
45 |
|
||||
46 | 'admin_permissions_application': |
|
|||
47 | ADMIN_PREFIX + '/permissions/application', |
|
|||
48 | 'admin_permissions_application_update': |
|
|||
49 | ADMIN_PREFIX + '/permissions/application/update', |
|
|||
50 | }[name].format(**kwargs) |
|
|||
51 |
|
||||
52 | if params: |
|
|||
53 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
54 | return base_url |
|
|||
55 |
|
31 | |||
56 |
|
32 | |||
57 | class TestPasswordReset(TestController): |
|
33 | class TestPasswordReset(TestController): |
@@ -21,23 +21,12 b' import pytest' | |||||
21 | from rhodecode.apps._base import ADMIN_PREFIX |
|
21 | from rhodecode.apps._base import ADMIN_PREFIX | |
22 | from rhodecode.model.db import User |
|
22 | from rhodecode.model.db import User | |
23 | from rhodecode.tests import ( |
|
23 | from rhodecode.tests import ( | |
24 |
TestController, |
|
24 | TestController, assert_session_flash) | |
25 | from rhodecode.tests.fixture import Fixture |
|
25 | from rhodecode.tests.fixture import Fixture | |
26 |
from rhodecode.tests. |
|
26 | from rhodecode.tests.routes import route_path | |
27 |
|
||||
28 | fixture = Fixture() |
|
|||
29 |
|
27 | |||
30 |
|
28 | |||
31 | def route_path(name, params=None, **kwargs): |
|
29 | fixture = Fixture() | |
32 | url_defs = { |
|
|||
33 | 'my_account_auth_tokens': |
|
|||
34 | ADMIN_PREFIX + '/my_account/auth_tokens', |
|
|||
35 | 'my_account_auth_tokens_add': |
|
|||
36 | ADMIN_PREFIX + '/my_account/auth_tokens/new', |
|
|||
37 | 'my_account_auth_tokens_delete': |
|
|||
38 | ADMIN_PREFIX + '/my_account/auth_tokens/delete', |
|
|||
39 | } |
|
|||
40 | return route_path_generator(url_defs, name=name, params=params, **kwargs) |
|
|||
41 |
|
30 | |||
42 |
|
31 | |||
43 | class TestMyAccountAuthTokens(TestController): |
|
32 | class TestMyAccountAuthTokens(TestController): |
@@ -39,25 +39,7 b' import pytest' | |||||
39 |
|
39 | |||
40 | from rhodecode.model.db import User |
|
40 | from rhodecode.model.db import User | |
41 | from rhodecode.tests import TestController, assert_session_flash |
|
41 | from rhodecode.tests import TestController, assert_session_flash | |
42 | from rhodecode.lib import helpers as h |
|
42 | from rhodecode.tests.routes import route_path | |
43 |
|
||||
44 |
|
||||
45 | def route_path(name, params=None, **kwargs): |
|
|||
46 | import urllib.request |
|
|||
47 | import urllib.parse |
|
|||
48 | import urllib.error |
|
|||
49 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
50 |
|
||||
51 | base_url = { |
|
|||
52 | 'my_account_edit': ADMIN_PREFIX + '/my_account/edit', |
|
|||
53 | 'my_account_update': ADMIN_PREFIX + '/my_account/update', |
|
|||
54 | 'my_account_pullrequests': ADMIN_PREFIX + '/my_account/pull_requests', |
|
|||
55 | 'my_account_pullrequests_data': ADMIN_PREFIX + '/my_account/pull_requests/data', |
|
|||
56 | }[name].format(**kwargs) |
|
|||
57 |
|
||||
58 | if params: |
|
|||
59 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
60 | return base_url |
|
|||
61 |
|
43 | |||
62 |
|
44 | |||
63 | class TestMyAccountEdit(TestController): |
|
45 | class TestMyAccountEdit(TestController): |
@@ -24,19 +24,10 b' from rhodecode.tests import (' | |||||
24 | TestController, TEST_USER_ADMIN_LOGIN, TEST_USER_REGULAR_EMAIL, |
|
24 | TestController, TEST_USER_ADMIN_LOGIN, TEST_USER_REGULAR_EMAIL, | |
25 | assert_session_flash, TEST_USER_REGULAR_PASS) |
|
25 | assert_session_flash, TEST_USER_REGULAR_PASS) | |
26 | from rhodecode.tests.fixture import Fixture |
|
26 | from rhodecode.tests.fixture import Fixture | |
27 |
|
27 | from rhodecode.tests.routes import route_path | ||
28 | fixture = Fixture() |
|
|||
29 |
|
28 | |||
30 |
|
29 | |||
31 | def route_path(name, **kwargs): |
|
30 | fixture = Fixture() | |
32 | return { |
|
|||
33 | 'my_account_emails': |
|
|||
34 | ADMIN_PREFIX + '/my_account/emails', |
|
|||
35 | 'my_account_emails_add': |
|
|||
36 | ADMIN_PREFIX + '/my_account/emails/new', |
|
|||
37 | 'my_account_emails_delete': |
|
|||
38 | ADMIN_PREFIX + '/my_account/emails/delete', |
|
|||
39 | }[name].format(**kwargs) |
|
|||
40 |
|
31 | |||
41 |
|
32 | |||
42 | class TestMyAccountEmails(TestController): |
|
33 | class TestMyAccountEmails(TestController): |
@@ -18,40 +18,19 b'' | |||||
18 |
|
18 | |||
19 | import pytest |
|
19 | import pytest | |
20 |
|
20 | |||
21 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
22 | from rhodecode.tests import ( |
|
21 | from rhodecode.tests import ( | |
23 | TestController, TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS, |
|
22 | TestController, TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS, | |
24 | TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS) |
|
23 | TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS) | |
25 | from rhodecode.tests.fixture import Fixture |
|
24 | from rhodecode.tests.fixture import Fixture | |
|
25 | from rhodecode.tests.routes import route_path | |||
26 |
|
26 | |||
27 | from rhodecode.model.db import Notification, User |
|
27 | from rhodecode.model.db import Notification, User | |
28 | from rhodecode.model.user import UserModel |
|
|||
29 | from rhodecode.model.notification import NotificationModel |
|
28 | from rhodecode.model.notification import NotificationModel | |
30 | from rhodecode.model.meta import Session |
|
29 | from rhodecode.model.meta import Session | |
31 |
|
30 | |||
32 | fixture = Fixture() |
|
31 | fixture = Fixture() | |
33 |
|
32 | |||
34 |
|
33 | |||
35 | def route_path(name, params=None, **kwargs): |
|
|||
36 | import urllib.request |
|
|||
37 | import urllib.parse |
|
|||
38 | import urllib.error |
|
|||
39 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
40 |
|
||||
41 | base_url = { |
|
|||
42 | 'notifications_show_all': ADMIN_PREFIX + '/notifications', |
|
|||
43 | 'notifications_mark_all_read': ADMIN_PREFIX + '/notifications_mark_all_read', |
|
|||
44 | 'notifications_show': ADMIN_PREFIX + '/notifications/{notification_id}', |
|
|||
45 | 'notifications_update': ADMIN_PREFIX + '/notifications/{notification_id}/update', |
|
|||
46 | 'notifications_delete': ADMIN_PREFIX + '/notifications/{notification_id}/delete', |
|
|||
47 |
|
||||
48 | }[name].format(**kwargs) |
|
|||
49 |
|
||||
50 | if params: |
|
|||
51 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
52 | return base_url |
|
|||
53 |
|
||||
54 |
|
||||
55 | class TestNotificationsController(TestController): |
|
34 | class TestNotificationsController(TestController): | |
56 |
|
35 | |||
57 | def teardown_method(self, method): |
|
36 | def teardown_method(self, method): |
@@ -27,20 +27,11 b' from rhodecode.model.meta import Session' | |||||
27 | from rhodecode.model.user import UserModel |
|
27 | from rhodecode.model.user import UserModel | |
28 | from rhodecode.tests import assert_session_flash |
|
28 | from rhodecode.tests import assert_session_flash | |
29 | from rhodecode.tests.fixture import Fixture, TestController, error_function |
|
29 | from rhodecode.tests.fixture import Fixture, TestController, error_function | |
|
30 | from rhodecode.tests.routes import route_path | |||
30 |
|
31 | |||
31 | fixture = Fixture() |
|
32 | fixture = Fixture() | |
32 |
|
33 | |||
33 |
|
34 | |||
34 | def route_path(name, **kwargs): |
|
|||
35 | return { |
|
|||
36 | 'home': '/', |
|
|||
37 | 'my_account_password': |
|
|||
38 | ADMIN_PREFIX + '/my_account/password', |
|
|||
39 | 'my_account_password_update': |
|
|||
40 | ADMIN_PREFIX + '/my_account/password/update', |
|
|||
41 | }[name].format(**kwargs) |
|
|||
42 |
|
||||
43 |
|
||||
44 | test_user_1 = 'testme' |
|
35 | test_user_1 = 'testme' | |
45 | test_user_1_password = '0jd83nHNS/d23n' |
|
36 | test_user_1_password = '0jd83nHNS/d23n' | |
46 |
|
37 |
@@ -17,24 +17,15 b'' | |||||
17 | # RhodeCode Enterprise Edition, including its added features, Support services, |
|
17 | # RhodeCode Enterprise Edition, including its added features, Support services, | |
18 | # and proprietary license terms, please see https://rhodecode.com/licenses/ |
|
18 | # and proprietary license terms, please see https://rhodecode.com/licenses/ | |
19 |
|
19 | |||
20 | import pytest |
|
|||
21 |
|
||||
22 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
23 | from rhodecode.tests import ( |
|
20 | from rhodecode.tests import ( | |
24 | TestController, TEST_USER_ADMIN_LOGIN, |
|
21 | TestController, TEST_USER_ADMIN_LOGIN, | |
25 | TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS) |
|
22 | TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS) | |
26 | from rhodecode.tests.fixture import Fixture |
|
23 | from rhodecode.tests.fixture import Fixture | |
|
24 | from rhodecode.tests.routes import route_path | |||
27 |
|
25 | |||
28 | fixture = Fixture() |
|
26 | fixture = Fixture() | |
29 |
|
27 | |||
30 |
|
28 | |||
31 | def route_path(name, **kwargs): |
|
|||
32 | return { |
|
|||
33 | 'my_account': |
|
|||
34 | ADMIN_PREFIX + '/my_account/profile', |
|
|||
35 | }[name].format(**kwargs) |
|
|||
36 |
|
||||
37 |
|
||||
38 | class TestMyAccountProfile(TestController): |
|
29 | class TestMyAccountProfile(TestController): | |
39 |
|
30 | |||
40 | def test_my_account(self): |
|
31 | def test_my_account(self): |
@@ -17,31 +17,14 b'' | |||||
17 | # RhodeCode Enterprise Edition, including its added features, Support services, |
|
17 | # RhodeCode Enterprise Edition, including its added features, Support services, | |
18 | # and proprietary license terms, please see https://rhodecode.com/licenses/ |
|
18 | # and proprietary license terms, please see https://rhodecode.com/licenses/ | |
19 |
|
19 | |||
20 | import pytest |
|
20 | from rhodecode.model.db import User, Repository, UserFollowing | |
21 |
|
21 | from rhodecode.tests import TestController, TEST_USER_ADMIN_LOGIN | ||
22 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
23 | from rhodecode.model.db import User, UserEmailMap, Repository, UserFollowing |
|
|||
24 | from rhodecode.tests import ( |
|
|||
25 | TestController, TEST_USER_ADMIN_LOGIN, TEST_USER_REGULAR_EMAIL, |
|
|||
26 | assert_session_flash) |
|
|||
27 | from rhodecode.tests.fixture import Fixture |
|
22 | from rhodecode.tests.fixture import Fixture | |
|
23 | from rhodecode.tests.routes import route_path | |||
28 |
|
24 | |||
29 | fixture = Fixture() |
|
25 | fixture = Fixture() | |
30 |
|
26 | |||
31 |
|
27 | |||
32 | def route_path(name, **kwargs): |
|
|||
33 | return { |
|
|||
34 | 'my_account_repos': |
|
|||
35 | ADMIN_PREFIX + '/my_account/repos', |
|
|||
36 | 'my_account_watched': |
|
|||
37 | ADMIN_PREFIX + '/my_account/watched', |
|
|||
38 | 'my_account_perms': |
|
|||
39 | ADMIN_PREFIX + '/my_account/perms', |
|
|||
40 | 'my_account_notifications': |
|
|||
41 | ADMIN_PREFIX + '/my_account/notifications', |
|
|||
42 | }[name].format(**kwargs) |
|
|||
43 |
|
||||
44 |
|
||||
45 | class TestMyAccountSimpleViews(TestController): |
|
28 | class TestMyAccountSimpleViews(TestController): | |
46 |
|
29 | |||
47 | def test_my_account_my_repos(self, autologin_user): |
|
30 | def test_my_account_my_repos(self, autologin_user): |
@@ -17,38 +17,16 b'' | |||||
17 | # RhodeCode Enterprise Edition, including its added features, Support services, |
|
17 | # RhodeCode Enterprise Edition, including its added features, Support services, | |
18 | # and proprietary license terms, please see https://rhodecode.com/licenses/ |
|
18 | # and proprietary license terms, please see https://rhodecode.com/licenses/ | |
19 |
|
19 | |||
20 | import pytest |
|
|||
21 |
|
20 | |||
22 | from rhodecode.model.db import User, UserSshKeys |
|
21 | from rhodecode.model.db import User, UserSshKeys | |
23 |
|
22 | |||
24 | from rhodecode.tests import TestController, assert_session_flash |
|
23 | from rhodecode.tests import TestController, assert_session_flash | |
25 | from rhodecode.tests.fixture import Fixture |
|
24 | from rhodecode.tests.fixture import Fixture | |
|
25 | from rhodecode.tests.routes import route_path | |||
26 |
|
26 | |||
27 | fixture = Fixture() |
|
27 | fixture = Fixture() | |
28 |
|
28 | |||
29 |
|
29 | |||
30 | def route_path(name, params=None, **kwargs): |
|
|||
31 | import urllib.request |
|
|||
32 | import urllib.parse |
|
|||
33 | import urllib.error |
|
|||
34 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
35 |
|
||||
36 | base_url = { |
|
|||
37 | 'my_account_ssh_keys': |
|
|||
38 | ADMIN_PREFIX + '/my_account/ssh_keys', |
|
|||
39 | 'my_account_ssh_keys_generate': |
|
|||
40 | ADMIN_PREFIX + '/my_account/ssh_keys/generate', |
|
|||
41 | 'my_account_ssh_keys_add': |
|
|||
42 | ADMIN_PREFIX + '/my_account/ssh_keys/new', |
|
|||
43 | 'my_account_ssh_keys_delete': |
|
|||
44 | ADMIN_PREFIX + '/my_account/ssh_keys/delete', |
|
|||
45 | }[name].format(**kwargs) |
|
|||
46 |
|
||||
47 | if params: |
|
|||
48 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
49 | return base_url |
|
|||
50 |
|
||||
51 |
|
||||
52 | class TestMyAccountSshKeysView(TestController): |
|
30 | class TestMyAccountSshKeysView(TestController): | |
53 | INVALID_KEY = """\ |
|
31 | INVALID_KEY = """\ | |
54 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDk+77sjDzVeB6vevJsuZds1iNU5 |
|
32 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDk+77sjDzVeB6vevJsuZds1iNU5 |
@@ -19,23 +19,7 b'' | |||||
19 | import pytest |
|
19 | import pytest | |
20 |
|
20 | |||
21 | from rhodecode.tests import assert_session_flash |
|
21 | from rhodecode.tests import assert_session_flash | |
22 |
|
22 | from rhodecode.tests.routes import route_path | ||
23 |
|
||||
24 | def route_path(name, params=None, **kwargs): |
|
|||
25 | import urllib.request |
|
|||
26 | import urllib.parse |
|
|||
27 | import urllib.error |
|
|||
28 |
|
||||
29 | base_url = { |
|
|||
30 | 'edit_repo_group_advanced': |
|
|||
31 | '/{repo_group_name}/_settings/advanced', |
|
|||
32 | 'edit_repo_group_advanced_delete': |
|
|||
33 | '/{repo_group_name}/_settings/advanced/delete', |
|
|||
34 | }[name].format(**kwargs) |
|
|||
35 |
|
||||
36 | if params: |
|
|||
37 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
38 | return base_url |
|
|||
39 |
|
23 | |||
40 |
|
24 | |||
41 | @pytest.mark.usefixtures("app") |
|
25 | @pytest.mark.usefixtures("app") |
@@ -19,23 +19,7 b'' | |||||
19 | import pytest |
|
19 | import pytest | |
20 |
|
20 | |||
21 | from rhodecode.tests.utils import permission_update_data_generator |
|
21 | from rhodecode.tests.utils import permission_update_data_generator | |
22 |
|
22 | from rhodecode.tests.routes import route_path | ||
23 |
|
||||
24 | def route_path(name, params=None, **kwargs): |
|
|||
25 | import urllib.request |
|
|||
26 | import urllib.parse |
|
|||
27 | import urllib.error |
|
|||
28 |
|
||||
29 | base_url = { |
|
|||
30 | 'edit_repo_group_perms': |
|
|||
31 | '/{repo_group_name:}/_settings/permissions', |
|
|||
32 | 'edit_repo_group_perms_update': |
|
|||
33 | '/{repo_group_name}/_settings/permissions/update', |
|
|||
34 | }[name].format(**kwargs) |
|
|||
35 |
|
||||
36 | if params: |
|
|||
37 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
38 | return base_url |
|
|||
39 |
|
23 | |||
40 |
|
24 | |||
41 | @pytest.mark.usefixtures("app") |
|
25 | @pytest.mark.usefixtures("app") |
@@ -20,21 +20,8 b'' | |||||
20 | import pytest |
|
20 | import pytest | |
21 |
|
21 | |||
22 | from rhodecode.tests import assert_session_flash |
|
22 | from rhodecode.tests import assert_session_flash | |
23 |
|
23 | from rhodecode.tests.routes import route_path | ||
24 |
|
||||
25 | def route_path(name, params=None, **kwargs): |
|
|||
26 | import urllib.request |
|
|||
27 | import urllib.parse |
|
|||
28 | import urllib.error |
|
|||
29 |
|
24 | |||
30 | base_url = { |
|
|||
31 | 'edit_repo_group': '/{repo_group_name}/_edit', |
|
|||
32 | # Update is POST to the above url |
|
|||
33 | }[name].format(**kwargs) |
|
|||
34 |
|
||||
35 | if params: |
|
|||
36 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
37 | return base_url |
|
|||
38 |
|
25 | |||
39 |
|
26 | |||
40 | @pytest.mark.usefixtures("app") |
|
27 | @pytest.mark.usefixtures("app") |
@@ -17,22 +17,7 b'' | |||||
17 | # and proprietary license terms, please see https://rhodecode.com/licenses/ |
|
17 | # and proprietary license terms, please see https://rhodecode.com/licenses/ | |
18 |
|
18 | |||
19 | import pytest |
|
19 | import pytest | |
20 |
from rhodecode. |
|
20 | from rhodecode.tests.routes import route_path | |
21 |
|
||||
22 |
|
||||
23 | def route_path(name, params=None, **kwargs): |
|
|||
24 | import urllib.request |
|
|||
25 | import urllib.parse |
|
|||
26 | import urllib.error |
|
|||
27 |
|
||||
28 | base_url = { |
|
|||
29 | 'pullrequest_show_all': '/{repo_name}/pull-request', |
|
|||
30 | 'pullrequest_show_all_data': '/{repo_name}/pull-request-data', |
|
|||
31 | }[name].format(**kwargs) |
|
|||
32 |
|
||||
33 | if params: |
|
|||
34 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
35 | return base_url |
|
|||
36 |
|
21 | |||
37 |
|
22 | |||
38 | @pytest.mark.backends("git", "hg") |
|
23 | @pytest.mark.backends("git", "hg") |
@@ -18,20 +18,8 b'' | |||||
18 |
|
18 | |||
19 | import pytest |
|
19 | import pytest | |
20 | from rhodecode.model.db import Repository |
|
20 | from rhodecode.model.db import Repository | |
21 |
|
21 | from rhodecode.tests.routes import route_path | ||
22 |
|
||||
23 | def route_path(name, params=None, **kwargs): |
|
|||
24 | import urllib.request |
|
|||
25 | import urllib.parse |
|
|||
26 | import urllib.error |
|
|||
27 |
|
22 | |||
28 | base_url = { |
|
|||
29 | 'bookmarks_home': '/{repo_name}/bookmarks', |
|
|||
30 | }[name].format(**kwargs) |
|
|||
31 |
|
||||
32 | if params: |
|
|||
33 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
34 | return base_url |
|
|||
35 |
|
23 | |||
36 |
|
24 | |||
37 | @pytest.mark.usefixtures('autologin_user', 'app') |
|
25 | @pytest.mark.usefixtures('autologin_user', 'app') |
@@ -18,20 +18,7 b'' | |||||
18 |
|
18 | |||
19 | import pytest |
|
19 | import pytest | |
20 | from rhodecode.model.db import Repository |
|
20 | from rhodecode.model.db import Repository | |
21 |
|
21 | from rhodecode.tests.routes import route_path | ||
22 |
|
||||
23 | def route_path(name, params=None, **kwargs): |
|
|||
24 | import urllib.request |
|
|||
25 | import urllib.parse |
|
|||
26 | import urllib.error |
|
|||
27 |
|
||||
28 | base_url = { |
|
|||
29 | 'branches_home': '/{repo_name}/branches', |
|
|||
30 | }[name].format(**kwargs) |
|
|||
31 |
|
||||
32 | if params: |
|
|||
33 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
34 | return base_url |
|
|||
35 |
|
22 | |||
36 |
|
23 | |||
37 | @pytest.mark.usefixtures('autologin_user', 'app') |
|
24 | @pytest.mark.usefixtures('autologin_user', 'app') |
@@ -22,25 +22,10 b' import pytest' | |||||
22 |
|
22 | |||
23 | from rhodecode.apps.repository.views.repo_changelog import DEFAULT_CHANGELOG_SIZE |
|
23 | from rhodecode.apps.repository.views.repo_changelog import DEFAULT_CHANGELOG_SIZE | |
24 | from rhodecode.tests import TestController |
|
24 | from rhodecode.tests import TestController | |
25 |
|
25 | from rhodecode.tests.routes import route_path | ||
26 | MATCH_HASH = re.compile(r'<span class="commit_hash">r(\d+):[\da-f]+</span>') |
|
|||
27 |
|
26 | |||
28 |
|
27 | |||
29 | def route_path(name, params=None, **kwargs): |
|
28 | MATCH_HASH = re.compile(r'<span class="commit_hash">r(\d+):[\da-f]+</span>') | |
30 | import urllib.request |
|
|||
31 | import urllib.parse |
|
|||
32 | import urllib.error |
|
|||
33 |
|
||||
34 | base_url = { |
|
|||
35 | 'repo_changelog': '/{repo_name}/changelog', |
|
|||
36 | 'repo_commits': '/{repo_name}/commits', |
|
|||
37 | 'repo_commits_file': '/{repo_name}/commits/{commit_id}/{f_path}', |
|
|||
38 | 'repo_commits_elements': '/{repo_name}/commits_elements', |
|
|||
39 | }[name].format(**kwargs) |
|
|||
40 |
|
||||
41 | if params: |
|
|||
42 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
43 | return base_url |
|
|||
44 |
|
29 | |||
45 |
|
30 | |||
46 | def assert_commits_on_page(response, indexes): |
|
31 | def assert_commits_on_page(response, indexes): |
@@ -19,29 +19,12 b'' | |||||
19 | import pytest |
|
19 | import pytest | |
20 |
|
20 | |||
21 | from rhodecode.tests import TestController |
|
21 | from rhodecode.tests import TestController | |
22 |
|
22 | from rhodecode.tests.routes import route_path | ||
23 | from rhodecode.model.db import ChangesetComment, Notification |
|
23 | from rhodecode.model.db import ChangesetComment, Notification | |
24 | from rhodecode.model.meta import Session |
|
24 | from rhodecode.model.meta import Session | |
25 | from rhodecode.lib import helpers as h |
|
25 | from rhodecode.lib import helpers as h | |
26 |
|
26 | |||
27 |
|
27 | |||
28 | def route_path(name, params=None, **kwargs): |
|
|||
29 | import urllib.request |
|
|||
30 | import urllib.parse |
|
|||
31 | import urllib.error |
|
|||
32 |
|
||||
33 | base_url = { |
|
|||
34 | 'repo_commit': '/{repo_name}/changeset/{commit_id}', |
|
|||
35 | 'repo_commit_comment_create': '/{repo_name}/changeset/{commit_id}/comment/create', |
|
|||
36 | 'repo_commit_comment_preview': '/{repo_name}/changeset/{commit_id}/comment/preview', |
|
|||
37 | 'repo_commit_comment_delete': '/{repo_name}/changeset/{commit_id}/comment/{comment_id}/delete', |
|
|||
38 | 'repo_commit_comment_edit': '/{repo_name}/changeset/{commit_id}/comment/{comment_id}/edit', |
|
|||
39 | }[name].format(**kwargs) |
|
|||
40 |
|
||||
41 | if params: |
|
|||
42 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
43 | return base_url |
|
|||
44 |
|
||||
45 |
|
28 | |||
46 | @pytest.mark.backends("git", "hg", "svn") |
|
29 | @pytest.mark.backends("git", "hg", "svn") | |
47 | class TestRepoCommitCommentsView(TestController): |
|
30 | class TestRepoCommitCommentsView(TestController): |
@@ -21,27 +21,7 b' import pytest' | |||||
21 |
|
21 | |||
22 | from rhodecode.apps.repository.tests.test_repo_compare import ComparePage |
|
22 | from rhodecode.apps.repository.tests.test_repo_compare import ComparePage | |
23 | from rhodecode.lib.helpers import _shorten_commit_id |
|
23 | from rhodecode.lib.helpers import _shorten_commit_id | |
24 |
|
24 | from rhodecode.tests.routes import route_path | ||
25 |
|
||||
26 | def route_path(name, params=None, **kwargs): |
|
|||
27 | import urllib.request |
|
|||
28 | import urllib.parse |
|
|||
29 | import urllib.error |
|
|||
30 |
|
||||
31 | base_url = { |
|
|||
32 | 'repo_commit': '/{repo_name}/changeset/{commit_id}', |
|
|||
33 | 'repo_commit_children': '/{repo_name}/changeset_children/{commit_id}', |
|
|||
34 | 'repo_commit_parents': '/{repo_name}/changeset_parents/{commit_id}', |
|
|||
35 | 'repo_commit_raw': '/{repo_name}/changeset-diff/{commit_id}', |
|
|||
36 | 'repo_commit_patch': '/{repo_name}/changeset-patch/{commit_id}', |
|
|||
37 | 'repo_commit_download': '/{repo_name}/changeset-download/{commit_id}', |
|
|||
38 | 'repo_commit_data': '/{repo_name}/changeset-data/{commit_id}', |
|
|||
39 | 'repo_compare': '/{repo_name}/compare/{source_ref_type}@{source_ref}...{target_ref_type}@{target_ref}', |
|
|||
40 | }[name].format(**kwargs) |
|
|||
41 |
|
||||
42 | if params: |
|
|||
43 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
44 | return base_url |
|
|||
45 |
|
25 | |||
46 |
|
26 | |||
47 | @pytest.mark.usefixtures("app") |
|
27 | @pytest.mark.usefixtures("app") |
@@ -24,21 +24,7 b' import lxml.html' | |||||
24 | from rhodecode.lib.vcs.exceptions import RepositoryRequirementError |
|
24 | from rhodecode.lib.vcs.exceptions import RepositoryRequirementError | |
25 | from rhodecode.tests import assert_session_flash |
|
25 | from rhodecode.tests import assert_session_flash | |
26 | from rhodecode.tests.utils import AssertResponse, commit_change |
|
26 | from rhodecode.tests.utils import AssertResponse, commit_change | |
27 |
|
27 | from rhodecode.tests.routes import route_path | ||
28 |
|
||||
29 | def route_path(name, params=None, **kwargs): |
|
|||
30 | import urllib.request |
|
|||
31 | import urllib.parse |
|
|||
32 | import urllib.error |
|
|||
33 |
|
||||
34 | base_url = { |
|
|||
35 | 'repo_compare_select': '/{repo_name}/compare', |
|
|||
36 | 'repo_compare': '/{repo_name}/compare/{source_ref_type}@{source_ref}...{target_ref_type}@{target_ref}', |
|
|||
37 | }[name].format(**kwargs) |
|
|||
38 |
|
||||
39 | if params: |
|
|||
40 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
41 | return base_url |
|
|||
42 |
|
28 | |||
43 |
|
29 | |||
44 | @pytest.mark.usefixtures("autologin_user", "app") |
|
30 | @pytest.mark.usefixtures("autologin_user", "app") | |
@@ -165,7 +151,7 b' class TestCompareView(object):' | |||||
165 | compare_page.target_source_are_disabled() |
|
151 | compare_page.target_source_are_disabled() | |
166 |
|
152 | |||
167 | @pytest.mark.xfail_backends("svn", reason="Depends on branch support") |
|
153 | @pytest.mark.xfail_backends("svn", reason="Depends on branch support") | |
168 |
def test_compare_forks_on_branch_extra_commits_origin_has_incom |
|
154 | def test_compare_forks_on_branch_extra_commits_origin_has_incoming(self, backend): | |
169 | repo1 = backend.create_repo() |
|
155 | repo1 = backend.create_repo() | |
170 |
|
156 | |||
171 | # commit something ! |
|
157 | # commit something ! | |
@@ -203,13 +189,13 b' class TestCompareView(object):' | |||||
203 | params=dict(merge='1', target_repo=repo2.repo_name), |
|
189 | params=dict(merge='1', target_repo=repo2.repo_name), | |
204 | )) |
|
190 | )) | |
205 |
|
191 | |||
206 |
response.mustcontain(' |
|
192 | response.mustcontain(f'{repo1.repo_name}@{commit_id2}') | |
207 |
response.mustcontain(' |
|
193 | response.mustcontain(f'{repo2.repo_name}@{commit_id1}') | |
208 |
|
194 | |||
209 | compare_page = ComparePage(response) |
|
195 | compare_page = ComparePage(response) | |
210 | compare_page.contains_change_summary(1, 2, 0) |
|
196 | compare_page.contains_change_summary(1, 2, 0) | |
211 | compare_page.contains_commits([commit1, commit2]) |
|
197 | compare_page.contains_commits([commit1, commit2]) | |
212 |
anchor = 'a_c-{ |
|
198 | anchor = f'a_c-{commit0.short_id}-826e8142e6ba' | |
213 | compare_page.contains_file_links_and_anchors([('file1', anchor), ]) |
|
199 | compare_page.contains_file_links_and_anchors([('file1', anchor), ]) | |
214 |
|
200 | |||
215 | # Swap is removed when comparing branches since it's a PR feature and |
|
201 | # Swap is removed when comparing branches since it's a PR feature and |
@@ -20,21 +20,7 b'' | |||||
20 | import pytest |
|
20 | import pytest | |
21 |
|
21 | |||
22 | from .test_repo_compare import ComparePage |
|
22 | from .test_repo_compare import ComparePage | |
23 |
|
23 | from rhodecode.tests.routes import route_path | ||
24 |
|
||||
25 | def route_path(name, params=None, **kwargs): |
|
|||
26 | import urllib.request |
|
|||
27 | import urllib.parse |
|
|||
28 | import urllib.error |
|
|||
29 |
|
||||
30 | base_url = { |
|
|||
31 | 'repo_compare_select': '/{repo_name}/compare', |
|
|||
32 | 'repo_compare': '/{repo_name}/compare/{source_ref_type}@{source_ref}...{target_ref_type}@{target_ref}', |
|
|||
33 | }[name].format(**kwargs) |
|
|||
34 |
|
||||
35 | if params: |
|
|||
36 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
37 | return base_url |
|
|||
38 |
|
24 | |||
39 |
|
25 | |||
40 | @pytest.mark.usefixtures("autologin_user", "app") |
|
26 | @pytest.mark.usefixtures("autologin_user", "app") |
@@ -24,23 +24,10 b' from rhodecode.lib.vcs import nodes' | |||||
24 | from rhodecode.lib.vcs.backends.base import EmptyCommit |
|
24 | from rhodecode.lib.vcs.backends.base import EmptyCommit | |
25 | from rhodecode.tests.fixture import Fixture |
|
25 | from rhodecode.tests.fixture import Fixture | |
26 | from rhodecode.tests.utils import commit_change |
|
26 | from rhodecode.tests.utils import commit_change | |
27 |
|
27 | from rhodecode.tests.routes import route_path | ||
28 | fixture = Fixture() |
|
|||
29 |
|
28 | |||
30 |
|
29 | |||
31 | def route_path(name, params=None, **kwargs): |
|
30 | fixture = Fixture() | |
32 | import urllib.request |
|
|||
33 | import urllib.parse |
|
|||
34 | import urllib.error |
|
|||
35 |
|
||||
36 | base_url = { |
|
|||
37 | 'repo_compare_select': '/{repo_name}/compare', |
|
|||
38 | 'repo_compare': '/{repo_name}/compare/{source_ref_type}@{source_ref}...{target_ref_type}@{target_ref}', |
|
|||
39 | }[name].format(**kwargs) |
|
|||
40 |
|
||||
41 | if params: |
|
|||
42 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
43 | return base_url |
|
|||
44 |
|
31 | |||
45 |
|
32 | |||
46 | @pytest.mark.usefixtures("autologin_user", "app") |
|
33 | @pytest.mark.usefixtures("autologin_user", "app") |
@@ -20,23 +20,7 b'' | |||||
20 | import pytest |
|
20 | import pytest | |
21 | from rhodecode.model.auth_token import AuthTokenModel |
|
21 | from rhodecode.model.auth_token import AuthTokenModel | |
22 | from rhodecode.tests import TestController |
|
22 | from rhodecode.tests import TestController | |
23 |
|
23 | from rhodecode.tests.routes import route_path | ||
24 |
|
||||
25 | def route_path(name, params=None, **kwargs): |
|
|||
26 | import urllib.request |
|
|||
27 | import urllib.parse |
|
|||
28 | import urllib.error |
|
|||
29 |
|
||||
30 | base_url = { |
|
|||
31 | 'rss_feed_home': '/{repo_name}/feed-rss', |
|
|||
32 | 'atom_feed_home': '/{repo_name}/feed-atom', |
|
|||
33 | 'rss_feed_home_old': '/{repo_name}/feed/rss', |
|
|||
34 | 'atom_feed_home_old': '/{repo_name}/feed/atom', |
|
|||
35 | }[name].format(**kwargs) |
|
|||
36 |
|
||||
37 | if params: |
|
|||
38 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
39 | return base_url |
|
|||
40 |
|
24 | |||
41 |
|
25 | |||
42 | class TestFeedView(TestController): |
|
26 | class TestFeedView(TestController): |
@@ -34,6 +34,8 b' from rhodecode.model.db import Session, ' | |||||
34 |
|
34 | |||
35 | from rhodecode.tests import assert_session_flash |
|
35 | from rhodecode.tests import assert_session_flash | |
36 | from rhodecode.tests.fixture import Fixture |
|
36 | from rhodecode.tests.fixture import Fixture | |
|
37 | from rhodecode.tests.routes import route_path | |||
|
38 | ||||
37 |
|
39 | |||
38 | fixture = Fixture() |
|
40 | fixture = Fixture() | |
39 |
|
41 | |||
@@ -46,43 +48,6 b' def get_node_history(backend_type):' | |||||
46 | }[backend_type] |
|
48 | }[backend_type] | |
47 |
|
49 | |||
48 |
|
50 | |||
49 | def route_path(name, params=None, **kwargs): |
|
|||
50 | import urllib.request |
|
|||
51 | import urllib.parse |
|
|||
52 | import urllib.error |
|
|||
53 |
|
||||
54 | base_url = { |
|
|||
55 | 'repo_summary': '/{repo_name}', |
|
|||
56 | 'repo_archivefile': '/{repo_name}/archive/{fname}', |
|
|||
57 | 'repo_files_diff': '/{repo_name}/diff/{f_path}', |
|
|||
58 | 'repo_files_diff_2way_redirect': '/{repo_name}/diff-2way/{f_path}', |
|
|||
59 | 'repo_files': '/{repo_name}/files/{commit_id}/{f_path}', |
|
|||
60 | 'repo_files:default_path': '/{repo_name}/files/{commit_id}/', |
|
|||
61 | 'repo_files:default_commit': '/{repo_name}/files', |
|
|||
62 | 'repo_files:rendered': '/{repo_name}/render/{commit_id}/{f_path}', |
|
|||
63 | 'repo_files:annotated': '/{repo_name}/annotate/{commit_id}/{f_path}', |
|
|||
64 | 'repo_files:annotated_previous': '/{repo_name}/annotate-previous/{commit_id}/{f_path}', |
|
|||
65 | 'repo_files_nodelist': '/{repo_name}/nodelist/{commit_id}/{f_path}', |
|
|||
66 | 'repo_file_raw': '/{repo_name}/raw/{commit_id}/{f_path}', |
|
|||
67 | 'repo_file_download': '/{repo_name}/download/{commit_id}/{f_path}', |
|
|||
68 | 'repo_file_history': '/{repo_name}/history/{commit_id}/{f_path}', |
|
|||
69 | 'repo_file_authors': '/{repo_name}/authors/{commit_id}/{f_path}', |
|
|||
70 | 'repo_files_remove_file': '/{repo_name}/remove_file/{commit_id}/{f_path}', |
|
|||
71 | 'repo_files_delete_file': '/{repo_name}/delete_file/{commit_id}/{f_path}', |
|
|||
72 | 'repo_files_edit_file': '/{repo_name}/edit_file/{commit_id}/{f_path}', |
|
|||
73 | 'repo_files_update_file': '/{repo_name}/update_file/{commit_id}/{f_path}', |
|
|||
74 | 'repo_files_add_file': '/{repo_name}/add_file/{commit_id}/{f_path}', |
|
|||
75 | 'repo_files_upload_file': '/{repo_name}/upload_file/{commit_id}/{f_path}', |
|
|||
76 | 'repo_files_create_file': '/{repo_name}/create_file/{commit_id}/{f_path}', |
|
|||
77 | 'repo_nodetree_full': '/{repo_name}/nodetree_full/{commit_id}/{f_path}', |
|
|||
78 | 'repo_nodetree_full:default_path': '/{repo_name}/nodetree_full/{commit_id}/', |
|
|||
79 | }[name].format(**kwargs) |
|
|||
80 |
|
||||
81 | if params: |
|
|||
82 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
83 | return base_url |
|
|||
84 |
|
||||
85 |
|
||||
86 | def assert_files_in_response(response, files, params): |
|
51 | def assert_files_in_response(response, files, params): | |
87 | template = ( |
|
52 | template = ( | |
88 | 'href="/%(repo_name)s/files/%(commit_id)s/%(name)s"') |
|
53 | 'href="/%(repo_name)s/files/%(commit_id)s/%(name)s"') |
@@ -28,27 +28,10 b' from rhodecode.model.db import Repositor' | |||||
28 | from rhodecode.model.repo import RepoModel |
|
28 | from rhodecode.model.repo import RepoModel | |
29 | from rhodecode.model.user import UserModel |
|
29 | from rhodecode.model.user import UserModel | |
30 | from rhodecode.model.meta import Session |
|
30 | from rhodecode.model.meta import Session | |
31 |
|
31 | from rhodecode.tests.routes import route_path | ||
32 | fixture = Fixture() |
|
|||
33 |
|
32 | |||
34 |
|
33 | |||
35 | def route_path(name, params=None, **kwargs): |
|
34 | fixture = Fixture() | |
36 | import urllib.request |
|
|||
37 | import urllib.parse |
|
|||
38 | import urllib.error |
|
|||
39 |
|
||||
40 | base_url = { |
|
|||
41 | 'repo_summary': '/{repo_name}', |
|
|||
42 | 'repo_creating_check': '/{repo_name}/repo_creating_check', |
|
|||
43 | 'repo_fork_new': '/{repo_name}/fork', |
|
|||
44 | 'repo_fork_create': '/{repo_name}/fork/create', |
|
|||
45 | 'repo_forks_show_all': '/{repo_name}/forks', |
|
|||
46 | 'repo_forks_data': '/{repo_name}/forks/data', |
|
|||
47 | }[name].format(**kwargs) |
|
|||
48 |
|
||||
49 | if params: |
|
|||
50 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
51 | return base_url |
|
|||
52 |
|
35 | |||
53 |
|
36 | |||
54 | FORK_NAME = { |
|
37 | FORK_NAME = { |
@@ -23,24 +23,8 b' from rhodecode.lib.hash_utils import md5' | |||||
23 | from rhodecode.model.db import Repository |
|
23 | from rhodecode.model.db import Repository | |
24 | from rhodecode.model.meta import Session |
|
24 | from rhodecode.model.meta import Session | |
25 | from rhodecode.model.settings import SettingsModel, IssueTrackerSettingsModel |
|
25 | from rhodecode.model.settings import SettingsModel, IssueTrackerSettingsModel | |
26 |
|
26 | from rhodecode.tests.routes import route_path | ||
27 |
|
||||
28 | def route_path(name, params=None, **kwargs): |
|
|||
29 | import urllib.request |
|
|||
30 | import urllib.parse |
|
|||
31 | import urllib.error |
|
|||
32 |
|
27 | |||
33 | base_url = { |
|
|||
34 | 'repo_summary': '/{repo_name}', |
|
|||
35 | 'edit_repo_issuetracker': '/{repo_name}/settings/issue_trackers', |
|
|||
36 | 'edit_repo_issuetracker_test': '/{repo_name}/settings/issue_trackers/test', |
|
|||
37 | 'edit_repo_issuetracker_delete': '/{repo_name}/settings/issue_trackers/delete', |
|
|||
38 | 'edit_repo_issuetracker_update': '/{repo_name}/settings/issue_trackers/update', |
|
|||
39 | }[name].format(**kwargs) |
|
|||
40 |
|
||||
41 | if params: |
|
|||
42 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
43 | return base_url |
|
|||
44 |
|
28 | |||
45 |
|
29 | |||
46 | @pytest.mark.usefixtures("app") |
|
30 | @pytest.mark.usefixtures("app") |
@@ -17,36 +17,16 b'' | |||||
17 | # RhodeCode Enterprise Edition, including its added features, Support services, |
|
17 | # RhodeCode Enterprise Edition, including its added features, Support services, | |
18 | # and proprietary license terms, please see https://rhodecode.com/licenses/ |
|
18 | # and proprietary license terms, please see https://rhodecode.com/licenses/ | |
19 |
|
19 | |||
20 | import mock |
|
|||
21 | import pytest |
|
20 | import pytest | |
22 |
|
21 | |||
23 | from rhodecode.lib.utils2 import str2bool |
|
|||
24 | from rhodecode.lib.vcs.exceptions import RepositoryRequirementError |
|
|||
25 | from rhodecode.model.db import Repository, UserRepoToPerm, Permission, User |
|
22 | from rhodecode.model.db import Repository, UserRepoToPerm, Permission, User | |
26 | from rhodecode.model.meta import Session |
|
23 | ||
27 | from rhodecode.tests import ( |
|
|||
28 | TEST_USER_ADMIN_LOGIN, TEST_USER_REGULAR_LOGIN, assert_session_flash) |
|
|||
29 | from rhodecode.tests.fixture import Fixture |
|
24 | from rhodecode.tests.fixture import Fixture | |
|
25 | from rhodecode.tests.routes import route_path | |||
30 |
|
26 | |||
31 | fixture = Fixture() |
|
27 | fixture = Fixture() | |
32 |
|
28 | |||
33 |
|
29 | |||
34 | def route_path(name, params=None, **kwargs): |
|
|||
35 | import urllib.request |
|
|||
36 | import urllib.parse |
|
|||
37 | import urllib.error |
|
|||
38 |
|
||||
39 | base_url = { |
|
|||
40 | 'edit_repo_maintenance': '/{repo_name}/settings/maintenance', |
|
|||
41 | 'edit_repo_maintenance_execute': '/{repo_name}/settings/maintenance/execute', |
|
|||
42 |
|
||||
43 | }[name].format(**kwargs) |
|
|||
44 |
|
||||
45 | if params: |
|
|||
46 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
47 | return base_url |
|
|||
48 |
|
||||
49 |
|
||||
50 | def _get_permission_for_user(user, repo): |
|
30 | def _get_permission_for_user(user, repo): | |
51 | perm = UserRepoToPerm.query()\ |
|
31 | perm = UserRepoToPerm.query()\ | |
52 | .filter(UserRepoToPerm.repository == |
|
32 | .filter(UserRepoToPerm.repository == |
@@ -20,21 +20,7 b'' | |||||
20 | import pytest |
|
20 | import pytest | |
21 |
|
21 | |||
22 | from rhodecode.tests.utils import permission_update_data_generator |
|
22 | from rhodecode.tests.utils import permission_update_data_generator | |
23 |
|
23 | from rhodecode.tests.routes import route_path | ||
24 |
|
||||
25 | def route_path(name, params=None, **kwargs): |
|
|||
26 | import urllib.request |
|
|||
27 | import urllib.parse |
|
|||
28 | import urllib.error |
|
|||
29 |
|
||||
30 | base_url = { |
|
|||
31 | 'edit_repo_perms': '/{repo_name}/settings/permissions' |
|
|||
32 | # update is the same url |
|
|||
33 | }[name].format(**kwargs) |
|
|||
34 |
|
||||
35 | if params: |
|
|||
36 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
37 | return base_url |
|
|||
38 |
|
24 | |||
39 |
|
25 | |||
40 | @pytest.mark.usefixtures("app") |
|
26 | @pytest.mark.usefixtures("app") |
@@ -33,36 +33,7 b' from rhodecode.model.user import UserMod' | |||||
33 | from rhodecode.model.comment import CommentsModel |
|
33 | from rhodecode.model.comment import CommentsModel | |
34 | from rhodecode.tests import ( |
|
34 | from rhodecode.tests import ( | |
35 | assert_session_flash, TEST_USER_ADMIN_LOGIN, TEST_USER_REGULAR_LOGIN) |
|
35 | assert_session_flash, TEST_USER_ADMIN_LOGIN, TEST_USER_REGULAR_LOGIN) | |
36 |
|
36 | from rhodecode.tests.routes import route_path | ||
37 |
|
||||
38 | def route_path(name, params=None, **kwargs): |
|
|||
39 | import urllib.request |
|
|||
40 | import urllib.parse |
|
|||
41 | import urllib.error |
|
|||
42 |
|
||||
43 | base_url = { |
|
|||
44 | 'repo_changelog': '/{repo_name}/changelog', |
|
|||
45 | 'repo_changelog_file': '/{repo_name}/changelog/{commit_id}/{f_path}', |
|
|||
46 | 'repo_commits': '/{repo_name}/commits', |
|
|||
47 | 'repo_commits_file': '/{repo_name}/commits/{commit_id}/{f_path}', |
|
|||
48 | 'pullrequest_show': '/{repo_name}/pull-request/{pull_request_id}', |
|
|||
49 | 'pullrequest_show_all': '/{repo_name}/pull-request', |
|
|||
50 | 'pullrequest_show_all_data': '/{repo_name}/pull-request-data', |
|
|||
51 | 'pullrequest_repo_refs': '/{repo_name}/pull-request/refs/{target_repo_name:.*?[^/]}', |
|
|||
52 | 'pullrequest_repo_targets': '/{repo_name}/pull-request/repo-destinations', |
|
|||
53 | 'pullrequest_new': '/{repo_name}/pull-request/new', |
|
|||
54 | 'pullrequest_create': '/{repo_name}/pull-request/create', |
|
|||
55 | 'pullrequest_update': '/{repo_name}/pull-request/{pull_request_id}/update', |
|
|||
56 | 'pullrequest_merge': '/{repo_name}/pull-request/{pull_request_id}/merge', |
|
|||
57 | 'pullrequest_delete': '/{repo_name}/pull-request/{pull_request_id}/delete', |
|
|||
58 | 'pullrequest_comment_create': '/{repo_name}/pull-request/{pull_request_id}/comment', |
|
|||
59 | 'pullrequest_comment_delete': '/{repo_name}/pull-request/{pull_request_id}/comment/{comment_id}/delete', |
|
|||
60 | 'pullrequest_comment_edit': '/{repo_name}/pull-request/{pull_request_id}/comment/{comment_id}/edit', |
|
|||
61 | }[name].format(**kwargs) |
|
|||
62 |
|
||||
63 | if params: |
|
|||
64 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
65 | return base_url |
|
|||
66 |
|
37 | |||
67 |
|
38 | |||
68 | @pytest.mark.usefixtures('app', 'autologin_user') |
|
39 | @pytest.mark.usefixtures('app', 'autologin_user') |
@@ -27,32 +27,11 b' from rhodecode.model.meta import Session' | |||||
27 | from rhodecode.tests import ( |
|
27 | from rhodecode.tests import ( | |
28 | TEST_USER_ADMIN_LOGIN, TEST_USER_REGULAR_LOGIN, assert_session_flash) |
|
28 | TEST_USER_ADMIN_LOGIN, TEST_USER_REGULAR_LOGIN, assert_session_flash) | |
29 | from rhodecode.tests.fixture import Fixture |
|
29 | from rhodecode.tests.fixture import Fixture | |
|
30 | from rhodecode.tests.routes import route_path | |||
30 |
|
31 | |||
31 | fixture = Fixture() |
|
32 | fixture = Fixture() | |
32 |
|
33 | |||
33 |
|
34 | |||
34 | def route_path(name, params=None, **kwargs): |
|
|||
35 | import urllib.request |
|
|||
36 | import urllib.parse |
|
|||
37 | import urllib.error |
|
|||
38 |
|
||||
39 | base_url = { |
|
|||
40 | 'edit_repo': '/{repo_name}/settings', |
|
|||
41 | 'edit_repo_advanced': '/{repo_name}/settings/advanced', |
|
|||
42 | 'edit_repo_caches': '/{repo_name}/settings/caches', |
|
|||
43 | 'edit_repo_perms': '/{repo_name}/settings/permissions', |
|
|||
44 | 'edit_repo_vcs': '/{repo_name}/settings/vcs', |
|
|||
45 | 'edit_repo_issuetracker': '/{repo_name}/settings/issue_trackers', |
|
|||
46 | 'edit_repo_fields': '/{repo_name}/settings/fields', |
|
|||
47 | 'edit_repo_remote': '/{repo_name}/settings/remote', |
|
|||
48 | 'edit_repo_statistics': '/{repo_name}/settings/statistics', |
|
|||
49 | }[name].format(**kwargs) |
|
|||
50 |
|
||||
51 | if params: |
|
|||
52 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
53 | return base_url |
|
|||
54 |
|
||||
55 |
|
||||
56 | def _get_permission_for_user(user, repo): |
|
35 | def _get_permission_for_user(user, repo): | |
57 | perm = UserRepoToPerm.query()\ |
|
36 | perm = UserRepoToPerm.query()\ | |
58 | .filter(UserRepoToPerm.repository == |
|
37 | .filter(UserRepoToPerm.repository == |
@@ -26,32 +26,11 b' from rhodecode.tests import (' | |||||
26 | HG_REPO, GIT_REPO, assert_session_flash, no_newline_id_generator) |
|
26 | HG_REPO, GIT_REPO, assert_session_flash, no_newline_id_generator) | |
27 | from rhodecode.tests.fixture import Fixture |
|
27 | from rhodecode.tests.fixture import Fixture | |
28 | from rhodecode.tests.utils import repo_on_filesystem |
|
28 | from rhodecode.tests.utils import repo_on_filesystem | |
|
29 | from rhodecode.tests.routes import route_path | |||
29 |
|
30 | |||
30 | fixture = Fixture() |
|
31 | fixture = Fixture() | |
31 |
|
32 | |||
32 |
|
33 | |||
33 | def route_path(name, params=None, **kwargs): |
|
|||
34 | import urllib.request |
|
|||
35 | import urllib.parse |
|
|||
36 | import urllib.error |
|
|||
37 |
|
||||
38 | base_url = { |
|
|||
39 | 'repo_summary_explicit': '/{repo_name}/summary', |
|
|||
40 | 'repo_summary': '/{repo_name}', |
|
|||
41 | 'edit_repo_advanced': '/{repo_name}/settings/advanced', |
|
|||
42 | 'edit_repo_advanced_delete': '/{repo_name}/settings/advanced/delete', |
|
|||
43 | 'edit_repo_advanced_archive': '/{repo_name}/settings/advanced/archive', |
|
|||
44 | 'edit_repo_advanced_fork': '/{repo_name}/settings/advanced/fork', |
|
|||
45 | 'edit_repo_advanced_locking': '/{repo_name}/settings/advanced/locking', |
|
|||
46 | 'edit_repo_advanced_journal': '/{repo_name}/settings/advanced/journal', |
|
|||
47 |
|
||||
48 | }[name].format(**kwargs) |
|
|||
49 |
|
||||
50 | if params: |
|
|||
51 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
52 | return base_url |
|
|||
53 |
|
||||
54 |
|
||||
55 | @pytest.mark.usefixtures('autologin_user', 'app') |
|
34 | @pytest.mark.usefixtures('autologin_user', 'app') | |
56 | class TestAdminRepoSettingsAdvanced(object): |
|
35 | class TestAdminRepoSettingsAdvanced(object): | |
57 |
|
36 |
@@ -34,29 +34,12 b' from rhodecode.model.scm import ScmModel' | |||||
34 | from rhodecode.tests import assert_session_flash |
|
34 | from rhodecode.tests import assert_session_flash | |
35 | from rhodecode.tests.fixture import Fixture |
|
35 | from rhodecode.tests.fixture import Fixture | |
36 | from rhodecode.tests.utils import AssertResponse, repo_on_filesystem |
|
36 | from rhodecode.tests.utils import AssertResponse, repo_on_filesystem | |
|
37 | from rhodecode.tests.routes import route_path | |||
37 |
|
38 | |||
38 |
|
39 | |||
39 | fixture = Fixture() |
|
40 | fixture = Fixture() | |
40 |
|
41 | |||
41 |
|
42 | |||
42 | def route_path(name, params=None, **kwargs): |
|
|||
43 | import urllib.request |
|
|||
44 | import urllib.parse |
|
|||
45 | import urllib.error |
|
|||
46 |
|
||||
47 | base_url = { |
|
|||
48 | 'repo_summary': '/{repo_name}', |
|
|||
49 | 'repo_stats': '/{repo_name}/repo_stats/{commit_id}', |
|
|||
50 | 'repo_refs_data': '/{repo_name}/refs-data', |
|
|||
51 | 'repo_refs_changelog_data': '/{repo_name}/refs-data-changelog', |
|
|||
52 | 'repo_creating_check': '/{repo_name}/repo_creating_check', |
|
|||
53 | }[name].format(**kwargs) |
|
|||
54 |
|
||||
55 | if params: |
|
|||
56 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
57 | return base_url |
|
|||
58 |
|
||||
59 |
|
||||
60 | def assert_clone_url(response, server, repo, disabled=False): |
|
43 | def assert_clone_url(response, server, repo, disabled=False): | |
61 |
|
44 | |||
62 | response.mustcontain( |
|
45 | response.mustcontain( |
@@ -19,20 +19,7 b'' | |||||
19 |
|
19 | |||
20 | import pytest |
|
20 | import pytest | |
21 | from rhodecode.model.db import Repository |
|
21 | from rhodecode.model.db import Repository | |
22 |
|
22 | from rhodecode.tests.routes import route_path | ||
23 |
|
||||
24 | def route_path(name, params=None, **kwargs): |
|
|||
25 | import urllib.request |
|
|||
26 | import urllib.parse |
|
|||
27 | import urllib.error |
|
|||
28 |
|
||||
29 | base_url = { |
|
|||
30 | 'tags_home': '/{repo_name}/tags', |
|
|||
31 | }[name].format(**kwargs) |
|
|||
32 |
|
||||
33 | if params: |
|
|||
34 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
35 | return base_url |
|
|||
36 |
|
23 | |||
37 |
|
24 | |||
38 | @pytest.mark.usefixtures('autologin_user', 'app') |
|
25 | @pytest.mark.usefixtures('autologin_user', 'app') |
@@ -32,29 +32,11 b' from rhodecode.tests import (' | |||||
32 | TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS) |
|
32 | TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS) | |
33 | from rhodecode.tests.fixture import Fixture |
|
33 | from rhodecode.tests.fixture import Fixture | |
34 | from rhodecode.tests.utils import AssertResponse |
|
34 | from rhodecode.tests.utils import AssertResponse | |
|
35 | from rhodecode.tests.routes import route_path | |||
35 |
|
36 | |||
36 | fixture = Fixture() |
|
37 | fixture = Fixture() | |
37 |
|
38 | |||
38 |
|
39 | |||
39 | def route_path(name, params=None, **kwargs): |
|
|||
40 | import urllib.request |
|
|||
41 | import urllib.parse |
|
|||
42 | import urllib.error |
|
|||
43 |
|
||||
44 | base_url = { |
|
|||
45 | 'repo_summary': '/{repo_name}', |
|
|||
46 | 'repo_creating_check': '/{repo_name}/repo_creating_check', |
|
|||
47 | 'edit_repo': '/{repo_name}/settings', |
|
|||
48 | 'edit_repo_vcs': '/{repo_name}/settings/vcs', |
|
|||
49 | 'edit_repo_vcs_update': '/{repo_name}/settings/vcs/update', |
|
|||
50 | 'edit_repo_vcs_svn_pattern_delete': '/{repo_name}/settings/vcs/svn_pattern/delete' |
|
|||
51 | }[name].format(**kwargs) |
|
|||
52 |
|
||||
53 | if params: |
|
|||
54 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
55 | return base_url |
|
|||
56 |
|
||||
57 |
|
||||
58 | @pytest.mark.usefixtures("app") |
|
40 | @pytest.mark.usefixtures("app") | |
59 | class TestVcsSettings(object): |
|
41 | class TestVcsSettings(object): | |
60 | FORM_DATA = { |
|
42 | FORM_DATA = { |
@@ -23,23 +23,7 b' import pytest' | |||||
23 | import rhodecode |
|
23 | import rhodecode | |
24 | from rhodecode.model.db import Repository |
|
24 | from rhodecode.model.db import Repository | |
25 | from rhodecode.model.settings import SettingsModel |
|
25 | from rhodecode.model.settings import SettingsModel | |
26 |
from rhodecode.tests. |
|
26 | from rhodecode.tests.routes import route_path | |
27 |
|
||||
28 |
|
||||
29 | def route_path(name, params=None, **kwargs): |
|
|||
30 | import urllib.request |
|
|||
31 | import urllib.parse |
|
|||
32 | import urllib.error |
|
|||
33 |
|
||||
34 | base_url = { |
|
|||
35 | 'edit_repo': '/{repo_name}/settings', |
|
|||
36 | 'edit_repo_vcs': '/{repo_name}/settings/vcs', |
|
|||
37 | 'edit_repo_vcs_update': '/{repo_name}/settings/vcs/update', |
|
|||
38 | }[name].format(**kwargs) |
|
|||
39 |
|
||||
40 | if params: |
|
|||
41 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
42 | return base_url |
|
|||
43 |
|
27 | |||
44 |
|
28 | |||
45 | @pytest.mark.usefixtures('autologin_user', 'app') |
|
29 | @pytest.mark.usefixtures('autologin_user', 'app') |
@@ -23,20 +23,9 b' import pytest' | |||||
23 | from whoosh import query |
|
23 | from whoosh import query | |
24 |
|
24 | |||
25 | from rhodecode.tests import ( |
|
25 | from rhodecode.tests import ( | |
26 |
TestController, |
|
26 | TestController, HG_REPO, | |
27 | TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS) |
|
27 | TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS) | |
28 |
from rhodecode.tests. |
|
28 | from rhodecode.tests.routes import route_path | |
29 |
|
||||
30 |
|
||||
31 | def route_path(name, params=None, **kwargs): |
|
|||
32 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
33 | url_defs = { |
|
|||
34 | 'search': |
|
|||
35 | ADMIN_PREFIX + '/search', |
|
|||
36 | 'search_repo': |
|
|||
37 | '/{repo_name}/search', |
|
|||
38 | } |
|
|||
39 | return route_path_generator(url_defs, name=name, params=params, **kwargs) |
|
|||
40 |
|
29 | |||
41 |
|
30 | |||
42 | class TestSearchController(TestController): |
|
31 | class TestSearchController(TestController): |
@@ -23,35 +23,11 b' from rhodecode.tests import (' | |||||
23 | from rhodecode.model.db import UserGroup |
|
23 | from rhodecode.model.db import UserGroup | |
24 | from rhodecode.model.meta import Session |
|
24 | from rhodecode.model.meta import Session | |
25 | from rhodecode.tests.fixture import Fixture |
|
25 | from rhodecode.tests.fixture import Fixture | |
|
26 | from rhodecode.tests.routes import route_path | |||
26 |
|
27 | |||
27 | fixture = Fixture() |
|
28 | fixture = Fixture() | |
28 |
|
29 | |||
29 |
|
30 | |||
30 | def route_path(name, params=None, **kwargs): |
|
|||
31 | import urllib.request |
|
|||
32 | import urllib.parse |
|
|||
33 | import urllib.error |
|
|||
34 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
35 |
|
||||
36 | base_url = { |
|
|||
37 | 'user_groups': ADMIN_PREFIX + '/user_groups', |
|
|||
38 | 'user_groups_data': ADMIN_PREFIX + '/user_groups_data', |
|
|||
39 | 'user_group_members_data': ADMIN_PREFIX + '/user_groups/{user_group_id}/members', |
|
|||
40 | 'user_groups_new': ADMIN_PREFIX + '/user_groups/new', |
|
|||
41 | 'user_groups_create': ADMIN_PREFIX + '/user_groups/create', |
|
|||
42 | 'edit_user_group': ADMIN_PREFIX + '/user_groups/{user_group_id}/edit', |
|
|||
43 | 'edit_user_group_advanced_sync': ADMIN_PREFIX + '/user_groups/{user_group_id}/edit/advanced/sync', |
|
|||
44 | 'edit_user_group_global_perms_update': ADMIN_PREFIX + '/user_groups/{user_group_id}/edit/global_permissions/update', |
|
|||
45 | 'user_groups_update': ADMIN_PREFIX + '/user_groups/{user_group_id}/update', |
|
|||
46 | 'user_groups_delete': ADMIN_PREFIX + '/user_groups/{user_group_id}/delete', |
|
|||
47 |
|
||||
48 | }[name].format(**kwargs) |
|
|||
49 |
|
||||
50 | if params: |
|
|||
51 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
52 | return base_url |
|
|||
53 |
|
||||
54 |
|
||||
55 | class TestUserGroupsView(TestController): |
|
31 | class TestUserGroupsView(TestController): | |
56 |
|
32 | |||
57 | def test_set_synchronization(self, user_util): |
|
33 | def test_set_synchronization(self, user_util): |
@@ -19,24 +19,7 b'' | |||||
19 | import pytest |
|
19 | import pytest | |
20 |
|
20 | |||
21 | from rhodecode.tests.utils import permission_update_data_generator |
|
21 | from rhodecode.tests.utils import permission_update_data_generator | |
22 |
|
22 | from rhodecode.tests.routes import route_path | ||
23 |
|
||||
24 | def route_path(name, params=None, **kwargs): |
|
|||
25 | import urllib.request |
|
|||
26 | import urllib.parse |
|
|||
27 | import urllib.error |
|
|||
28 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
29 |
|
||||
30 | base_url = { |
|
|||
31 | 'edit_user_group_perms': |
|
|||
32 | ADMIN_PREFIX + '/user_groups/{user_group_id}/edit/permissions', |
|
|||
33 | 'edit_user_group_perms_update': |
|
|||
34 | ADMIN_PREFIX + '/user_groups/{user_group_id}/edit/permissions/update', |
|
|||
35 | }[name].format(**kwargs) |
|
|||
36 |
|
||||
37 | if params: |
|
|||
38 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
39 | return base_url |
|
|||
40 |
|
23 | |||
41 |
|
24 | |||
42 | @pytest.mark.usefixtures("app") |
|
25 | @pytest.mark.usefixtures("app") |
@@ -19,15 +19,11 b' from rhodecode.model.user_group import U' | |||||
19 | from rhodecode.tests import ( |
|
19 | from rhodecode.tests import ( | |
20 | TestController, TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS) |
|
20 | TestController, TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS) | |
21 | from rhodecode.tests.fixture import Fixture |
|
21 | from rhodecode.tests.fixture import Fixture | |
22 |
from rhodecode.tests. |
|
22 | from rhodecode.tests.routes import route_path | |
23 |
|
23 | |||
24 | fixture = Fixture() |
|
24 | fixture = Fixture() | |
25 |
|
25 | |||
26 |
|
26 | |||
27 | def route_path(name, **kwargs): |
|
|||
28 | return '/_profile_user_group/{user_group_name}'.format(**kwargs) |
|
|||
29 |
|
||||
30 |
|
||||
31 | class TestUsersController(TestController): |
|
27 | class TestUsersController(TestController): | |
32 |
|
28 | |||
33 | def test_user_group_profile(self, user_util): |
|
29 | def test_user_group_profile(self, user_util): |
@@ -24,14 +24,11 b' from rhodecode.tests import (' | |||||
24 | TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS) |
|
24 | TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS) | |
25 | from rhodecode.tests.fixture import Fixture |
|
25 | from rhodecode.tests.fixture import Fixture | |
26 | from rhodecode.tests.utils import AssertResponse |
|
26 | from rhodecode.tests.utils import AssertResponse | |
|
27 | from rhodecode.tests.routes import route_path | |||
27 |
|
28 | |||
28 | fixture = Fixture() |
|
29 | fixture = Fixture() | |
29 |
|
30 | |||
30 |
|
31 | |||
31 | def route_path(name, **kwargs): |
|
|||
32 | return '/_profiles/{username}'.format(**kwargs) |
|
|||
33 |
|
||||
34 |
|
||||
35 | class TestUsersController(TestController): |
|
32 | class TestUsersController(TestController): | |
36 |
|
33 | |||
37 | def test_user_profile(self, user_util): |
|
34 | def test_user_profile(self, user_util): |
@@ -258,6 +258,8 b' def error_handler(exception, request):' | |||||
258 | '/errors/error_document.mako', {'c': c, 'h': helpers}, request=request, |
|
258 | '/errors/error_document.mako', {'c': c, 'h': helpers}, request=request, | |
259 | response=base_response) |
|
259 | response=base_response) | |
260 |
|
260 | |||
|
261 | response.headers["X-RC-Exception-Id"] = str(c.exception_id) | |||
|
262 | ||||
261 | statsd = request.registry.statsd |
|
263 | statsd = request.registry.statsd | |
262 | if statsd and base_response.status_code > 499: |
|
264 | if statsd and base_response.status_code > 499: | |
263 | exc_type = f"{exception.__class__.__module__}.{exception.__class__.__name__}" |
|
265 | exc_type = f"{exception.__class__.__module__}.{exception.__class__.__name__}" |
@@ -22,12 +22,7 b' from rhodecode.apps._base import ADMIN_P' | |||||
22 | from rhodecode.model.db import Integration |
|
22 | from rhodecode.model.db import Integration | |
23 | from rhodecode.model.meta import Session |
|
23 | from rhodecode.model.meta import Session | |
24 | from rhodecode.integrations import integration_type_registry |
|
24 | from rhodecode.integrations import integration_type_registry | |
25 |
|
25 | from rhodecode.tests.routes import route_path | ||
26 |
|
||||
27 | def route_path(name, **kwargs): |
|
|||
28 | return { |
|
|||
29 | 'home': '/', |
|
|||
30 | }[name].format(**kwargs) |
|
|||
31 |
|
26 | |||
32 |
|
27 | |||
33 | def _post_integration_test_helper(app, url, csrf_token, repo, repo_group, |
|
28 | def _post_integration_test_helper(app, url, csrf_token, repo, repo_group, |
@@ -12,16 +12,14 b'' | |||||
12 | ******************************************************************************/ |
|
12 | ******************************************************************************/ | |
13 | function registerRCRoutes() { |
|
13 | function registerRCRoutes() { | |
14 | // routes registration |
|
14 | // routes registration | |
15 | pyroutes.register('admin_artifacts', '/_admin/artifacts', []); |
|
15 | pyroutes.register('admin_artifacts', '/_admin/_admin/artifacts', []); | |
16 |
pyroutes.register('admin_artifacts_d |
|
16 | pyroutes.register('admin_artifacts_delete', '/_admin/_admin/artifacts/%(uid)s/delete', ['uid']); | |
17 |
pyroutes.register('admin_artifacts_ |
|
17 | pyroutes.register('admin_artifacts_show_all', '/_admin/_admin/artifacts', []); | |
18 |
pyroutes.register('admin_artifacts_show_ |
|
18 | pyroutes.register('admin_artifacts_show_info', '/_admin/_admin/artifacts/%(uid)s', ['uid']); | |
19 |
pyroutes.register('admin_artifacts_ |
|
19 | pyroutes.register('admin_artifacts_update', '/_admin/_admin/artifacts/%(uid)s/update', ['uid']); | |
20 | pyroutes.register('admin_artifacts_update', '/_admin/artifacts/%(uid)s/update', ['uid']); |
|
|||
21 | pyroutes.register('admin_audit_log_entry', '/_admin/audit_logs/%(audit_log_id)s', ['audit_log_id']); |
|
20 | pyroutes.register('admin_audit_log_entry', '/_admin/audit_logs/%(audit_log_id)s', ['audit_log_id']); | |
22 | pyroutes.register('admin_audit_logs', '/_admin/audit_logs', []); |
|
21 | pyroutes.register('admin_audit_logs', '/_admin/audit_logs', []); | |
23 | pyroutes.register('admin_automation', '/_admin/automation', []); |
|
22 | pyroutes.register('admin_automation', '/_admin/_admin/automation', []); | |
24 | pyroutes.register('admin_automation_update', '/_admin/automation/%(entry_id)s/update', ['entry_id']); |
|
|||
25 | pyroutes.register('admin_defaults_repositories', '/_admin/defaults/repositories', []); |
|
23 | pyroutes.register('admin_defaults_repositories', '/_admin/defaults/repositories', []); | |
26 | pyroutes.register('admin_defaults_repositories_update', '/_admin/defaults/repositories/update', []); |
|
24 | pyroutes.register('admin_defaults_repositories_update', '/_admin/defaults/repositories/update', []); | |
27 | pyroutes.register('admin_home', '/_admin', []); |
|
25 | pyroutes.register('admin_home', '/_admin', []); | |
@@ -29,7 +27,6 b' function registerRCRoutes() {' | |||||
29 | pyroutes.register('admin_permissions_application_update', '/_admin/permissions/application/update', []); |
|
27 | pyroutes.register('admin_permissions_application_update', '/_admin/permissions/application/update', []); | |
30 | pyroutes.register('admin_permissions_auth_token_access', '/_admin/permissions/auth_token_access', []); |
|
28 | pyroutes.register('admin_permissions_auth_token_access', '/_admin/permissions/auth_token_access', []); | |
31 | pyroutes.register('admin_permissions_branch', '/_admin/permissions/branch', []); |
|
29 | pyroutes.register('admin_permissions_branch', '/_admin/permissions/branch', []); | |
32 | pyroutes.register('admin_permissions_branch_update', '/_admin/permissions/branch/update', []); |
|
|||
33 | pyroutes.register('admin_permissions_global', '/_admin/permissions/global', []); |
|
30 | pyroutes.register('admin_permissions_global', '/_admin/permissions/global', []); | |
34 | pyroutes.register('admin_permissions_global_update', '/_admin/permissions/global/update', []); |
|
31 | pyroutes.register('admin_permissions_global_update', '/_admin/permissions/global/update', []); | |
35 | pyroutes.register('admin_permissions_ips', '/_admin/permissions/ips', []); |
|
32 | pyroutes.register('admin_permissions_ips', '/_admin/permissions/ips', []); | |
@@ -39,8 +36,7 b' function registerRCRoutes() {' | |||||
39 | pyroutes.register('admin_permissions_ssh_keys', '/_admin/permissions/ssh_keys', []); |
|
36 | pyroutes.register('admin_permissions_ssh_keys', '/_admin/permissions/ssh_keys', []); | |
40 | pyroutes.register('admin_permissions_ssh_keys_data', '/_admin/permissions/ssh_keys/data', []); |
|
37 | pyroutes.register('admin_permissions_ssh_keys_data', '/_admin/permissions/ssh_keys/data', []); | |
41 | pyroutes.register('admin_permissions_ssh_keys_update', '/_admin/permissions/ssh_keys/update', []); |
|
38 | pyroutes.register('admin_permissions_ssh_keys_update', '/_admin/permissions/ssh_keys/update', []); | |
42 | pyroutes.register('admin_scheduler', '/_admin/scheduler', []); |
|
39 | pyroutes.register('admin_scheduler', '/_admin/_admin/scheduler', []); | |
43 | pyroutes.register('admin_scheduler_show_tasks', '/_admin/scheduler/_tasks', []); |
|
|||
44 | pyroutes.register('admin_settings', '/_admin/settings', []); |
|
40 | pyroutes.register('admin_settings', '/_admin/settings', []); | |
45 | pyroutes.register('admin_settings_email', '/_admin/settings/email', []); |
|
41 | pyroutes.register('admin_settings_email', '/_admin/settings/email', []); | |
46 | pyroutes.register('admin_settings_email_update', '/_admin/settings/email/update', []); |
|
42 | pyroutes.register('admin_settings_email_update', '/_admin/settings/email/update', []); | |
@@ -59,8 +55,6 b' function registerRCRoutes() {' | |||||
59 | pyroutes.register('admin_settings_issuetracker_update', '/_admin/settings/issue-tracker/update', []); |
|
55 | pyroutes.register('admin_settings_issuetracker_update', '/_admin/settings/issue-tracker/update', []); | |
60 | pyroutes.register('admin_settings_labs', '/_admin/settings/labs', []); |
|
56 | pyroutes.register('admin_settings_labs', '/_admin/settings/labs', []); | |
61 | pyroutes.register('admin_settings_labs_update', '/_admin/settings/labs/update', []); |
|
57 | pyroutes.register('admin_settings_labs_update', '/_admin/settings/labs/update', []); | |
62 | pyroutes.register('admin_settings_license', '/_admin/settings/license', []); |
|
|||
63 | pyroutes.register('admin_settings_license_unlock', '/_admin/settings/license_unlock', []); |
|
|||
64 | pyroutes.register('admin_settings_mapping', '/_admin/settings/mapping', []); |
|
58 | pyroutes.register('admin_settings_mapping', '/_admin/settings/mapping', []); | |
65 | pyroutes.register('admin_settings_mapping_update', '/_admin/settings/mapping/update', []); |
|
59 | pyroutes.register('admin_settings_mapping_update', '/_admin/settings/mapping/update', []); | |
66 | pyroutes.register('admin_settings_open_source', '/_admin/settings/open_source', []); |
|
60 | pyroutes.register('admin_settings_open_source', '/_admin/settings/open_source', []); | |
@@ -68,12 +62,6 b' function registerRCRoutes() {' | |||||
68 | pyroutes.register('admin_settings_process_management_data', '/_admin/settings/process_management/data', []); |
|
62 | pyroutes.register('admin_settings_process_management_data', '/_admin/settings/process_management/data', []); | |
69 | pyroutes.register('admin_settings_process_management_master_signal', '/_admin/settings/process_management/master_signal', []); |
|
63 | pyroutes.register('admin_settings_process_management_master_signal', '/_admin/settings/process_management/master_signal', []); | |
70 | pyroutes.register('admin_settings_process_management_signal', '/_admin/settings/process_management/signal', []); |
|
64 | pyroutes.register('admin_settings_process_management_signal', '/_admin/settings/process_management/signal', []); | |
71 | pyroutes.register('admin_settings_scheduler_create', '/_admin/scheduler/create', []); |
|
|||
72 | pyroutes.register('admin_settings_scheduler_delete', '/_admin/scheduler/%(schedule_id)s/delete', ['schedule_id']); |
|
|||
73 | pyroutes.register('admin_settings_scheduler_edit', '/_admin/scheduler/%(schedule_id)s', ['schedule_id']); |
|
|||
74 | pyroutes.register('admin_settings_scheduler_execute', '/_admin/scheduler/%(schedule_id)s/execute', ['schedule_id']); |
|
|||
75 | pyroutes.register('admin_settings_scheduler_new', '/_admin/scheduler/new', []); |
|
|||
76 | pyroutes.register('admin_settings_scheduler_update', '/_admin/scheduler/%(schedule_id)s/update', ['schedule_id']); |
|
|||
77 | pyroutes.register('admin_settings_search', '/_admin/settings/search', []); |
|
65 | pyroutes.register('admin_settings_search', '/_admin/settings/search', []); | |
78 | pyroutes.register('admin_settings_sessions', '/_admin/settings/sessions', []); |
|
66 | pyroutes.register('admin_settings_sessions', '/_admin/settings/sessions', []); | |
79 | pyroutes.register('admin_settings_sessions_cleanup', '/_admin/settings/sessions/cleanup', []); |
|
67 | pyroutes.register('admin_settings_sessions_cleanup', '/_admin/settings/sessions/cleanup', []); | |
@@ -95,7 +83,6 b' function registerRCRoutes() {' | |||||
95 | pyroutes.register('channelstream_connect', '/_admin/channelstream/connect', []); |
|
83 | pyroutes.register('channelstream_connect', '/_admin/channelstream/connect', []); | |
96 | pyroutes.register('channelstream_proxy', '/_channelstream', []); |
|
84 | pyroutes.register('channelstream_proxy', '/_channelstream', []); | |
97 | pyroutes.register('channelstream_subscribe', '/_admin/channelstream/subscribe', []); |
|
85 | pyroutes.register('channelstream_subscribe', '/_admin/channelstream/subscribe', []); | |
98 | pyroutes.register('commit_draft_comments_submit', '/%(repo_name)s/changeset/%(commit_id)s/draft_comments_submit', ['repo_name', 'commit_id']); |
|
|||
99 | pyroutes.register('debug_style_email', '/_admin/debug_style/email/%(email_id)s', ['email_id']); |
|
86 | pyroutes.register('debug_style_email', '/_admin/debug_style/email/%(email_id)s', ['email_id']); | |
100 | pyroutes.register('debug_style_email_plain_rendered', '/_admin/debug_style/email-rendered/%(email_id)s', ['email_id']); |
|
87 | pyroutes.register('debug_style_email_plain_rendered', '/_admin/debug_style/email-rendered/%(email_id)s', ['email_id']); | |
101 | pyroutes.register('debug_style_home', '/_admin/debug_style', []); |
|
88 | pyroutes.register('debug_style_home', '/_admin/debug_style', []); | |
@@ -218,8 +205,6 b' function registerRCRoutes() {' | |||||
218 | pyroutes.register('my_account_emails', '/_admin/my_account/emails', []); |
|
205 | pyroutes.register('my_account_emails', '/_admin/my_account/emails', []); | |
219 | pyroutes.register('my_account_emails_add', '/_admin/my_account/emails/new', []); |
|
206 | pyroutes.register('my_account_emails_add', '/_admin/my_account/emails/new', []); | |
220 | pyroutes.register('my_account_emails_delete', '/_admin/my_account/emails/delete', []); |
|
207 | pyroutes.register('my_account_emails_delete', '/_admin/my_account/emails/delete', []); | |
221 | pyroutes.register('my_account_external_identity', '/_admin/my_account/external-identity', []); |
|
|||
222 | pyroutes.register('my_account_external_identity_delete', '/_admin/my_account/external-identity/delete', []); |
|
|||
223 | pyroutes.register('my_account_goto_bookmark', '/_admin/my_account/bookmark/%(bookmark_id)s', ['bookmark_id']); |
|
208 | pyroutes.register('my_account_goto_bookmark', '/_admin/my_account/bookmark/%(bookmark_id)s', ['bookmark_id']); | |
224 | pyroutes.register('my_account_notifications', '/_admin/my_account/notifications', []); |
|
209 | pyroutes.register('my_account_notifications', '/_admin/my_account/notifications', []); | |
225 | pyroutes.register('my_account_notifications_test_channelstream', '/_admin/my_account/test_channelstream', []); |
|
210 | pyroutes.register('my_account_notifications_test_channelstream', '/_admin/my_account/test_channelstream', []); | |
@@ -247,7 +232,6 b' function registerRCRoutes() {' | |||||
247 | pyroutes.register('ops_healthcheck', '/_admin/ops/status', []); |
|
232 | pyroutes.register('ops_healthcheck', '/_admin/ops/status', []); | |
248 | pyroutes.register('ops_ping', '/_admin/ops/ping', []); |
|
233 | pyroutes.register('ops_ping', '/_admin/ops/ping', []); | |
249 | pyroutes.register('ops_redirect_test', '/_admin/ops/redirect', []); |
|
234 | pyroutes.register('ops_redirect_test', '/_admin/ops/redirect', []); | |
250 | pyroutes.register('plugin_admin_chat', '/_admin/plugin_admin_chat/%(action)s', ['action']); |
|
|||
251 | pyroutes.register('pull_requests_global', '/_admin/pull-request/%(pull_request_id)s', ['pull_request_id']); |
|
235 | pyroutes.register('pull_requests_global', '/_admin/pull-request/%(pull_request_id)s', ['pull_request_id']); | |
252 | pyroutes.register('pull_requests_global_0', '/_admin/pull_requests/%(pull_request_id)s', ['pull_request_id']); |
|
236 | pyroutes.register('pull_requests_global_0', '/_admin/pull_requests/%(pull_request_id)s', ['pull_request_id']); | |
253 | pyroutes.register('pull_requests_global_1', '/_admin/pull-requests/%(pull_request_id)s', ['pull_request_id']); |
|
237 | pyroutes.register('pull_requests_global_1', '/_admin/pull-requests/%(pull_request_id)s', ['pull_request_id']); | |
@@ -257,7 +241,6 b' function registerRCRoutes() {' | |||||
257 | pyroutes.register('pullrequest_comments', '/%(repo_name)s/pull-request/%(pull_request_id)s/comments', ['repo_name', 'pull_request_id']); |
|
241 | pyroutes.register('pullrequest_comments', '/%(repo_name)s/pull-request/%(pull_request_id)s/comments', ['repo_name', 'pull_request_id']); | |
258 | pyroutes.register('pullrequest_create', '/%(repo_name)s/pull-request/create', ['repo_name']); |
|
242 | pyroutes.register('pullrequest_create', '/%(repo_name)s/pull-request/create', ['repo_name']); | |
259 | pyroutes.register('pullrequest_delete', '/%(repo_name)s/pull-request/%(pull_request_id)s/delete', ['repo_name', 'pull_request_id']); |
|
243 | pyroutes.register('pullrequest_delete', '/%(repo_name)s/pull-request/%(pull_request_id)s/delete', ['repo_name', 'pull_request_id']); | |
260 | pyroutes.register('pullrequest_draft_comments_submit', '/%(repo_name)s/pull-request/%(pull_request_id)s/draft_comments_submit', ['repo_name', 'pull_request_id']); |
|
|||
261 | pyroutes.register('pullrequest_drafts', '/%(repo_name)s/pull-request/%(pull_request_id)s/drafts', ['repo_name', 'pull_request_id']); |
|
244 | pyroutes.register('pullrequest_drafts', '/%(repo_name)s/pull-request/%(pull_request_id)s/drafts', ['repo_name', 'pull_request_id']); | |
262 | pyroutes.register('pullrequest_merge', '/%(repo_name)s/pull-request/%(pull_request_id)s/merge', ['repo_name', 'pull_request_id']); |
|
245 | pyroutes.register('pullrequest_merge', '/%(repo_name)s/pull-request/%(pull_request_id)s/merge', ['repo_name', 'pull_request_id']); | |
263 | pyroutes.register('pullrequest_new', '/%(repo_name)s/pull-request/new', ['repo_name']); |
|
246 | pyroutes.register('pullrequest_new', '/%(repo_name)s/pull-request/new', ['repo_name']); | |
@@ -270,18 +253,8 b' function registerRCRoutes() {' | |||||
270 | pyroutes.register('pullrequest_update', '/%(repo_name)s/pull-request/%(pull_request_id)s/update', ['repo_name', 'pull_request_id']); |
|
253 | pyroutes.register('pullrequest_update', '/%(repo_name)s/pull-request/%(pull_request_id)s/update', ['repo_name', 'pull_request_id']); | |
271 | pyroutes.register('register', '/_admin/register', []); |
|
254 | pyroutes.register('register', '/_admin/register', []); | |
272 | pyroutes.register('repo_archivefile', '/%(repo_name)s/archive/%(fname)s', ['repo_name', 'fname']); |
|
255 | pyroutes.register('repo_archivefile', '/%(repo_name)s/archive/%(fname)s', ['repo_name', 'fname']); | |
273 | pyroutes.register('repo_artifacts_data', '/%(repo_name)s/artifacts_data', ['repo_name']); |
|
|||
274 | pyroutes.register('repo_artifacts_delete', '/%(repo_name)s/artifacts/delete/%(uid)s', ['repo_name', 'uid']); |
|
|||
275 | pyroutes.register('repo_artifacts_get', '/%(repo_name)s/artifacts/download/%(uid)s', ['repo_name', 'uid']); |
|
|||
276 | pyroutes.register('repo_artifacts_info', '/%(repo_name)s/artifacts/info/%(uid)s', ['repo_name', 'uid']); |
|
|||
277 | pyroutes.register('repo_artifacts_list', '/%(repo_name)s/artifacts', ['repo_name']); |
|
256 | pyroutes.register('repo_artifacts_list', '/%(repo_name)s/artifacts', ['repo_name']); | |
278 | pyroutes.register('repo_artifacts_new', '/%(repo_name)s/artifacts/new', ['repo_name']); |
|
|||
279 | pyroutes.register('repo_artifacts_store', '/%(repo_name)s/artifacts/store', ['repo_name']); |
|
|||
280 | pyroutes.register('repo_artifacts_stream_script', '/_file_store/stream-upload-script', []); |
|
|||
281 | pyroutes.register('repo_artifacts_stream_store', '/_file_store/stream-upload', []); |
|
|||
282 | pyroutes.register('repo_artifacts_update', '/%(repo_name)s/artifacts/update/%(uid)s', ['repo_name', 'uid']); |
|
|||
283 | pyroutes.register('repo_automation', '/%(repo_name)s/settings/automation', ['repo_name']); |
|
257 | pyroutes.register('repo_automation', '/%(repo_name)s/settings/automation', ['repo_name']); | |
284 | pyroutes.register('repo_automation_update', '/%(repo_name)s/settings/automation/%(entry_id)s/update', ['repo_name', 'entry_id']); |
|
|||
285 | pyroutes.register('repo_changelog', '/%(repo_name)s/changelog', ['repo_name']); |
|
258 | pyroutes.register('repo_changelog', '/%(repo_name)s/changelog', ['repo_name']); | |
286 | pyroutes.register('repo_changelog_file', '/%(repo_name)s/changelog/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']); |
|
259 | pyroutes.register('repo_changelog_file', '/%(repo_name)s/changelog/%(commit_id)s/%(f_path)s', ['repo_name', 'commit_id', 'f_path']); | |
287 | pyroutes.register('repo_commit', '/%(repo_name)s/changeset/%(commit_id)s', ['repo_name', 'commit_id']); |
|
260 | pyroutes.register('repo_commit', '/%(repo_name)s/changeset/%(commit_id)s', ['repo_name', 'commit_id']); | |
@@ -358,9 +331,6 b' function registerRCRoutes() {' | |||||
358 | pyroutes.register('repo_refs_changelog_data', '/%(repo_name)s/refs-data-changelog', ['repo_name']); |
|
331 | pyroutes.register('repo_refs_changelog_data', '/%(repo_name)s/refs-data-changelog', ['repo_name']); | |
359 | pyroutes.register('repo_refs_data', '/%(repo_name)s/refs-data', ['repo_name']); |
|
332 | pyroutes.register('repo_refs_data', '/%(repo_name)s/refs-data', ['repo_name']); | |
360 | pyroutes.register('repo_reviewers', '/%(repo_name)s/settings/review/rules', ['repo_name']); |
|
333 | pyroutes.register('repo_reviewers', '/%(repo_name)s/settings/review/rules', ['repo_name']); | |
361 | pyroutes.register('repo_reviewers_review_rule_delete', '/%(repo_name)s/settings/review/rules/%(rule_id)s/delete', ['repo_name', 'rule_id']); |
|
|||
362 | pyroutes.register('repo_reviewers_review_rule_edit', '/%(repo_name)s/settings/review/rules/%(rule_id)s', ['repo_name', 'rule_id']); |
|
|||
363 | pyroutes.register('repo_reviewers_review_rule_new', '/%(repo_name)s/settings/review/rules/new', ['repo_name']); |
|
|||
364 | pyroutes.register('repo_settings_quick_actions', '/%(repo_name)s/settings/quick-action', ['repo_name']); |
|
334 | pyroutes.register('repo_settings_quick_actions', '/%(repo_name)s/settings/quick-action', ['repo_name']); | |
365 | pyroutes.register('repo_stats', '/%(repo_name)s/repo_stats/%(commit_id)s', ['repo_name', 'commit_id']); |
|
335 | pyroutes.register('repo_stats', '/%(repo_name)s/repo_stats/%(commit_id)s', ['repo_name', 'commit_id']); | |
366 | pyroutes.register('repo_summary', '/%(repo_name)s', ['repo_name']); |
|
336 | pyroutes.register('repo_summary', '/%(repo_name)s', ['repo_name']); |
@@ -37,7 +37,7 b' from rhodecode.lib.hash_utils import sha' | |||||
37 | log = logging.getLogger(__name__) |
|
37 | log = logging.getLogger(__name__) | |
38 |
|
38 | |||
39 | __all__ = [ |
|
39 | __all__ = [ | |
40 |
'get_new_dir', 'TestController', |
|
40 | 'get_new_dir', 'TestController', | |
41 | 'clear_cache_regions', |
|
41 | 'clear_cache_regions', | |
42 | 'assert_session_flash', 'login_user', 'no_newline_id_generator', |
|
42 | 'assert_session_flash', 'login_user', 'no_newline_id_generator', | |
43 | 'TESTS_TMP_PATH', 'HG_REPO', 'GIT_REPO', 'SVN_REPO', |
|
43 | 'TESTS_TMP_PATH', 'HG_REPO', 'GIT_REPO', 'SVN_REPO', | |
@@ -242,11 +242,3 b' def no_newline_id_generator(test_name):' | |||||
242 |
|
242 | |||
243 | return test_name or 'test-with-empty-name' |
|
243 | return test_name or 'test-with-empty-name' | |
244 |
|
244 | |||
245 |
|
||||
246 | def route_path_generator(url_defs, name, params=None, **kwargs): |
|
|||
247 |
|
||||
248 | base_url = url_defs[name].format(**kwargs) |
|
|||
249 |
|
||||
250 | if params: |
|
|||
251 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
252 | return base_url |
|
@@ -22,34 +22,7 b' import pytest' | |||||
22 |
|
22 | |||
23 | from rhodecode.tests import TestController |
|
23 | from rhodecode.tests import TestController | |
24 | from rhodecode.tests.fixture import Fixture |
|
24 | from rhodecode.tests.fixture import Fixture | |
25 |
|
25 | from rhodecode.tests.routes import route_path | ||
26 |
|
||||
27 | def route_path(name, params=None, **kwargs): |
|
|||
28 | import urllib.request |
|
|||
29 | import urllib.parse |
|
|||
30 | import urllib.error |
|
|||
31 | from rhodecode.apps._base import ADMIN_PREFIX |
|
|||
32 |
|
||||
33 | base_url = { |
|
|||
34 | 'home': '/', |
|
|||
35 | 'admin_home': ADMIN_PREFIX, |
|
|||
36 | 'repos': |
|
|||
37 | ADMIN_PREFIX + '/repos', |
|
|||
38 | 'repos_data': |
|
|||
39 | ADMIN_PREFIX + '/repos_data', |
|
|||
40 | 'repo_groups': |
|
|||
41 | ADMIN_PREFIX + '/repo_groups', |
|
|||
42 | 'repo_groups_data': |
|
|||
43 | ADMIN_PREFIX + '/repo_groups_data', |
|
|||
44 | 'user_groups': |
|
|||
45 | ADMIN_PREFIX + '/user_groups', |
|
|||
46 | 'user_groups_data': |
|
|||
47 | ADMIN_PREFIX + '/user_groups_data', |
|
|||
48 | }[name].format(**kwargs) |
|
|||
49 |
|
||||
50 | if params: |
|
|||
51 | base_url = '{}?{}'.format(base_url, urllib.parse.urlencode(params)) |
|
|||
52 | return base_url |
|
|||
53 |
|
26 | |||
54 |
|
27 | |||
55 | fixture = Fixture() |
|
28 | fixture = Fixture() |
@@ -21,12 +21,7 b' import mock' | |||||
21 | import pytest |
|
21 | import pytest | |
22 |
|
22 | |||
23 | from rhodecode.tests import TEST_USER_ADMIN_LOGIN |
|
23 | from rhodecode.tests import TEST_USER_ADMIN_LOGIN | |
24 |
|
24 | from rhodecode.tests.routes import route_path | ||
25 |
|
||||
26 | def route_path(name, **kwargs): |
|
|||
27 | return { |
|
|||
28 | 'home': '/', |
|
|||
29 | }[name].format(**kwargs) |
|
|||
30 |
|
25 | |||
31 |
|
26 | |||
32 | class TestSessionBehaviorOnPasswordChange(object): |
|
27 | class TestSessionBehaviorOnPasswordChange(object): |
General Comments 0
You need to be logged in to leave comments.
Login now