first commit
This commit is contained in:
74
modules/purchase_request/tests/test_module.py
Normal file
74
modules/purchase_request/tests/test_module.py
Normal file
@@ -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.
|
||||
|
||||
import datetime as dt
|
||||
|
||||
from trytond.modules.company.tests import create_company, set_company
|
||||
from trytond.modules.party.tests import PartyCheckReplaceMixin
|
||||
from trytond.pool import Pool
|
||||
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
|
||||
|
||||
|
||||
class PurchaseRequestTestCase(PartyCheckReplaceMixin, ModuleTestCase):
|
||||
'Test Purchase Request module'
|
||||
module = 'purchase_request'
|
||||
|
||||
@with_transaction()
|
||||
def test_find_best_product_supplier(self):
|
||||
"Test finding best product supplier"
|
||||
pool = Pool()
|
||||
ProductTemplate = pool.get('product.template')
|
||||
Product = pool.get('product.product')
|
||||
ProductSupplier = pool.get('purchase.product_supplier')
|
||||
Party = pool.get('party.party')
|
||||
UoM = pool.get('product.uom')
|
||||
PurchaseRequest = pool.get('purchase.request')
|
||||
Date = pool.get('ir.date')
|
||||
|
||||
supplier = Party(name="Supplier")
|
||||
supplier.save()
|
||||
|
||||
company = create_company()
|
||||
with set_company(company):
|
||||
unit, = UoM.search([('name', '=', "Unit")])
|
||||
template = ProductTemplate(name="Product")
|
||||
template.purchasable = True
|
||||
template.default_uom = unit
|
||||
template.purchase_uom = unit
|
||||
template.save()
|
||||
product = Product(template=template)
|
||||
product.save()
|
||||
|
||||
product_supplier1 = ProductSupplier(
|
||||
template=template, party=supplier,
|
||||
lead_time=dt.timedelta(days=5))
|
||||
product_supplier1.save()
|
||||
product_supplier2 = ProductSupplier(
|
||||
template=template, party=supplier,
|
||||
lead_time=dt.timedelta(days=2))
|
||||
product_supplier2.save()
|
||||
product_supplier3 = ProductSupplier(
|
||||
template=template, party=supplier,
|
||||
lead_time=dt.timedelta(days=3))
|
||||
product_supplier3.save()
|
||||
|
||||
today = Date.today()
|
||||
for date, product_supplier in [
|
||||
(None, product_supplier1),
|
||||
(today, product_supplier2),
|
||||
(today + dt.timedelta(days=1), product_supplier2),
|
||||
(today + dt.timedelta(days=2), product_supplier2),
|
||||
(today + dt.timedelta(days=3), product_supplier2),
|
||||
(today + dt.timedelta(days=4), product_supplier2),
|
||||
(today + dt.timedelta(days=5), product_supplier1),
|
||||
(dt.date.max, product_supplier1),
|
||||
(dt.date.min, product_supplier2),
|
||||
]:
|
||||
with self.subTest(date=date):
|
||||
self.assertEqual(
|
||||
PurchaseRequest.find_best_product_supplier(
|
||||
product, date),
|
||||
product_supplier)
|
||||
|
||||
|
||||
del ModuleTestCase
|
||||
Reference in New Issue
Block a user