Mercurial > kallithea
annotate conftest.py @ 8792:911669ac48a5
vcs: drop repo contact ... and the odd uses of it
A half-baked and essentially unused hgweb feature.
The reference in get_commits_stats doesn't seem reachable in any relevant use
cases.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Thu, 12 Nov 2020 18:56:53 +0100 |
parents | 9948ed9916c4 |
children |
rev | line source |
---|---|
7811
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7752
diff
changeset
|
1 import os |
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7752
diff
changeset
|
2 |
7734
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
3 import mock |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
4 import pytest |
8208
9948ed9916c4
py3: work around incompatibility between pytest, py3 inspect, and tg
Mads Kiilerich <mads@kiilerich.com>
parents:
8157
diff
changeset
|
5 import tg |
7811
0a277465fddf
scripts: initial run of import cleanup using isort
Mads Kiilerich <mads@kiilerich.com>
parents:
7752
diff
changeset
|
6 |
7734
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
7 |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
8 here = os.path.dirname(__file__) |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
9 |
8208
9948ed9916c4
py3: work around incompatibility between pytest, py3 inspect, and tg
Mads Kiilerich <mads@kiilerich.com>
parents:
8157
diff
changeset
|
10 # HACK: |
9948ed9916c4
py3: work around incompatibility between pytest, py3 inspect, and tg
Mads Kiilerich <mads@kiilerich.com>
parents:
8157
diff
changeset
|
11 def pytest_configure(): |
9948ed9916c4
py3: work around incompatibility between pytest, py3 inspect, and tg
Mads Kiilerich <mads@kiilerich.com>
parents:
8157
diff
changeset
|
12 # Register global dummy tg.context to avoid "TypeError: No object (name: context) has been registered for this thread" |
9948ed9916c4
py3: work around incompatibility between pytest, py3 inspect, and tg
Mads Kiilerich <mads@kiilerich.com>
parents:
8157
diff
changeset
|
13 tg.request_local.context._push_object(tg.util.bunch.Bunch()) |
9948ed9916c4
py3: work around incompatibility between pytest, py3 inspect, and tg
Mads Kiilerich <mads@kiilerich.com>
parents:
8157
diff
changeset
|
14 # could be removed again after use with |
9948ed9916c4
py3: work around incompatibility between pytest, py3 inspect, and tg
Mads Kiilerich <mads@kiilerich.com>
parents:
8157
diff
changeset
|
15 # tg.request_local.context._pop_object ... but we keep it around forever as |
9948ed9916c4
py3: work around incompatibility between pytest, py3 inspect, and tg
Mads Kiilerich <mads@kiilerich.com>
parents:
8157
diff
changeset
|
16 # a reasonable sentinel |
9948ed9916c4
py3: work around incompatibility between pytest, py3 inspect, and tg
Mads Kiilerich <mads@kiilerich.com>
parents:
8157
diff
changeset
|
17 |
7734
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
18 def pytest_ignore_collect(path): |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
19 # ignore all files outside the 'kallithea' directory |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
20 if not str(path).startswith(os.path.join(here, 'kallithea')): |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
21 return True |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
22 |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
23 # during doctest verification, normally all python files will be imported. |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
24 # Thus, files that cannot be imported normally should be ignored. |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
25 # Files that generate ImportErrors are ignored via |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
26 # '--doctest-ignore-import-errors' (pytest.ini) |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
27 kallithea_ignore_paths = ( |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
28 # AttributeError: 'module' object has no attribute 'config' |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
29 '/kallithea/alembic/env.py', |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
30 # collection of the following file messes up the rest of test execution |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
31 '/kallithea/tests/scripts/manual_test_concurrency.py', |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
32 ) |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
33 if str(path).endswith(kallithea_ignore_paths): |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
34 return True |
7752
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
35 |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
36 @pytest.fixture() |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
37 def doctest_mock_ugettext(request): |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
38 """Mock ugettext ('_') in the module using this fixture. |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
39 |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
40 Intended to be used for doctests. |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
41 |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
42 In a doctest, enable this fixture using: |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
43 >>> getfixture('doctest_mock_ugettext') |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
44 """ |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
45 m = __import__(request.module.__name__, globals(), locals(), [None], 0) |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
46 with mock.patch.object(m, '_', lambda s: s): |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
47 yield |
8157
56de50d57ff0
pytest: fix register_assert_rewrite call
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7812
diff
changeset
|
48 |
56de50d57ff0
pytest: fix register_assert_rewrite call
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7812
diff
changeset
|
49 if getattr(pytest, 'register_assert_rewrite', None): |
56de50d57ff0
pytest: fix register_assert_rewrite call
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7812
diff
changeset
|
50 # make sure that all asserts under kallithea/tests benefit from advanced |
56de50d57ff0
pytest: fix register_assert_rewrite call
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7812
diff
changeset
|
51 # assert reporting with pytest-3.0.0+, including api/api_base.py, |
56de50d57ff0
pytest: fix register_assert_rewrite call
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7812
diff
changeset
|
52 # models/common.py etc. |
56de50d57ff0
pytest: fix register_assert_rewrite call
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7812
diff
changeset
|
53 # See also: https://docs.pytest.org/en/latest/assert.html#advanced-assertion-introspection |
56de50d57ff0
pytest: fix register_assert_rewrite call
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7812
diff
changeset
|
54 pytest.register_assert_rewrite('kallithea.tests') |