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

        issue9215
        review389851002
diffstat:

 setup.py                     |   6 +-
 tests/__init__.py            |   7 ---
 tests/test_carrier_weight.py |  85 --------------------------------------------
 tests/test_module.py         |  74 ++++++++++++++++++++++++++++++++++++++
 tests/test_scenario.py       |  22 +++++++++++
 tox.ini                      |   3 +-
 6 files changed, 101 insertions(+), 96 deletions(-)

diffs (240 lines):

diff -r 8f9a66b8f73a -r ba4f81295ed1 setup.py
--- a/setup.py  Sun Apr 10 19:11:38 2022 +0200
+++ b/setup.py  Sat Apr 16 18:30:17 2022 +0200
@@ -141,13 +141,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]
     carrier_weight = trytond.modules.carrier_weight
     """,
-    test_suite='tests',
-    test_loader='trytond.test_loader:Loader',
-    tests_require=tests_require,
     )
diff -r 8f9a66b8f73a -r ba4f81295ed1 tests/__init__.py
--- a/tests/__init__.py Sun Apr 10 19:11:38 2022 +0200
+++ b/tests/__init__.py Sat Apr 16 18:30:17 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.carrier_weight.tests.test_carrier_weight import suite
-except ImportError:
-    from .test_carrier_weight import suite
-
-__all__ = ['suite']
diff -r 8f9a66b8f73a -r ba4f81295ed1 tests/test_carrier_weight.py
--- a/tests/test_carrier_weight.py      Sun Apr 10 19:11:38 2022 +0200
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +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
-
-import trytond.tests.test_tryton
-from trytond.modules.company.tests import CompanyTestMixin
-from trytond.modules.currency.tests import create_currency
-from trytond.pool import Pool
-from trytond.tests.test_tryton import (
-    ModuleTestCase, doctest_checker, doctest_teardown, with_transaction)
-
-
-class CarrierWeightTestCase(CompanyTestMixin, ModuleTestCase):
-    'Test CarrierWeight module'
-    module = 'carrier_weight'
-    extras = [
-        'purchase_shipment_cost', 'sale_shipment_cost', 'stock_shipment_cost']
-
-    @with_transaction()
-    def test_compute_weight_price(self):
-        'Test compute_weight_price'
-        pool = Pool()
-        Party = pool.get('party.party')
-        Uom = pool.get('product.uom')
-        Template = pool.get('product.template')
-        Product = pool.get('product.product')
-        Carrier = pool.get('carrier')
-        WeightPriceList = pool.get('carrier.weight_price_list')
-
-        party, = Party.create([{
-                    'name': 'Carrier',
-                    }])
-        uom, = Uom.search([
-                ('name', '=', 'Unit'),
-                ])
-        template, = Template.create([{
-                    'name': 'Carrier',
-                    'default_uom': uom.id,
-                    'type': 'service',
-                    }])
-        product, = Product.create([{
-                    'template': template.id,
-                    }])
-        weight_uom, = Uom.search([
-                ('name', '=', 'Kilogram'),
-                ])
-        currency = create_currency('cu1')
-        carrier, = Carrier.create([{
-                    'party': party.id,
-                    'carrier_product': product.id,
-                    'carrier_cost_method': 'weight',
-                    'weight_uom': weight_uom.id,
-                    'weight_currency': currency.id,
-                    }])
-        for i, weight in enumerate(range(0, 100, 20)):
-            WeightPriceList.create([{
-                        'carrier': carrier.id,
-                        'weight': weight,
-                        'price': Decimal(i),
-                        }])
-        self.assertEqual(
-            carrier.compute_weight_price(0), Decimal(0))
-        for weight, price in [
-                (1, Decimal(0)),
-                (10, Decimal(0)),
-                (20, Decimal(0)),
-                (21, Decimal(1)),
-                (80, Decimal(3)),
-                (81, Decimal(4)),
-                (100, Decimal(4)),
-                ]:
-            self.assertEqual(carrier.compute_weight_price(weight), price)
-
-
-def suite():
-    suite = trytond.tests.test_tryton.suite()
-    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
-            CarrierWeightTestCase))
-    suite.addTests(doctest.DocFileSuite('scenario_carrier_weight.rst',
-            tearDown=doctest_teardown, encoding='utf-8',
-            checker=doctest_checker,
-            optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
-    return suite
diff -r 8f9a66b8f73a -r ba4f81295ed1 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,74 @@
+# 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
+from trytond.modules.currency.tests import create_currency
+from trytond.pool import Pool
+from trytond.tests.test_tryton import ModuleTestCase, with_transaction
+
+
+class CarrierWeightTestCase(CompanyTestMixin, ModuleTestCase):
+    'Test CarrierWeight module'
+    module = 'carrier_weight'
+    extras = [
+        'purchase_shipment_cost', 'sale_shipment_cost', 'stock_shipment_cost']
+
+    @with_transaction()
+    def test_compute_weight_price(self):
+        'Test compute_weight_price'
+        pool = Pool()
+        Party = pool.get('party.party')
+        Uom = pool.get('product.uom')
+        Template = pool.get('product.template')
+        Product = pool.get('product.product')
+        Carrier = pool.get('carrier')
+        WeightPriceList = pool.get('carrier.weight_price_list')
+
+        party, = Party.create([{
+                    'name': 'Carrier',
+                    }])
+        uom, = Uom.search([
+                ('name', '=', 'Unit'),
+                ])
+        template, = Template.create([{
+                    'name': 'Carrier',
+                    'default_uom': uom.id,
+                    'type': 'service',
+                    }])
+        product, = Product.create([{
+                    'template': template.id,
+                    }])
+        weight_uom, = Uom.search([
+                ('name', '=', 'Kilogram'),
+                ])
+        currency = create_currency('cu1')
+        carrier, = Carrier.create([{
+                    'party': party.id,
+                    'carrier_product': product.id,
+                    'carrier_cost_method': 'weight',
+                    'weight_uom': weight_uom.id,
+                    'weight_currency': currency.id,
+                    }])
+        for i, weight in enumerate(range(0, 100, 20)):
+            WeightPriceList.create([{
+                        'carrier': carrier.id,
+                        'weight': weight,
+                        'price': Decimal(i),
+                        }])
+        self.assertEqual(
+            carrier.compute_weight_price(0), Decimal(0))
+        for weight, price in [
+                (1, Decimal(0)),
+                (10, Decimal(0)),
+                (20, Decimal(0)),
+                (21, Decimal(1)),
+                (80, Decimal(3)),
+                (81, Decimal(4)),
+                (100, Decimal(4)),
+                ]:
+            self.assertEqual(carrier.compute_weight_price(weight), price)
+
+
+del ModuleTestCase
diff -r 8f9a66b8f73a -r ba4f81295ed1 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 8f9a66b8f73a -r ba4f81295ed1 tox.ini
--- a/tox.ini   Sun Apr 10 19:11:38 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=.*/carrier_weight/* setup.py test
+    coverage run --include=.*/carrier_weight/* -m unittest discover -s tests
     coverage report --include=.*/carrier_weight/* --omit=*/tests/*
 deps =
     coverage

Reply via email to