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