70 lines
2.3 KiB
Python
70 lines
2.3 KiB
Python
# 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, create_company, set_company)
|
|
from trytond.pool import Pool
|
|
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
|
|
|
|
|
|
class ProductPriceListParentTestCase(CompanyTestMixin, ModuleTestCase):
|
|
'Test Product Price List Parent module'
|
|
module = 'product_price_list_parent'
|
|
|
|
@with_transaction()
|
|
def test_price_list_parent(self):
|
|
"Test price list with parent"
|
|
pool = Pool()
|
|
Template = pool.get('product.template')
|
|
Product = pool.get('product.product')
|
|
Party = pool.get('party.party')
|
|
Uom = pool.get('product.uom')
|
|
PriceList = pool.get('product.price_list')
|
|
|
|
company = create_company()
|
|
with set_company(company):
|
|
party = Party(name='Customer')
|
|
party.save()
|
|
|
|
unit, = Uom.search([('name', '=', "Unit")])
|
|
|
|
template = Template(
|
|
name="Template", list_price=Decimal(10), default_uom=unit)
|
|
template.save()
|
|
product = Product(template=template)
|
|
product.save()
|
|
|
|
price_list_parent, = PriceList.create([{
|
|
'name': "Parent",
|
|
'lines': [('create', [{
|
|
'formula': 'unit_price * 2',
|
|
}])],
|
|
}])
|
|
price_list, = PriceList.create([{
|
|
'name': "List",
|
|
'parent': price_list_parent.id,
|
|
'lines': [('create', [{
|
|
'formula': 'parent_unit_price * 2',
|
|
}])],
|
|
}])
|
|
|
|
self.assertEqual(
|
|
price_list.compute(
|
|
party, product, product.list_price, 1, unit),
|
|
Decimal('40'))
|
|
|
|
@with_transaction()
|
|
def test_line_formula_help(self):
|
|
"Test help of line formula"
|
|
pool = Pool()
|
|
PriceListLine = pool.get('product.price_list.line')
|
|
|
|
fields = PriceListLine.fields_get(['formula'])
|
|
|
|
self.assertIn('parent_unit_price', fields['formula']['help'])
|
|
|
|
|
|
del ModuleTestCase
|