first commit
This commit is contained in:
85
modules/product_measurements/tests/test_module.py
Normal file
85
modules/product_measurements/tests/test_module.py
Normal file
@@ -0,0 +1,85 @@
|
||||
# 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 create_company, set_company
|
||||
from trytond.pool import Pool
|
||||
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
|
||||
|
||||
|
||||
class ProductMeasurementsTestCase(ModuleTestCase):
|
||||
"Test Product Measurements module"
|
||||
module = 'product_measurements'
|
||||
extras = ['product_price_list']
|
||||
|
||||
@with_transaction()
|
||||
def test_price_list_context_formula_volume(self):
|
||||
"Test price list context formula with volume"
|
||||
pool = Pool()
|
||||
Template = pool.get('product.template')
|
||||
Product = pool.get('product.product')
|
||||
UoM = pool.get('product.uom')
|
||||
PriceList = pool.get('product.price_list')
|
||||
|
||||
unit, = UoM.search([('name', '=', "Unit")])
|
||||
cm3, = UoM.search([('name', '=', "Cubic centimeter")])
|
||||
inch3, = UoM.search([('name', '=', "Cubic inch")])
|
||||
|
||||
company = create_company()
|
||||
with set_company(company):
|
||||
template = Template(
|
||||
name="Product", default_uom=unit, products=None,
|
||||
list_price=Decimal('100'),
|
||||
volume=2, volume_uom=cm3)
|
||||
template.save()
|
||||
product = Product(template=template)
|
||||
product.save()
|
||||
|
||||
price_list = PriceList(
|
||||
name="List", price='list_price',
|
||||
lines=[{
|
||||
'formula': 'unit_price + 5 * volume',
|
||||
'volume_uom': inch3}])
|
||||
price_list.save()
|
||||
|
||||
self.assertEqual(
|
||||
price_list.compute(product, 5, unit),
|
||||
Decimal('100.6102'))
|
||||
|
||||
@with_transaction()
|
||||
def test_price_list_context_formula_weight(self):
|
||||
"Test price list context formula with weight"
|
||||
pool = Pool()
|
||||
Template = pool.get('product.template')
|
||||
Product = pool.get('product.product')
|
||||
UoM = pool.get('product.uom')
|
||||
PriceList = pool.get('product.price_list')
|
||||
|
||||
unit, = UoM.search([('name', '=', "Unit")])
|
||||
gram, = UoM.search([('name', '=', "Gram")])
|
||||
pound, = UoM.search([('name', '=', "Pound")])
|
||||
|
||||
company = create_company()
|
||||
with set_company(company):
|
||||
template = Template(
|
||||
name="Product", default_uom=unit, products=None,
|
||||
list_price=Decimal('100'),
|
||||
weight=5, weight_uom=gram)
|
||||
template.save()
|
||||
product = Product(template=template)
|
||||
product.save()
|
||||
|
||||
price_list = PriceList(
|
||||
name="List", price='list_price',
|
||||
lines=[{
|
||||
'formula': 'unit_price + 5 * weight',
|
||||
'weight_uom': pound}])
|
||||
price_list.save()
|
||||
|
||||
self.assertEqual(
|
||||
price_list.compute(product, 5, unit),
|
||||
Decimal('100.0551'))
|
||||
|
||||
|
||||
del ModuleTestCase
|
||||
Reference in New Issue
Block a user