changeset e5eb93b6a277 in modules/production:default
details:
https://hg.tryton.org/modules/production?cmd=changeset&node=e5eb93b6a277
description:
Replace test setuptools command by unittest discover
issue9215
review389851002
diffstat:
setup.py | 6 +-
tests/__init__.py | 7 ----
tests/test_module.py | 41 ++++++++++++++++++++++++++
tests/test_production.py | 74 ------------------------------------------------
tests/test_scenario.py | 22 ++++++++++++++
tox.ini | 3 +-
6 files changed, 68 insertions(+), 85 deletions(-)
diffs (196 lines):
diff -r 76ca4d6ac8bf -r e5eb93b6a277 setup.py
--- a/setup.py Tue Apr 12 10:35:40 2022 +0200
+++ b/setup.py Sat Apr 16 18:30:18 2022 +0200
@@ -138,13 +138,13 @@
license='GPL-3',
python_requires='>=3.7',
install_requires=requires,
+ extras_require={
+ 'test': tests_require,
+ },
dependency_links=dependency_links,
zip_safe=False,
entry_points="""
[trytond.modules]
production = trytond.modules.production
""",
- test_suite='tests',
- test_loader='trytond.test_loader:Loader',
- tests_require=tests_require,
)
diff -r 76ca4d6ac8bf -r e5eb93b6a277 tests/__init__.py
--- a/tests/__init__.py Tue Apr 12 10:35:40 2022 +0200
+++ b/tests/__init__.py Sat Apr 16 18:30:18 2022 +0200
@@ -1,9 +1,2 @@
# 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.production.tests.test_production import suite
-except ImportError:
- from .test_production import suite
-
-__all__ = ['suite']
diff -r 76ca4d6ac8bf -r e5eb93b6a277 tests/test_module.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_module.py Sat Apr 16 18:30:18 2022 +0200
@@ -0,0 +1,41 @@
+# 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
+
+from trytond.modules.company.tests import CompanyTestMixin
+from trytond.pool import Pool
+from trytond.tests.test_tryton import ModuleTestCase, with_transaction
+
+
+class ProductionTestCase(CompanyTestMixin, ModuleTestCase):
+ 'Test Production module'
+ module = 'production'
+
+ @with_transaction()
+ def test_on_change_with_planned_start_date(self):
+ "Test on_change_with_planned_start_date"
+ pool = Pool()
+ Production = pool.get('production')
+ Product = pool.get('product.product')
+ LeadTime = pool.get('production.lead_time')
+
+ date = datetime.date(2016, 11, 26)
+ product = Product()
+ product.lead_times = []
+ production = Production()
+ production.planned_date = date
+ production.product = product
+
+ self.assertEqual(production.on_change_with_planned_start_date(), date)
+
+ lead_time = LeadTime(bom=None, lead_time=None)
+ product.lead_times = [lead_time]
+ self.assertEqual(production.on_change_with_planned_start_date(), date)
+
+ lead_time.lead_time = datetime.timedelta(1)
+ self.assertEqual(
+ production.on_change_with_planned_start_date(),
+ datetime.date(2016, 11, 25))
+
+
+del ModuleTestCase
diff -r 76ca4d6ac8bf -r e5eb93b6a277 tests/test_production.py
--- a/tests/test_production.py Tue Apr 12 10:35:40 2022 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-# 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
-
-import trytond.tests.test_tryton
-from trytond.modules.company.tests import CompanyTestMixin
-from trytond.pool import Pool
-from trytond.tests.test_tryton import (
- ModuleTestCase, doctest_checker, doctest_teardown, with_transaction)
-
-
-class ProductionTestCase(CompanyTestMixin, ModuleTestCase):
- 'Test Production module'
- module = 'production'
-
- @with_transaction()
- def test_on_change_with_planned_start_date(self):
- "Test on_change_with_planned_start_date"
- pool = Pool()
- Production = pool.get('production')
- Product = pool.get('product.product')
- LeadTime = pool.get('production.lead_time')
-
- date = datetime.date(2016, 11, 26)
- product = Product()
- product.lead_times = []
- production = Production()
- production.planned_date = date
- production.product = product
-
- self.assertEqual(production.on_change_with_planned_start_date(), date)
-
- lead_time = LeadTime(bom=None, lead_time=None)
- product.lead_times = [lead_time]
- self.assertEqual(production.on_change_with_planned_start_date(), date)
-
- lead_time.lead_time = datetime.timedelta(1)
- self.assertEqual(
- production.on_change_with_planned_start_date(),
- datetime.date(2016, 11, 25))
-
-
-def suite():
- suite = trytond.tests.test_tryton.suite()
- suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
- ProductionTestCase))
- suite.addTests(doctest.DocFileSuite('scenario_production.rst',
- tearDown=doctest_teardown, encoding='utf-8',
- checker=doctest_checker,
- optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
- suite.addTests(doctest.DocFileSuite('scenario_production_rounding.rst',
- tearDown=doctest_teardown, encoding='utf-8',
- checker=doctest_checker,
- optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
- suite.addTests(doctest.DocFileSuite('scenario_production_by_product.rst',
- tearDown=doctest_teardown, encoding='utf-8',
- checker=doctest_checker,
- optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
- suite.addTests(
- doctest.DocFileSuite('scenario_production_no_list_price.rst',
- tearDown=doctest_teardown, encoding='utf-8',
- checker=doctest_checker,
- optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
- suite.addTests(doctest.DocFileSuite('scenario_production_set_cost.rst',
- tearDown=doctest_teardown, encoding='utf-8',
- checker=doctest_checker,
- optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
- suite.addTests(doctest.DocFileSuite('scenario_production_waste.rst',
- tearDown=doctest_teardown, encoding='utf-8',
- checker=doctest_checker,
- optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
- return suite
diff -r 76ca4d6ac8bf -r e5eb93b6a277 tests/test_scenario.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_scenario.py Sat Apr 16 18:30:18 2022 +0200
@@ -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 -r 76ca4d6ac8bf -r e5eb93b6a277 tox.ini
--- a/tox.ini Tue Apr 12 10:35:40 2022 +0200
+++ b/tox.ini Sat Apr 16 18:30:18 2022 +0200
@@ -2,8 +2,9 @@
envlist = {py37,py38,py39,py310}-{sqlite,postgresql}
[testenv]
+extras = test
commands =
- coverage run --include=.*/production/* setup.py test
+ coverage run --include=.*/production/* -m unittest discover -s tests
coverage report --include=.*/production/* --omit=*/tests/*
deps =
coverage