Mercurial > kallithea
annotate kallithea/tests/fixture.py @ 8942:f2dc57c123cf stable
repo: introduce enable_downloads and enable_statistics when creating repos
These booleans were not shown in the normal repo creation form, so the form
validation applied the "default" values of False. These values were however not
used by the model when creating repos - it just unconditionally used the real
global defaults.
The API already exposed some of this, but it wasn't implemented.
The web form for creating repos lacked these fields, but it was present in the
repo edit form. Just make these fields mandatory. There will thus not be any
defaults to apply in the model for creating repos.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Mon, 12 Dec 2022 00:25:22 +0100 |
parents | 3672a8e4584a |
children | a136383459ef |
rev | line source |
---|---|
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
1 # -*- coding: utf-8 -*- |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
2 # This program is free software: you can redistribute it and/or modify |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
3 # it under the terms of the GNU General Public License as published by |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
4 # the Free Software Foundation, either version 3 of the License, or |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
5 # (at your option) any later version. |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
6 # |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
7 # This program is distributed in the hope that it will be useful, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
8 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
10 # GNU General Public License for more details. |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
11 # |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
12 # You should have received a copy of the GNU General Public License |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
13 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
14 |
3642
749dfd6b6e95
added new fixture classes
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
15 """ |
749dfd6b6e95
added new fixture classes
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
16 Helpers for fixture generation |
749dfd6b6e95
added new fixture classes
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
17 """ |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
18 |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
19 import logging |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
20 import os |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
21 import shutil |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
22 import tarfile |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
23 from os.path import dirname |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
24 |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6652
diff
changeset
|
25 from tg import request |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6652
diff
changeset
|
26 from tg.util.webtest import test_context |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6652
diff
changeset
|
27 |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6652
diff
changeset
|
28 from kallithea.lib.auth import AuthUser |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
29 from kallithea.lib.db_manage import DbManage |
8728
f3fab7b124f2
imports: try to use global imports unless it is a layering violation
Mads Kiilerich <mads@kiilerich.com>
parents:
8718
diff
changeset
|
30 from kallithea.lib.indexers.daemon import WhooshIndexingDaemon |
f3fab7b124f2
imports: try to use global imports unless it is a layering violation
Mads Kiilerich <mads@kiilerich.com>
parents:
8718
diff
changeset
|
31 from kallithea.lib.pidlock import DaemonLock |
4842
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
32 from kallithea.lib.vcs.backends.base import EmptyChangeset |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
33 from kallithea.model import db, meta |
7811
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7730
diff
changeset
|
34 from kallithea.model.changeset_status import ChangesetStatusModel |
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7730
diff
changeset
|
35 from kallithea.model.comment import ChangesetCommentsModel |
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7730
diff
changeset
|
36 from kallithea.model.gist import GistModel |
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7730
diff
changeset
|
37 from kallithea.model.pull_request import CreatePullRequestAction # , CreatePullRequestIterationAction, PullRequestModel |
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7730
diff
changeset
|
38 from kallithea.model.repo import RepoModel |
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7730
diff
changeset
|
39 from kallithea.model.repo_group import RepoGroupModel |
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7730
diff
changeset
|
40 from kallithea.model.scm import ScmModel |
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7730
diff
changeset
|
41 from kallithea.model.user import UserModel |
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7730
diff
changeset
|
42 from kallithea.model.user_group import UserGroupModel |
8674
30aac95e7fd5
db_manage: clarify that the purpose of admin_prompt is to create the admin user
Mads Kiilerich <mads@kiilerich.com>
parents:
8593
diff
changeset
|
43 from kallithea.tests.base import (GIT_REPO, HG_REPO, IP_ADDR, TEST_USER_ADMIN_EMAIL, TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_PASS, TEST_USER_REGULAR2_EMAIL, |
30aac95e7fd5
db_manage: clarify that the purpose of admin_prompt is to create the admin user
Mads Kiilerich <mads@kiilerich.com>
parents:
8593
diff
changeset
|
44 TEST_USER_REGULAR2_LOGIN, TEST_USER_REGULAR2_PASS, TEST_USER_REGULAR_EMAIL, TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS, |
30aac95e7fd5
db_manage: clarify that the purpose of admin_prompt is to create the admin user
Mads Kiilerich <mads@kiilerich.com>
parents:
8593
diff
changeset
|
45 TESTS_TMP_PATH, invalidate_all_caches) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
46 |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
47 |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
48 log = logging.getLogger(__name__) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
49 |
5998
037efd94e955
cleanup: get rid of dn as shortcut for os.path.dirname
domruf <dominikruf@gmail.com>
parents:
5768
diff
changeset
|
50 FIXTURES = os.path.join(dirname(dirname(os.path.abspath(__file__))), 'tests', 'fixtures') |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
51 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
52 |
8585
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8288
diff
changeset
|
53 def raise_exception(*args, **kwargs): |
1de3e5d104bf
tests: consistent use of more helpful raise_exception "fixture"
Mads Kiilerich <mads@kiilerich.com>
parents:
8288
diff
changeset
|
54 raise Exception('raise_exception raised exception') |
3642
749dfd6b6e95
added new fixture classes
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
55 |
749dfd6b6e95
added new fixture classes
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
56 |
749dfd6b6e95
added new fixture classes
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
57 class Fixture(object): |
749dfd6b6e95
added new fixture classes
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
58 |
749dfd6b6e95
added new fixture classes
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
59 def __init__(self): |
749dfd6b6e95
added new fixture classes
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
60 pass |
749dfd6b6e95
added new fixture classes
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
61 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
62 def anon_access(self, status): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
63 """ |
4880
5d8fbada35fc
tests: cleanup of fixture.anon_access
Mads Kiilerich <madski@unity3d.com>
parents:
4849
diff
changeset
|
64 Context manager for controlling anonymous access. |
5d8fbada35fc
tests: cleanup of fixture.anon_access
Mads Kiilerich <madski@unity3d.com>
parents:
4849
diff
changeset
|
65 Anon access will be set and committed, but restored again when exiting the block. |
5d8fbada35fc
tests: cleanup of fixture.anon_access
Mads Kiilerich <madski@unity3d.com>
parents:
4849
diff
changeset
|
66 |
5d8fbada35fc
tests: cleanup of fixture.anon_access
Mads Kiilerich <madski@unity3d.com>
parents:
4849
diff
changeset
|
67 Usage: |
5d8fbada35fc
tests: cleanup of fixture.anon_access
Mads Kiilerich <madski@unity3d.com>
parents:
4849
diff
changeset
|
68 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
69 fixture = Fixture() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
70 with fixture.anon_access(False): |
4880
5d8fbada35fc
tests: cleanup of fixture.anon_access
Mads Kiilerich <madski@unity3d.com>
parents:
4849
diff
changeset
|
71 stuff |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
72 """ |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
73 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
74 class context(object): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
75 def __enter__(self): |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
76 anon = db.User.get_default_user() |
4880
5d8fbada35fc
tests: cleanup of fixture.anon_access
Mads Kiilerich <madski@unity3d.com>
parents:
4849
diff
changeset
|
77 self._before = anon.active |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
78 anon.active = status |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
79 meta.Session().commit() |
6140
ee88c8c07111
tests: remove sleep hack to expire sql_cache_short
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents:
6118
diff
changeset
|
80 invalidate_all_caches() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
81 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
82 def __exit__(self, exc_type, exc_val, exc_tb): |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
83 anon = db.User.get_default_user() |
4880
5d8fbada35fc
tests: cleanup of fixture.anon_access
Mads Kiilerich <madski@unity3d.com>
parents:
4849
diff
changeset
|
84 anon.active = self._before |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
85 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
86 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
87 return context() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
88 |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
89 def _get_repo_create_params(self, **custom): |
6617
0bae66824ac5
tests: clarify that default parameters are for form - direct model access requires different types
Mads Kiilerich <mads@kiilerich.com>
parents:
6471
diff
changeset
|
90 """Return form values to be validated through RepoForm""" |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
91 defs = dict( |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
92 repo_name=None, |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
93 repo_type='hg', |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
94 clone_uri='', |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
95 repo_group='-1', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
96 repo_description='DESC', |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
97 repo_private=False, |
8942
f2dc57c123cf
repo: introduce enable_downloads and enable_statistics when creating repos
Mads Kiilerich <mads@kiilerich.com>
parents:
8806
diff
changeset
|
98 repo_enable_statistics=False, |
f2dc57c123cf
repo: introduce enable_downloads and enable_statistics when creating repos
Mads Kiilerich <mads@kiilerich.com>
parents:
8806
diff
changeset
|
99 repo_enable_downloads=False, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
100 repo_landing_rev='rev:tip', |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
101 repo_copy_permissions=False, |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
102 repo_state=db.Repository.STATE_CREATED, |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
103 ) |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
104 defs.update(custom) |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
105 if 'repo_name_full' not in custom: |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
106 defs.update({'repo_name_full': defs['repo_name']}) |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
107 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
108 # fix the repo name if passed as repo_name_full |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
109 if defs['repo_name']: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
110 defs['repo_name'] = defs['repo_name'].split('/')[-1] |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
111 |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
112 return defs |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
113 |
6617
0bae66824ac5
tests: clarify that default parameters are for form - direct model access requires different types
Mads Kiilerich <mads@kiilerich.com>
parents:
6471
diff
changeset
|
114 def _get_repo_group_create_params(self, **custom): |
0bae66824ac5
tests: clarify that default parameters are for form - direct model access requires different types
Mads Kiilerich <mads@kiilerich.com>
parents:
6471
diff
changeset
|
115 """Return form values to be validated through RepoGroupForm""" |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
116 defs = dict( |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
117 group_name=None, |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
118 group_description='DESC', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
119 parent_group_id='-1', |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
120 perms_updates=[], |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
121 perms_new=[], |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
122 recursive=False |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
123 ) |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
124 defs.update(custom) |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
125 |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
126 return defs |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
127 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
128 def _get_user_create_params(self, name, **custom): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
129 defs = dict( |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
130 username=name, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
131 password='qweqwe', |
4183
da3c57422ee6
Change domain used for email addresses in tests
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4116
diff
changeset
|
132 email='%s+test@example.com' % name, |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
133 firstname='TestUser', |
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
134 lastname='Test', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
135 active=True, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
136 admin=False, |
4209
de26de99ac5b
Rename auth_rhodecode to auth_internal
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4187
diff
changeset
|
137 extern_type='internal', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
138 extern_name=None |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
139 ) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
140 defs.update(custom) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
141 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
142 return defs |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
143 |
3714
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
144 def _get_user_group_create_params(self, name, **custom): |
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
145 defs = dict( |
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
146 users_group_name=name, |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
147 user_group_description='DESC', |
3714
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
148 users_group_active=True, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
149 user_group_data={}, |
3714
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
150 ) |
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
151 defs.update(custom) |
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
152 |
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
153 return defs |
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
154 |
8804
f1138ec0ba7f
tests: simplify cur_user handling in fixture create methods
Mads Kiilerich <mads@kiilerich.com>
parents:
8802
diff
changeset
|
155 def create_repo(self, name, repo_group=None, cur_user=TEST_USER_ADMIN_LOGIN, **kwargs): |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
156 if 'skip_if_exists' in kwargs: |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
157 del kwargs['skip_if_exists'] |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
158 r = db.Repository.get_by_repo_name(name) |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
159 if r: |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
160 return r |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
161 |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
162 if isinstance(repo_group, db.RepoGroup): |
6617
0bae66824ac5
tests: clarify that default parameters are for form - direct model access requires different types
Mads Kiilerich <mads@kiilerich.com>
parents:
6471
diff
changeset
|
163 repo_group = repo_group.group_id |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
164 |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
165 form_data = self._get_repo_create_params(repo_name=name, **kwargs) |
6617
0bae66824ac5
tests: clarify that default parameters are for form - direct model access requires different types
Mads Kiilerich <mads@kiilerich.com>
parents:
6471
diff
changeset
|
166 form_data['repo_group'] = repo_group # patch form dict so it can be used directly by model |
8804
f1138ec0ba7f
tests: simplify cur_user handling in fixture create methods
Mads Kiilerich <mads@kiilerich.com>
parents:
8802
diff
changeset
|
167 RepoModel().create(form_data, cur_user=cur_user) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
168 meta.Session().commit() |
5768
5cb780fd494d
tests: invalidate cache for new repositories - make tests more stable if garbage has been left behind in the db
Mads Kiilerich <madski@unity3d.com>
parents:
5745
diff
changeset
|
169 ScmModel().mark_for_invalidation(name) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
170 return db.Repository.get_by_repo_name(name) |
3642
749dfd6b6e95
added new fixture classes
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
171 |
8804
f1138ec0ba7f
tests: simplify cur_user handling in fixture create methods
Mads Kiilerich <mads@kiilerich.com>
parents:
8802
diff
changeset
|
172 def create_fork(self, repo_to_fork, fork_name, cur_user=TEST_USER_ADMIN_LOGIN, **kwargs): |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
173 repo_to_fork = db.Repository.get_by_repo_name(repo_to_fork) |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
174 |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
175 form_data = self._get_repo_create_params(repo_name=fork_name, |
8802
76394eb36b27
tests: fix create_fork to actually pass a repo id as fork_parent_id
Mads Kiilerich <mads@kiilerich.com>
parents:
8728
diff
changeset
|
176 fork_parent_id=repo_to_fork.repo_id, |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
177 repo_type=repo_to_fork.repo_type, |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
178 **kwargs) |
6617
0bae66824ac5
tests: clarify that default parameters are for form - direct model access requires different types
Mads Kiilerich <mads@kiilerich.com>
parents:
6471
diff
changeset
|
179 # patch form dict so it can be used directly by model |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
180 form_data['description'] = form_data['repo_description'] |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
181 form_data['private'] = form_data['repo_private'] |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
182 form_data['landing_rev'] = form_data['repo_landing_rev'] |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
183 |
8804
f1138ec0ba7f
tests: simplify cur_user handling in fixture create methods
Mads Kiilerich <mads@kiilerich.com>
parents:
8802
diff
changeset
|
184 RepoModel().create_fork(form_data, cur_user=cur_user) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
185 meta.Session().commit() |
5768
5cb780fd494d
tests: invalidate cache for new repositories - make tests more stable if garbage has been left behind in the db
Mads Kiilerich <madski@unity3d.com>
parents:
5745
diff
changeset
|
186 ScmModel().mark_for_invalidation(fork_name) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
187 r = db.Repository.get_by_repo_name(fork_name) |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
188 assert r |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
189 return r |
3642
749dfd6b6e95
added new fixture classes
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
190 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
191 def destroy_repo(self, repo_name, **kwargs): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
192 RepoModel().delete(repo_name, **kwargs) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
193 meta.Session().commit() |
3642
749dfd6b6e95
added new fixture classes
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
194 |
8804
f1138ec0ba7f
tests: simplify cur_user handling in fixture create methods
Mads Kiilerich <mads@kiilerich.com>
parents:
8802
diff
changeset
|
195 def create_repo_group(self, name, parent_group_id=None, cur_user=TEST_USER_ADMIN_LOGIN, **kwargs): |
7316
7d5e8894db6c
tests: clarify that fixture.create_repo_group takes a name, not a path
Mads Kiilerich <mads@kiilerich.com>
parents:
5378
diff
changeset
|
196 assert '/' not in name, (name, kwargs) # use group_parent_id to make nested groups |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
197 if 'skip_if_exists' in kwargs: |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
198 del kwargs['skip_if_exists'] |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
199 gr = db.RepoGroup.get_by_group_name(group_name=name) |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
200 if gr: |
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
201 return gr |
6617
0bae66824ac5
tests: clarify that default parameters are for form - direct model access requires different types
Mads Kiilerich <mads@kiilerich.com>
parents:
6471
diff
changeset
|
202 form_data = self._get_repo_group_create_params(group_name=name, **kwargs) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
203 gr = RepoGroupModel().create( |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
204 group_name=form_data['group_name'], |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
205 group_description=form_data['group_name'], |
6617
0bae66824ac5
tests: clarify that default parameters are for form - direct model access requires different types
Mads Kiilerich <mads@kiilerich.com>
parents:
6471
diff
changeset
|
206 parent=parent_group_id, |
8804
f1138ec0ba7f
tests: simplify cur_user handling in fixture create methods
Mads Kiilerich <mads@kiilerich.com>
parents:
8802
diff
changeset
|
207 owner=cur_user, |
6617
0bae66824ac5
tests: clarify that default parameters are for form - direct model access requires different types
Mads Kiilerich <mads@kiilerich.com>
parents:
6471
diff
changeset
|
208 ) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
209 meta.Session().commit() |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
210 gr = db.RepoGroup.get_by_group_name(gr.group_name) |
3647
8a86836fad64
more usage of fixture tools
Marcin Kuzminski <marcin@python-works.com>
parents:
3642
diff
changeset
|
211 return gr |
3714
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
212 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
213 def destroy_repo_group(self, repogroupid): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
214 RepoGroupModel().delete(repogroupid) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
215 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
216 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
217 def create_user(self, name, **kwargs): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
218 if 'skip_if_exists' in kwargs: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
219 del kwargs['skip_if_exists'] |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
220 user = db.User.get_by_username(name) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
221 if user: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
222 return user |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
223 form_data = self._get_user_create_params(name, **kwargs) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
224 user = UserModel().create(form_data) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
225 meta.Session().commit() |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
226 user = db.User.get_by_username(user.username) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
227 return user |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
228 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
229 def destroy_user(self, userid): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
230 UserModel().delete(userid) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
231 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
232 |
8804
f1138ec0ba7f
tests: simplify cur_user handling in fixture create methods
Mads Kiilerich <mads@kiilerich.com>
parents:
8802
diff
changeset
|
233 def create_user_group(self, name, cur_user=TEST_USER_ADMIN_LOGIN, **kwargs): |
3714
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
234 if 'skip_if_exists' in kwargs: |
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
235 del kwargs['skip_if_exists'] |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
236 gr = db.UserGroup.get_by_group_name(group_name=name) |
3714
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
237 if gr: |
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
238 return gr |
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
239 form_data = self._get_user_group_create_params(name, **kwargs) |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
240 user_group = UserGroupModel().create( |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
241 name=form_data['users_group_name'], |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
242 description=form_data['user_group_description'], |
8804
f1138ec0ba7f
tests: simplify cur_user handling in fixture create methods
Mads Kiilerich <mads@kiilerich.com>
parents:
8802
diff
changeset
|
243 owner=cur_user, |
f1138ec0ba7f
tests: simplify cur_user handling in fixture create methods
Mads Kiilerich <mads@kiilerich.com>
parents:
8802
diff
changeset
|
244 active=form_data['users_group_active'], |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
245 group_data=form_data['user_group_data']) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
246 meta.Session().commit() |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
247 user_group = db.UserGroup.get_by_group_name(user_group.users_group_name) |
3714
7e3d89d9d3a2
- Manage User’s Groups: create, delete, rename, add/remove users inside.
Marcin Kuzminski <marcin@python-works.com>
parents:
3647
diff
changeset
|
248 return user_group |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
249 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
250 def destroy_user_group(self, usergroupid): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
251 UserGroupModel().delete(user_group=usergroupid, force=True) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
252 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
253 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
254 def create_gist(self, **kwargs): |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
255 form_data = { |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
256 'description': 'new-gist', |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
257 'owner': TEST_USER_ADMIN_LOGIN, |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
258 'gist_type': db.Gist.GIST_PUBLIC, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
259 'lifetime': -1, |
6864
7691290837d2
codingstyle: trivial whitespace fixes
Lars Kruse <devel@sumpfralle.de>
parents:
6799
diff
changeset
|
260 'gist_mapping': {'filename1.txt': {'content': 'hello world'}} |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
261 } |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
262 form_data.update(kwargs) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
263 gist = GistModel().create( |
7726
16df4993b442
scm: don't try to get IP address from web request in model
Mads Kiilerich <mads@kiilerich.com>
parents:
7672
diff
changeset
|
264 description=form_data['description'], owner=form_data['owner'], ip_addr=IP_ADDR, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
265 gist_mapping=form_data['gist_mapping'], gist_type=form_data['gist_type'], |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
266 lifetime=form_data['lifetime'] |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
267 ) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
268 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
269 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
270 return gist |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
271 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
272 def destroy_gists(self, gistid=None): |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
273 for g in db.Gist.query(): |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
274 if gistid: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
275 if gistid == g.gist_access_id: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
276 GistModel().delete(g) |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
277 else: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
278 GistModel().delete(g) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
279 meta.Session().commit() |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
280 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
281 def load_resource(self, resource_name, strip=True): |
5745
83dbf427f1dc
tests: load fixture in binary mode - otherwise \r would be filtered on Windows
domruf <dominikruf@gmail.com>
parents:
5631
diff
changeset
|
282 with open(os.path.join(FIXTURES, resource_name), 'rb') as f: |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
283 source = f.read() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
284 if strip: |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
285 source = source.strip() |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
286 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
3714
diff
changeset
|
287 return source |
4842
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
288 |
6471
8b4c09e740a7
tests: add commit_change() author to specify author name explicitly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
6468
diff
changeset
|
289 def commit_change(self, repo, filename, content, message, vcs_type, |
8b4c09e740a7
tests: add commit_change() author to specify author name explicitly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
6468
diff
changeset
|
290 parent=None, newfile=False, author=None): |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
291 repo = db.Repository.get_by_repo_name(repo) |
4842
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
292 _cs = parent |
6471
8b4c09e740a7
tests: add commit_change() author to specify author name explicitly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
6468
diff
changeset
|
293 if parent is None: |
4842
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
294 _cs = EmptyChangeset(alias=vcs_type) |
6471
8b4c09e740a7
tests: add commit_change() author to specify author name explicitly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
6468
diff
changeset
|
295 if author is None: |
7086
438876d818d3
tests: git changeset authors need to have the format 'username <user@example.com>'
domruf <dominikruf@gmail.com>
parents:
6864
diff
changeset
|
296 author = '%s <%s>' % (TEST_USER_ADMIN_LOGIN, TEST_USER_ADMIN_EMAIL) |
4842
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
297 |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
298 if newfile: |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
299 nodes = { |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
300 filename: { |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
301 'content': content |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
302 } |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
303 } |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
304 cs = ScmModel().create_nodes( |
7726
16df4993b442
scm: don't try to get IP address from web request in model
Mads Kiilerich <mads@kiilerich.com>
parents:
7672
diff
changeset
|
305 user=TEST_USER_ADMIN_LOGIN, |
16df4993b442
scm: don't try to get IP address from web request in model
Mads Kiilerich <mads@kiilerich.com>
parents:
7672
diff
changeset
|
306 ip_addr=IP_ADDR, |
16df4993b442
scm: don't try to get IP address from web request in model
Mads Kiilerich <mads@kiilerich.com>
parents:
7672
diff
changeset
|
307 repo=repo, |
4842
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
308 message=message, |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
309 nodes=nodes, |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
310 parent_cs=_cs, |
6471
8b4c09e740a7
tests: add commit_change() author to specify author name explicitly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
6468
diff
changeset
|
311 author=author, |
4842
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
312 ) |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
313 else: |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
314 cs = ScmModel().commit_change( |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
315 repo=repo.scm_instance, repo_name=repo.repo_name, |
7726
16df4993b442
scm: don't try to get IP address from web request in model
Mads Kiilerich <mads@kiilerich.com>
parents:
7672
diff
changeset
|
316 cs=parent, |
16df4993b442
scm: don't try to get IP address from web request in model
Mads Kiilerich <mads@kiilerich.com>
parents:
7672
diff
changeset
|
317 user=TEST_USER_ADMIN_LOGIN, |
16df4993b442
scm: don't try to get IP address from web request in model
Mads Kiilerich <mads@kiilerich.com>
parents:
7672
diff
changeset
|
318 ip_addr=IP_ADDR, |
6471
8b4c09e740a7
tests: add commit_change() author to specify author name explicitly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
6468
diff
changeset
|
319 author=author, |
4842
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
320 message=message, |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
321 content=content, |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
322 f_path=filename |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
323 ) |
fd8c0117ca22
tests: move helper commit_change from compare test to fixture
Thomas De Schampheleire <thomas.de_schampheleire@alcatel-lucent.com>
parents:
4731
diff
changeset
|
324 return cs |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
325 |
6652
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6623
diff
changeset
|
326 def review_changeset(self, repo, revision, status, author=TEST_USER_ADMIN_LOGIN): |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
327 comment = ChangesetCommentsModel().create("review comment", repo, author, revision=revision, send_email=False) |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
328 csm = ChangesetStatusModel().set_status(repo, db.ChangesetStatus.STATUS_APPROVED, author, comment, revision=revision) |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
329 meta.Session().commit() |
6652
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6623
diff
changeset
|
330 return csm |
b60fb9461b18
Add JSON-RPC API for reading changeset status
Eivind Tagseth <eivindt@gmail.com>
parents:
6623
diff
changeset
|
331 |
8224
e63bcce18fef
py3: automatic migration with 2to3 -f unicode
Mads Kiilerich <mads@kiilerich.com>
parents:
8078
diff
changeset
|
332 def create_pullrequest(self, testcontroller, repo_name, pr_src_rev, pr_dst_rev, title='title'): |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6652
diff
changeset
|
333 org_ref = 'branch:stable:%s' % pr_src_rev |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6652
diff
changeset
|
334 other_ref = 'branch:default:%s' % pr_dst_rev |
8718
f8b092f9e6a3
lib: consistently use webutils.url instead of h.url
Mads Kiilerich <mads@kiilerich.com>
parents:
8687
diff
changeset
|
335 with test_context(testcontroller.app): # needed to be able to mock request user and routes.url |
8687
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
336 org_repo = other_repo = db.Repository.get_by_repo_name(repo_name) |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
337 owner_user = db.User.get_by_username(TEST_USER_ADMIN_LOGIN) |
5e46f73f0d1c
model: always import the whole db module - drop "from" imports
Mads Kiilerich <mads@kiilerich.com>
parents:
8686
diff
changeset
|
338 reviewers = [db.User.get_by_username(TEST_USER_REGULAR_LOGIN)] |
7485
c6ce891312ef
auth: consistently use request.authuser - drop request.user
Mads Kiilerich <mads@kiilerich.com>
parents:
7320
diff
changeset
|
339 request.authuser = AuthUser(dbuser=owner_user) |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6652
diff
changeset
|
340 # creating a PR sends a message with an absolute URL - without routing that requires mocking |
8718
f8b092f9e6a3
lib: consistently use webutils.url instead of h.url
Mads Kiilerich <mads@kiilerich.com>
parents:
8687
diff
changeset
|
341 request.environ['routes.url'] = lambda arg, qualified=False, **kwargs: ('https://localhost' if qualified else '') + '/fake/' + arg |
f8b092f9e6a3
lib: consistently use webutils.url instead of h.url
Mads Kiilerich <mads@kiilerich.com>
parents:
8687
diff
changeset
|
342 cmd = CreatePullRequestAction(org_repo, other_repo, org_ref, other_ref, title, 'No description', owner_user, reviewers) |
f8b092f9e6a3
lib: consistently use webutils.url instead of h.url
Mads Kiilerich <mads@kiilerich.com>
parents:
8687
diff
changeset
|
343 pull_request = cmd.execute() |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
344 meta.Session().commit() |
6655
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6652
diff
changeset
|
345 return pull_request.pull_request_id |
6452215a54ee
api: add get_pullrequest and comment_pullrequest methods
domruf <dominikruf@gmail.com>
parents:
6652
diff
changeset
|
346 |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
347 |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
348 #============================================================================== |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
349 # Global test environment setup |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
350 #============================================================================== |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
351 |
8593
922808a61274
tests: introduce REUSE_TEST_DB as an alternative to TEST_DB
Mads Kiilerich <mads@kiilerich.com>
parents:
8590
diff
changeset
|
352 def create_test_env(repos_test_path, config, reuse_database): |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
353 """ |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
354 Makes a fresh database and |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
355 install test repository into tmp dir |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
356 """ |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
357 |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
358 # PART ONE create db |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
359 dbconf = config['sqlalchemy.url'] |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
360 log.debug('making test db %s', dbconf) |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
361 |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
362 # create test dir if it doesn't exist |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
363 if not os.path.isdir(repos_test_path): |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
364 log.debug('Creating testdir %s', repos_test_path) |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
365 os.makedirs(repos_test_path) |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
366 |
6623
5b3568c99cc3
sqlalchemy: remove echo setting from .ini files and create_engine
domruf <dominikruf@gmail.com>
parents:
6621
diff
changeset
|
367 dbmanage = DbManage(dbconf=dbconf, root=config['here'], |
8674
30aac95e7fd5
db_manage: clarify that the purpose of admin_prompt is to create the admin user
Mads Kiilerich <mads@kiilerich.com>
parents:
8593
diff
changeset
|
368 cli_args={ |
8675
3afc6bff84bb
db_manage: drop special DbManage mode for tests
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
369 'force_ask': True, |
8674
30aac95e7fd5
db_manage: clarify that the purpose of admin_prompt is to create the admin user
Mads Kiilerich <mads@kiilerich.com>
parents:
8593
diff
changeset
|
370 'username': TEST_USER_ADMIN_LOGIN, |
30aac95e7fd5
db_manage: clarify that the purpose of admin_prompt is to create the admin user
Mads Kiilerich <mads@kiilerich.com>
parents:
8593
diff
changeset
|
371 'password': TEST_USER_ADMIN_PASS, |
30aac95e7fd5
db_manage: clarify that the purpose of admin_prompt is to create the admin user
Mads Kiilerich <mads@kiilerich.com>
parents:
8593
diff
changeset
|
372 'email': TEST_USER_ADMIN_EMAIL, |
30aac95e7fd5
db_manage: clarify that the purpose of admin_prompt is to create the admin user
Mads Kiilerich <mads@kiilerich.com>
parents:
8593
diff
changeset
|
373 }) |
8593
922808a61274
tests: introduce REUSE_TEST_DB as an alternative to TEST_DB
Mads Kiilerich <mads@kiilerich.com>
parents:
8590
diff
changeset
|
374 dbmanage.create_tables(reuse_database=reuse_database) |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
375 # for tests dynamically set new root paths based on generated content |
7730
bb5650d4a914
config: clarify naming of repo_root_path
Mads Kiilerich <mads@kiilerich.com>
parents:
7726
diff
changeset
|
376 dbmanage.create_settings(dbmanage.prompt_repo_root_path(repos_test_path)) |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
377 dbmanage.create_default_user() |
8674
30aac95e7fd5
db_manage: clarify that the purpose of admin_prompt is to create the admin user
Mads Kiilerich <mads@kiilerich.com>
parents:
8593
diff
changeset
|
378 dbmanage.create_admin_user() |
30aac95e7fd5
db_manage: clarify that the purpose of admin_prompt is to create the admin user
Mads Kiilerich <mads@kiilerich.com>
parents:
8593
diff
changeset
|
379 dbmanage.create_user(TEST_USER_REGULAR_LOGIN, TEST_USER_REGULAR_PASS, TEST_USER_REGULAR_EMAIL, False) |
30aac95e7fd5
db_manage: clarify that the purpose of admin_prompt is to create the admin user
Mads Kiilerich <mads@kiilerich.com>
parents:
8593
diff
changeset
|
380 dbmanage.create_user(TEST_USER_REGULAR2_LOGIN, TEST_USER_REGULAR2_PASS, TEST_USER_REGULAR2_EMAIL, False) |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
381 dbmanage.create_permissions() |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
382 dbmanage.populate_default_permissions() |
8686
b095e2fbba44
model: always import whole meta module - also when referencing Session
Mads Kiilerich <mads@kiilerich.com>
parents:
8675
diff
changeset
|
383 meta.Session().commit() |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
384 # PART TWO make test repo |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
385 log.debug('making test vcs repositories') |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
386 |
6621
6cc40e545e9a
test: move test environment initialization from the main code to tests
Anton Schur <tonich.sh@gmail.com>
parents:
6617
diff
changeset
|
387 idx_path = config['index_dir'] |
6cc40e545e9a
test: move test environment initialization from the main code to tests
Anton Schur <tonich.sh@gmail.com>
parents:
6617
diff
changeset
|
388 data_path = config['cache_dir'] |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
389 |
6864
7691290837d2
codingstyle: trivial whitespace fixes
Lars Kruse <devel@sumpfralle.de>
parents:
6799
diff
changeset
|
390 # clean index and data |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
391 if idx_path and os.path.exists(idx_path): |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
392 log.debug('remove %s', idx_path) |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
393 shutil.rmtree(idx_path) |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
394 |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
395 if data_path and os.path.exists(data_path): |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
396 log.debug('remove %s', data_path) |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
397 shutil.rmtree(data_path) |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
398 |
6864
7691290837d2
codingstyle: trivial whitespace fixes
Lars Kruse <devel@sumpfralle.de>
parents:
6799
diff
changeset
|
399 # CREATE DEFAULT TEST REPOS |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
400 tar = tarfile.open(os.path.join(FIXTURES, 'vcs_test_hg.tar.gz')) |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
401 tar.extractall(os.path.join(TESTS_TMP_PATH, HG_REPO)) |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
402 tar.close() |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
403 |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
404 tar = tarfile.open(os.path.join(FIXTURES, 'vcs_test_git.tar.gz')) |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
405 tar.extractall(os.path.join(TESTS_TMP_PATH, GIT_REPO)) |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
406 tar.close() |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
407 |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
408 |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
409 def create_test_index(repo_location, config, full_index): |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
410 """ |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
411 Makes default test index |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
412 """ |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
413 |
6621
6cc40e545e9a
test: move test environment initialization from the main code to tests
Anton Schur <tonich.sh@gmail.com>
parents:
6617
diff
changeset
|
414 index_location = os.path.join(config['index_dir']) |
6468
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
415 if not os.path.exists(index_location): |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
416 os.makedirs(index_location) |
b35f74c2d661
tests: move test environment setup code out of utils.py
Søren Løvborg <sorenl@unity3d.com>
parents:
6317
diff
changeset
|
417 |
6799
5aa9fa97306f
lib: make the DaemonLock lock location parameter mandatory - the default was never used
Mads Kiilerich <mads@kiilerich.com>
parents:
6798
diff
changeset
|
418 l = DaemonLock(os.path.join(index_location, 'make_index.lock')) |
6786
0866bb29f217
tests: don't silence errors while creating test index
domruf <dominikruf@gmail.com>
parents:
6676
diff
changeset
|
419 WhooshIndexingDaemon(index_location=index_location, |
0866bb29f217
tests: don't silence errors while creating test index
domruf <dominikruf@gmail.com>
parents:
6676
diff
changeset
|
420 repo_location=repo_location) \ |
0866bb29f217
tests: don't silence errors while creating test index
domruf <dominikruf@gmail.com>
parents:
6676
diff
changeset
|
421 .run(full_index=full_index) |
0866bb29f217
tests: don't silence errors while creating test index
domruf <dominikruf@gmail.com>
parents:
6676
diff
changeset
|
422 l.release() |
7187
522cfb2be9e1
tests: add custom hook tests
domruf <dominikruf@gmail.com>
parents:
7086
diff
changeset
|
423 |
522cfb2be9e1
tests: add custom hook tests
domruf <dominikruf@gmail.com>
parents:
7086
diff
changeset
|
424 |
522cfb2be9e1
tests: add custom hook tests
domruf <dominikruf@gmail.com>
parents:
7086
diff
changeset
|
425 def failing_test_hook(ui, repo, **kwargs): |
8078
45bfab30d433
py3: add b'' annotations in some places where they will be needed later
Mads Kiilerich <mads@kiilerich.com>
parents:
7812
diff
changeset
|
426 ui.write(b"failing_test_hook failed\n") |
7187
522cfb2be9e1
tests: add custom hook tests
domruf <dominikruf@gmail.com>
parents:
7086
diff
changeset
|
427 return 1 |
522cfb2be9e1
tests: add custom hook tests
domruf <dominikruf@gmail.com>
parents:
7086
diff
changeset
|
428 |
522cfb2be9e1
tests: add custom hook tests
domruf <dominikruf@gmail.com>
parents:
7086
diff
changeset
|
429 |
522cfb2be9e1
tests: add custom hook tests
domruf <dominikruf@gmail.com>
parents:
7086
diff
changeset
|
430 def exception_test_hook(ui, repo, **kwargs): |
522cfb2be9e1
tests: add custom hook tests
domruf <dominikruf@gmail.com>
parents:
7086
diff
changeset
|
431 raise Exception("exception_test_hook threw an exception") |
522cfb2be9e1
tests: add custom hook tests
domruf <dominikruf@gmail.com>
parents:
7086
diff
changeset
|
432 |
522cfb2be9e1
tests: add custom hook tests
domruf <dominikruf@gmail.com>
parents:
7086
diff
changeset
|
433 |
522cfb2be9e1
tests: add custom hook tests
domruf <dominikruf@gmail.com>
parents:
7086
diff
changeset
|
434 def passing_test_hook(ui, repo, **kwargs): |
8078
45bfab30d433
py3: add b'' annotations in some places where they will be needed later
Mads Kiilerich <mads@kiilerich.com>
parents:
7812
diff
changeset
|
435 ui.write(b"passing_test_hook succeeded\n") |
7187
522cfb2be9e1
tests: add custom hook tests
domruf <dominikruf@gmail.com>
parents:
7086
diff
changeset
|
436 return 0 |