annotate conftest.py @ 7791:a7d7157eca8e

setup: some additional cleanup after we no longer support Python < 2.7
author Mads Kiilerich <mads@kiilerich.com>
date Mon, 22 Jul 2019 00:37:47 +0200
parents 3929ff3f21c6
children 0a277465fddf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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