diff --git a/setup.py b/setup.py index bd94e613a3..7c4c0968db 100755 --- a/setup.py +++ b/setup.py @@ -146,6 +146,7 @@ setup(name=name, 'data': [ 'pycountry', 'forex-python', get_require_version('proteus')], 'ecb_rate': ['forex-python'], + 'test': tests_require, }, dependency_links=dependency_links, zip_safe=False, @@ -155,7 +156,4 @@ setup(name=name, [console_scripts] trytond_import_currencies = trytond.modules.currency.scripts.import_currencies:run [data] """, # noqa: E501 - test_suite='tests', - test_loader='trytond.test_loader:Loader', - tests_require=tests_require, ) diff --git a/tests/__init__.py b/tests/__init__.py index 223b8ea7b2..ee79c55912 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,10 +1,6 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -try: - from trytond.modules.currency.tests.test_currency import ( - add_currency_rate, create_currency, suite) -except ImportError: - from .test_currency import add_currency_rate, create_currency, suite +from .test_module import add_currency_rate, create_currency -__all__ = ['suite', 'create_currency', 'add_currency_rate'] +__all__ = ['create_currency', 'add_currency_rate'] diff --git a/tests/test_currency.py b/tests/test_module.py similarity index 91% rename from tests/test_currency.py rename to tests/test_module.py index fa71cb104d..fcaf90a3b8 100644 --- a/tests/test_currency.py +++ b/tests/test_module.py @@ -1,15 +1,12 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. + import datetime -import doctest -import unittest from decimal import Decimal -import trytond.tests.test_tryton from trytond import backend from trytond.pool import Pool -from trytond.tests.test_tryton import ( - ModuleTestCase, doctest_checker, doctest_teardown, with_transaction) +from trytond.tests.test_tryton import ModuleTestCase, with_transaction from trytond.transaction import Transaction @@ -373,23 +370,4 @@ class CurrencyTestCase(ModuleTestCase): self.assertSetEqual(data, result) -def suite(): - suite = trytond.tests.test_tryton.suite() - suite.addTests(unittest.TestLoader().loadTestsFromTestCase( - CurrencyTestCase)) - suite.addTests(doctest.DocFileSuite( - 'scenario_currency_compute.rst', - tearDown=doctest_teardown, encoding='utf-8', - checker=doctest_checker, - optionflags=doctest.REPORT_ONLY_FIRST_FAILURE)) - suite.addTests(doctest.DocFileSuite( - 'scenario_currency_import.rst', - tearDown=doctest_teardown, encoding='utf-8', - checker=doctest_checker, - optionflags=doctest.REPORT_ONLY_FIRST_FAILURE)) - suite.addTests(doctest.DocFileSuite( - 'scenario_currency_rate_update.rst', - tearDown=doctest_teardown, encoding='utf-8', - checker=doctest_checker, - optionflags=doctest.REPORT_ONLY_FIRST_FAILURE)) - return suite +del ModuleTestCase diff --git a/tests/test_scenario.py b/tests/test_scenario.py new file mode 100644 index 0000000000..c80e682a7f --- /dev/null +++ b/tests/test_scenario.py @@ -0,0 +1,22 @@ +# This file is part of Tryton. The COPYRIGHT file at the top level of +# this repository contains the full copyright notices and license terms. + +import doctest +import glob +import os + +from trytond.tests.test_tryton import doctest_checker, doctest_teardown + + +def load_tests(loader, tests, pattern): + cwd = os.getcwd() + try: + os.chdir(os.path.dirname(__file__)) + for scenario in glob.glob('*.rst'): + tests.addTests(doctest.DocFileSuite( + scenario, tearDown=doctest_teardown, encoding='utf-8', + checker=doctest_checker, + optionflags=doctest.REPORT_ONLY_FIRST_FAILURE)) + finally: + os.chdir(cwd) + return tests diff --git a/tox.ini b/tox.ini index 84f2abdd38..20b6e9d32b 100644 --- a/tox.ini +++ b/tox.ini @@ -2,8 +2,9 @@ envlist = {py37,py38,py39,py310}-{sqlite,postgresql} [testenv] +extras = test commands = - coverage run --include=.*/currency/* setup.py test + coverage run --include=.*/currency/* -m unittest discover -s tests coverage report --include=.*/currency/* --omit=*/tests/* deps = coverage