This commit is contained in:
2026-05-25 08:18:59 +02:00
parent aed68ba6f4
commit 1e5611f726
4 changed files with 711 additions and 128 deletions

View File

@@ -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')