changeset 3720995c6762 in modules/stock_lot_sled:default
details:
https://hg.tryton.org/modules/stock_lot_sled?cmd=changeset&node=3720995c6762
description:
Replace test setuptools command by unittest discover
issue9215
review389851002
diffstat:
setup.py | 6 +-
tests/__init__.py | 7 -
tests/test_module.py | 161 +++++++++++++++++++++++++++++++++++++++++
tests/test_stock_lot_sled.py | 167 -------------------------------------------
tox.ini | 3 +-
5 files changed, 166 insertions(+), 178 deletions(-)
diffs (383 lines):
diff -r 76dd7caba975 -r 3720995c6762 setup.py
--- a/setup.py Sun Apr 10 19:11:40 2022 +0200
+++ b/setup.py Sat Apr 16 18:30:19 2022 +0200
@@ -136,13 +136,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]
stock_lot_sled = trytond.modules.stock_lot_sled
""",
- test_suite='tests',
- test_loader='trytond.test_loader:Loader',
- tests_require=tests_require,
)
diff -r 76dd7caba975 -r 3720995c6762 tests/__init__.py
--- a/tests/__init__.py Sun Apr 10 19:11:40 2022 +0200
+++ b/tests/__init__.py Sat Apr 16 18:30:19 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.stock_lot_sled.tests.test_stock_lot_sled import suite
-except ImportError:
- from .test_stock_lot_sled import suite
-
-__all__ = ['suite']
diff -r 76dd7caba975 -r 3720995c6762 tests/test_module.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_module.py Sat Apr 16 18:30:19 2022 +0200
@@ -0,0 +1,161 @@
+# 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, create_company, set_company)
+from trytond.pool import Pool
+from trytond.tests.test_tryton import ModuleTestCase, with_transaction
+from trytond.transaction import Transaction
+
+
+class StockLotSLEDTestCase(CompanyTestMixin, ModuleTestCase):
+ 'Test Stock Lot SLED module'
+ module = 'stock_lot_sled'
+ longMessage = True
+
+ @with_transaction()
+ def test_sled(self):
+ 'Test SLED'
+ pool = Pool()
+ Uom = pool.get('product.uom')
+ Template = pool.get('product.template')
+ Product = pool.get('product.product')
+ Location = pool.get('stock.location')
+ Date = pool.get('ir.date')
+ Move = pool.get('stock.move')
+ Lot = pool.get('stock.lot')
+ Period = pool.get('stock.period')
+ Config = pool.get('stock.configuration')
+
+ u, = Uom.search([('name', '=', 'Unit')])
+ template = Template(
+ name='Test SLED',
+ type='goods',
+ default_uom=u,
+ shelf_life_state='optional',
+ )
+ template.save()
+ product = Product(template=template)
+ product.save()
+
+ supplier, = Location.search([('code', '=', 'SUP')])
+ storage, = Location.search([('code', '=', 'CUS')])
+
+ company = create_company()
+ with set_company(company):
+ today = Date.today()
+
+ lot = Lot(
+ number='Test',
+ product=product,
+ shelf_life_expiration_date=today + datetime.timedelta(days=5),
+ )
+ lot.save()
+
+ move = Move(
+ product=product,
+ uom=u,
+ quantity=5,
+ from_location=supplier,
+ to_location=storage,
+ planned_date=today,
+ company=company,
+ unit_price=0,
+ currency=company.currency,
+ lot=lot,
+ )
+ move.save()
+
+ period = Period(date=today + datetime.timedelta(days=-10),
+ company=company)
+ period.save()
+ Period.close([period])
+
+ config = Config(1)
+
+ empty = {}
+ computed = {(storage.id, product.id): 5}
+ delta = {(storage.id, product.id): -5}
+ for context, result in [
+ ({'stock_date_end': datetime.date.min}, empty),
+ ({'stock_date_end': today + datetime.timedelta(days=-1)},
+ empty),
+ ({'stock_date_end': today}, empty),
+ ({'stock_date_end': today, 'forecast': True}, computed),
+ ({'stock_date_end': today + datetime.timedelta(days=3)},
+ computed),
+ ({'stock_date_end': today + datetime.timedelta(days=5)},
+ computed),
+ ({'stock_date_end': today + datetime.timedelta(days=6)},
+ empty),
+ ({}, empty),
+ ({'stock_date_start': today, 'stock_date_end': today},
+ empty),
+ ({'stock_date_start': today + datetime.timedelta(days=1),
+ 'stock_date_end': today + datetime.timedelta(days=7)},
+ delta),
+ ({'stock_date_start': today + datetime.timedelta(days=1),
+ 'stock_date_end': today + datetime.timedelta(days=2)},
+ empty),
+ ({'stock_date_start': today + datetime.timedelta(days=1),
+ 'stock_date_end': today + datetime.timedelta(days=5)},
+ empty),
+ ({'stock_date_start': today + datetime.timedelta(days=5),
+ 'stock_date_end': today + datetime.timedelta(days=6)},
+ delta),
+ ({'stock_date_start': today + datetime.timedelta(days=5),
+ 'stock_date_end': today + datetime.timedelta(days=7)},
+ delta),
+ ({'stock_date_start': today + datetime.timedelta(days=6),
+ 'stock_date_end': today + datetime.timedelta(days=7)},
+ empty),
+ ({'stock_date_end': datetime.date.max}, empty),
+ ]:
+ with Transaction().set_context(context=context,
+ locations=[storage.id]):
+ quantity = Product.products_by_location(
+ [storage.id], grouping_filter=([product.id],))
+ self.assertEqual(quantity, result,
+ msg='context: %s' % repr(context))
+
+ quantity = Product.products_by_location(
+ [storage.id], grouping_filter=([product.id],),
+ with_childs=True)
+ self.assertEqual(quantity, result,
+ msg='context: %s, with childs' % repr(context))
+
+ quantity = Product.products_by_location(
+ [storage.id],
+ grouping=('product.template',),
+ grouping_filter=([product.template.id],),)
+ self.assertEqual(quantity, result,
+ msg='template, context: %s' % repr(context))
+
+ quantity = Product.products_by_location(
+ [storage.id],
+ grouping=('product.template',),
+ grouping_filter=([product.template.id],),
+ with_childs=True)
+ self.assertEqual(quantity, result,
+ msg='template, context: %s, with_childs' %
+ repr(context))
+
+ for context, delay, result in [
+ ({'stock_date_end': datetime.date.min},
+ datetime.timedelta(days=-1), empty),
+ ({'stock_date_end': datetime.date.max},
+ datetime.timedelta(days=1), empty),
+ ]:
+ config.shelf_life_delay = delay
+ config.save()
+ with Transaction().set_context(context=context,
+ locations=[storage.id]):
+ quantity = Product.products_by_location(
+ [storage.id], grouping_filter=([product.id],))
+ self.assertEqual(quantity, result,
+ msg='context: %s; shelf_life_delay: %s' %
+ (repr(context), delay))
+
+
+del ModuleTestCase
diff -r 76dd7caba975 -r 3720995c6762 tests/test_stock_lot_sled.py
--- a/tests/test_stock_lot_sled.py Sun Apr 10 19:11:40 2022 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +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 unittest
-
-import trytond.tests.test_tryton
-from trytond.modules.company.tests import (
- CompanyTestMixin, create_company, set_company)
-from trytond.pool import Pool
-from trytond.tests.test_tryton import ModuleTestCase, with_transaction
-from trytond.transaction import Transaction
-
-
-class StockLotSLEDTestCase(CompanyTestMixin, ModuleTestCase):
- 'Test Stock Lot SLED module'
- module = 'stock_lot_sled'
- longMessage = True
-
- @with_transaction()
- def test_sled(self):
- 'Test SLED'
- pool = Pool()
- Uom = pool.get('product.uom')
- Template = pool.get('product.template')
- Product = pool.get('product.product')
- Location = pool.get('stock.location')
- Date = pool.get('ir.date')
- Move = pool.get('stock.move')
- Lot = pool.get('stock.lot')
- Period = pool.get('stock.period')
- Config = pool.get('stock.configuration')
-
- u, = Uom.search([('name', '=', 'Unit')])
- template = Template(
- name='Test SLED',
- type='goods',
- default_uom=u,
- shelf_life_state='optional',
- )
- template.save()
- product = Product(template=template)
- product.save()
-
- supplier, = Location.search([('code', '=', 'SUP')])
- storage, = Location.search([('code', '=', 'CUS')])
-
- company = create_company()
- with set_company(company):
- today = Date.today()
-
- lot = Lot(
- number='Test',
- product=product,
- shelf_life_expiration_date=today + datetime.timedelta(days=5),
- )
- lot.save()
-
- move = Move(
- product=product,
- uom=u,
- quantity=5,
- from_location=supplier,
- to_location=storage,
- planned_date=today,
- company=company,
- unit_price=0,
- currency=company.currency,
- lot=lot,
- )
- move.save()
-
- period = Period(date=today + datetime.timedelta(days=-10),
- company=company)
- period.save()
- Period.close([period])
-
- config = Config(1)
-
- empty = {}
- computed = {(storage.id, product.id): 5}
- delta = {(storage.id, product.id): -5}
- for context, result in [
- ({'stock_date_end': datetime.date.min}, empty),
- ({'stock_date_end': today + datetime.timedelta(days=-1)},
- empty),
- ({'stock_date_end': today}, empty),
- ({'stock_date_end': today, 'forecast': True}, computed),
- ({'stock_date_end': today + datetime.timedelta(days=3)},
- computed),
- ({'stock_date_end': today + datetime.timedelta(days=5)},
- computed),
- ({'stock_date_end': today + datetime.timedelta(days=6)},
- empty),
- ({}, empty),
- ({'stock_date_start': today, 'stock_date_end': today},
- empty),
- ({'stock_date_start': today + datetime.timedelta(days=1),
- 'stock_date_end': today + datetime.timedelta(days=7)},
- delta),
- ({'stock_date_start': today + datetime.timedelta(days=1),
- 'stock_date_end': today + datetime.timedelta(days=2)},
- empty),
- ({'stock_date_start': today + datetime.timedelta(days=1),
- 'stock_date_end': today + datetime.timedelta(days=5)},
- empty),
- ({'stock_date_start': today + datetime.timedelta(days=5),
- 'stock_date_end': today + datetime.timedelta(days=6)},
- delta),
- ({'stock_date_start': today + datetime.timedelta(days=5),
- 'stock_date_end': today + datetime.timedelta(days=7)},
- delta),
- ({'stock_date_start': today + datetime.timedelta(days=6),
- 'stock_date_end': today + datetime.timedelta(days=7)},
- empty),
- ({'stock_date_end': datetime.date.max}, empty),
- ]:
- with Transaction().set_context(context=context,
- locations=[storage.id]):
- quantity = Product.products_by_location(
- [storage.id], grouping_filter=([product.id],))
- self.assertEqual(quantity, result,
- msg='context: %s' % repr(context))
-
- quantity = Product.products_by_location(
- [storage.id], grouping_filter=([product.id],),
- with_childs=True)
- self.assertEqual(quantity, result,
- msg='context: %s, with childs' % repr(context))
-
- quantity = Product.products_by_location(
- [storage.id],
- grouping=('product.template',),
- grouping_filter=([product.template.id],),)
- self.assertEqual(quantity, result,
- msg='template, context: %s' % repr(context))
-
- quantity = Product.products_by_location(
- [storage.id],
- grouping=('product.template',),
- grouping_filter=([product.template.id],),
- with_childs=True)
- self.assertEqual(quantity, result,
- msg='template, context: %s, with_childs' %
- repr(context))
-
- for context, delay, result in [
- ({'stock_date_end': datetime.date.min},
- datetime.timedelta(days=-1), empty),
- ({'stock_date_end': datetime.date.max},
- datetime.timedelta(days=1), empty),
- ]:
- config.shelf_life_delay = delay
- config.save()
- with Transaction().set_context(context=context,
- locations=[storage.id]):
- quantity = Product.products_by_location(
- [storage.id], grouping_filter=([product.id],))
- self.assertEqual(quantity, result,
- msg='context: %s; shelf_life_delay: %s' %
- (repr(context), delay))
-
-
-def suite():
- suite = trytond.tests.test_tryton.suite()
- suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
- StockLotSLEDTestCase))
- return suite
diff -r 76dd7caba975 -r 3720995c6762 tox.ini
--- a/tox.ini Sun Apr 10 19:11:40 2022 +0200
+++ b/tox.ini Sat Apr 16 18:30:19 2022 +0200
@@ -2,8 +2,9 @@
envlist = {py37,py38,py39,py310}-{sqlite,postgresql}
[testenv]
+extras = test
commands =
- coverage run --include=.*/stock_lot_sled/* setup.py test
+ coverage run --include=.*/stock_lot_sled/* -m unittest discover -s tests
coverage report --include=.*/stock_lot_sled/* --omit=*/tests/*
deps =
coverage