Pricing
This commit is contained in:
@@ -1586,6 +1586,69 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
||||
self.assertEqual(second_values['eod_price'], Decimal('106.0000'))
|
||||
self.assertTrue(second_values['last'])
|
||||
|
||||
def test_pricing_trigger_manual_from_to_generates_dates_without_calendar(self):
|
||||
'manual pricing From/To uses calendar days when no calendar is selected'
|
||||
Trigger = Pool().get('pricing.trigger')
|
||||
trigger = Trigger()
|
||||
trigger.pricing_period = None
|
||||
trigger.from_p = datetime.date(2026, 4, 1)
|
||||
trigger.to_p = datetime.date(2026, 4, 3)
|
||||
trigger.getprice = Mock(side_effect=lambda date: {
|
||||
'date': date,
|
||||
'price': Decimal('100'),
|
||||
'avg': Decimal('100'),
|
||||
'avg_minus_1': Decimal('100'),
|
||||
'isAvg': False,
|
||||
})
|
||||
|
||||
dates, prices = trigger.getPricingListDates(None)
|
||||
|
||||
self.assertEqual(
|
||||
[date.date() for date in dates],
|
||||
[
|
||||
datetime.date(2026, 4, 1),
|
||||
datetime.date(2026, 4, 2),
|
||||
datetime.date(2026, 4, 3),
|
||||
])
|
||||
self.assertEqual(len(prices), 3)
|
||||
|
||||
def test_pricing_trigger_manual_application_defaults_to_pricing_from_to(self):
|
||||
'empty manual application From/To falls back to manual pricing From/To'
|
||||
Trigger = Pool().get('pricing.trigger')
|
||||
trigger = Trigger()
|
||||
trigger.pricing_period = None
|
||||
trigger.application_period = None
|
||||
trigger.from_p = datetime.date(2026, 4, 1)
|
||||
trigger.to_p = datetime.date(2026, 4, 2)
|
||||
trigger.from_a = None
|
||||
trigger.to_a = None
|
||||
|
||||
dates, prices = trigger.getApplicationListDates(None)
|
||||
|
||||
self.assertEqual(
|
||||
[date.date() for date in dates],
|
||||
[
|
||||
datetime.date(2026, 4, 1),
|
||||
datetime.date(2026, 4, 2),
|
||||
])
|
||||
self.assertEqual(prices, [])
|
||||
|
||||
def test_pricing_trigger_on_change_copies_manual_pricing_dates_to_application(self):
|
||||
'manual pricing From/To is copied to empty application From/To in the UI'
|
||||
Trigger = Pool().get('pricing.trigger')
|
||||
trigger = Trigger()
|
||||
trigger.application_period = None
|
||||
trigger.from_p = datetime.date(2026, 4, 1)
|
||||
trigger.to_p = datetime.date(2026, 4, 30)
|
||||
trigger.from_a = None
|
||||
trigger.to_a = None
|
||||
|
||||
trigger.on_change_from_p()
|
||||
trigger.on_change_to_p()
|
||||
|
||||
self.assertEqual(trigger.from_a, datetime.date(2026, 4, 1))
|
||||
self.assertEqual(trigger.to_a, datetime.date(2026, 4, 30))
|
||||
|
||||
def test_sale_and_purchase_trader_operator_domains_use_explicit_categories(self):
|
||||
'sale and purchase trader/operator fields are filtered by TRADER/OPERATOR categories'
|
||||
Sale = Pool().get('sale.sale')
|
||||
|
||||
Reference in New Issue
Block a user