changeset 080659b1bcc9 in modules/commission:default
details: 
https://hg.tryton.org/modules/commission?cmd=changeset&node=080659b1bcc9
description:
        Replace test setuptools command by unittest discover

        issue9215
        review389851002
diffstat:

 setup.py                 |    4 +-
 tests/__init__.py        |    6 --
 tests/test_commission.py |  136 -----------------------------------------------
 tests/test_module.py     |  119 +++++++++++++++++++++++++++++++++++++++++
 tests/test_scenario.py   |   22 +++++++
 tox.ini                  |    3 +-
 6 files changed, 144 insertions(+), 146 deletions(-)

diffs (334 lines):

diff -r b5960815f3df -r 080659b1bcc9 setup.py
--- a/setup.py  Mon Apr 11 23:24:21 2022 +0200
+++ b/setup.py  Sat Apr 16 18:30:17 2022 +0200
@@ -141,6 +141,7 @@
     install_requires=requires,
     extras_require={
         'sparklines': ['pygal'],
+        'test': tests_require,
         },
     dependency_links=dependency_links,
     zip_safe=False,
@@ -148,7 +149,4 @@
     [trytond.modules]
     commission = trytond.modules.commission
     """,
-    test_suite='tests',
-    test_loader='trytond.test_loader:Loader',
-    tests_require=tests_require,
     )
diff -r b5960815f3df -r 080659b1bcc9 tests/__init__.py
--- a/tests/__init__.py Mon Apr 11 23:24:21 2022 +0200
+++ b/tests/__init__.py Sat Apr 16 18:30:17 2022 +0200
@@ -1,8 +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.commission.tests.test_commission import suite
-except ImportError:
-    from .test_commission import suite
-
-__all__ = ['suite']
diff -r b5960815f3df -r 080659b1bcc9 tests/test_commission.py
--- a/tests/test_commission.py  Mon Apr 11 23:24:21 2022 +0200
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +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 doctest
-import unittest
-from decimal import Decimal
-
-from trytond.modules.company.tests import (
-    CompanyTestMixin, PartyCompanyCheckEraseMixin, create_company, set_company)
-from trytond.pool import Pool
-from trytond.tests.test_tryton import (
-    ModuleTestCase, doctest_checker, doctest_teardown)
-from trytond.tests.test_tryton import suite as test_suite
-from trytond.tests.test_tryton import with_transaction
-
-
-def create_product(name, list_price, categories=None):
-    pool = Pool()
-    Template = pool.get('product.template')
-    Product = pool.get('product.product')
-    Uom = pool.get('product.uom')
-
-    unit, = Uom.search([('name', '=', 'Unit')])
-    template = Template(
-        name=name,
-        type='service',
-        list_price=list_price,
-        default_uom=unit,
-        products=None,
-        )
-    if categories:
-        template.categories = categories
-    template.save()
-    product = Product(template=template)
-    product.save()
-    return product
-
-
-def create_plan(lines):
-    pool = Pool()
-    Plan = pool.get('commission.plan')
-
-    commission_product = create_product("Commission", Decimal(10), [])
-    plan, = Plan.create([{
-                'name': "Commission Plan",
-                'commission_product': commission_product.id,
-                'lines': [('create', lines)]
-
-                }])
-    return plan
-
-
-class CommissionTestCase(
-        PartyCompanyCheckEraseMixin, CompanyTestMixin, ModuleTestCase):
-    'Test Commission module'
-    module = 'commission'
-    extras = ['sale']
-
-    @with_transaction()
-    def test_plan_category(self):
-        "Test plan with category"
-        pool = Pool()
-        Category = pool.get('product.category')
-
-        category = Category(name="Category")
-        category.save()
-        child_category = Category(name="Child Category", parent=category)
-        child_category.save()
-
-        company = create_company()
-        with set_company(company):
-            product = create_product("Other", Decimal(10), [category])
-
-            plan = create_plan([{
-                        'category': category.id,
-                        'formula': 'amount * 0.8',
-                        }, {
-                        'formula': 'amount',
-                        }])
-
-            self.assertEqual(plan.compute(Decimal(1), product), Decimal('0.8'))
-
-            template = product.template
-            template.categories = []
-            template.save()
-
-            self.assertEqual(plan.compute(Decimal(1), product), Decimal(1))
-
-            template.categories = [child_category]
-            template.save()
-
-            self.assertEqual(plan.compute(Decimal(1), product), Decimal('0.8'))
-
-    @with_transaction()
-    def test_plan_no_product(self):
-        "Test plan with no product"
-        pool = Pool()
-        Category = pool.get('product.category')
-        PlanLine = pool.get('commission.plan.line')
-
-        category = Category(name="Category")
-        category.save()
-
-        company = create_company()
-        with set_company(company):
-            product = create_product("Other", Decimal(10))
-            plan = create_plan([{
-                        'category': category.id,
-                        'formula': 'amount * 0.8',
-                        }, {
-                        'product': product.id,
-                        'formula': 'amount * 0.7',
-                        }, {
-                        'formula': 'amount',
-                        }])
-
-            self.assertEqual(plan.compute(Decimal(1), None), Decimal(1))
-
-            PlanLine.delete(plan.lines[1:])
-
-            self.assertEqual(plan.compute(Decimal(1), None), None)
-
-
-def suite():
-    suite = test_suite()
-    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
-            CommissionTestCase))
-    suite.addTests(doctest.DocFileSuite('scenario_commission.rst',
-            tearDown=doctest_teardown, encoding='utf-8',
-            checker=doctest_checker,
-            optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
-    suite.addTests(doctest.DocFileSuite('scenario_agent_selection.rst',
-            tearDown=doctest_teardown, encoding='utf-8',
-            checker=doctest_checker,
-            optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
-    return suite
diff -r b5960815f3df -r 080659b1bcc9 tests/test_module.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_module.py      Sat Apr 16 18:30:17 2022 +0200
@@ -0,0 +1,119 @@
+# This file is part of Tryton.  The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
+
+from decimal import Decimal
+
+from trytond.modules.company.tests import (
+    CompanyTestMixin, PartyCompanyCheckEraseMixin, create_company, set_company)
+from trytond.pool import Pool
+from trytond.tests.test_tryton import ModuleTestCase, with_transaction
+
+
+def create_product(name, list_price, categories=None):
+    pool = Pool()
+    Template = pool.get('product.template')
+    Product = pool.get('product.product')
+    Uom = pool.get('product.uom')
+
+    unit, = Uom.search([('name', '=', 'Unit')])
+    template = Template(
+        name=name,
+        type='service',
+        list_price=list_price,
+        default_uom=unit,
+        products=None,
+        )
+    if categories:
+        template.categories = categories
+    template.save()
+    product = Product(template=template)
+    product.save()
+    return product
+
+
+def create_plan(lines):
+    pool = Pool()
+    Plan = pool.get('commission.plan')
+
+    commission_product = create_product("Commission", Decimal(10), [])
+    plan, = Plan.create([{
+                'name': "Commission Plan",
+                'commission_product': commission_product.id,
+                'lines': [('create', lines)]
+
+                }])
+    return plan
+
+
+class CommissionTestCase(
+        PartyCompanyCheckEraseMixin, CompanyTestMixin, ModuleTestCase):
+    'Test Commission module'
+    module = 'commission'
+    extras = ['sale']
+
+    @with_transaction()
+    def test_plan_category(self):
+        "Test plan with category"
+        pool = Pool()
+        Category = pool.get('product.category')
+
+        category = Category(name="Category")
+        category.save()
+        child_category = Category(name="Child Category", parent=category)
+        child_category.save()
+
+        company = create_company()
+        with set_company(company):
+            product = create_product("Other", Decimal(10), [category])
+
+            plan = create_plan([{
+                        'category': category.id,
+                        'formula': 'amount * 0.8',
+                        }, {
+                        'formula': 'amount',
+                        }])
+
+            self.assertEqual(plan.compute(Decimal(1), product), Decimal('0.8'))
+
+            template = product.template
+            template.categories = []
+            template.save()
+
+            self.assertEqual(plan.compute(Decimal(1), product), Decimal(1))
+
+            template.categories = [child_category]
+            template.save()
+
+            self.assertEqual(plan.compute(Decimal(1), product), Decimal('0.8'))
+
+    @with_transaction()
+    def test_plan_no_product(self):
+        "Test plan with no product"
+        pool = Pool()
+        Category = pool.get('product.category')
+        PlanLine = pool.get('commission.plan.line')
+
+        category = Category(name="Category")
+        category.save()
+
+        company = create_company()
+        with set_company(company):
+            product = create_product("Other", Decimal(10))
+            plan = create_plan([{
+                        'category': category.id,
+                        'formula': 'amount * 0.8',
+                        }, {
+                        'product': product.id,
+                        'formula': 'amount * 0.7',
+                        }, {
+                        'formula': 'amount',
+                        }])
+
+            self.assertEqual(plan.compute(Decimal(1), None), Decimal(1))
+
+            PlanLine.delete(plan.lines[1:])
+
+            self.assertEqual(plan.compute(Decimal(1), None), None)
+
+
+del ModuleTestCase
diff -r b5960815f3df -r 080659b1bcc9 tests/test_scenario.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_scenario.py    Sat Apr 16 18:30:17 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 b5960815f3df -r 080659b1bcc9 tox.ini
--- a/tox.ini   Mon Apr 11 23:24:21 2022 +0200
+++ b/tox.ini   Sat Apr 16 18:30:17 2022 +0200
@@ -2,8 +2,9 @@
 envlist = {py37,py38,py39,py310}-{sqlite,postgresql}
 
 [testenv]
+extras = test
 commands =
-    coverage run --include=.*/commission/* setup.py test
+    coverage run --include=.*/commission/* -m unittest discover -s tests
     coverage report --include=.*/commission/* --omit=*/tests/*
 deps =
     coverage

Reply via email to