Mercurial > kallithea
annotate conftest.py @ 7790:469b16f3979a
vcs: drop get_total_seconds - we only support Python 2.7 which has timedelta.total_seconds()
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Tue, 06 Aug 2019 21:08:02 +0200 |
parents | 3929ff3f21c6 |
children | 0a277465fddf |
rev | line source |
---|---|
7734
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
1 import mock |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
2 import os |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
3 import pytest |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
4 import sys |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
5 |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
6 here = os.path.dirname(__file__) |
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 def pytest_ignore_collect(path): |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
9 # ignore all files outside the 'kallithea' directory |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
10 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
|
11 return True |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
12 |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
13 # 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
|
14 # 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
|
15 # Files that generate ImportErrors are ignored via |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
16 # '--doctest-ignore-import-errors' (pytest.ini) |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
17 kallithea_ignore_paths = ( |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
18 # AttributeError: 'module' object has no attribute 'config' |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
19 '/kallithea/alembic/env.py', |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
20 # 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
|
21 '/kallithea/tests/scripts/manual_test_concurrency.py', |
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 if str(path).endswith(kallithea_ignore_paths): |
afa5e0bdb76f
tests: run doctests via pytest
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
24 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
|
25 |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
26 @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
|
27 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
|
28 """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
|
29 |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
30 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
|
31 |
3929ff3f21c6
tests: introduce doctest_mock_ugettext to allow doctests of localized code
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7734
diff
changeset
|
32 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
|
33 >>> 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
|
34 """ |
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 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
|
36 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
|
37 yield |