Pricing adj

This commit is contained in:
2026-06-14 17:29:28 +02:00
parent 9c92904b3e
commit 667b66487d
2 changed files with 48 additions and 21 deletions

View File

@@ -3359,13 +3359,13 @@ class PurchaseTradeTestCase(ModuleTestCase):
datetime.date(2026, 4, 3),
])
def test_pricing_period_blank_every_uses_available_dates_before_trigger(self):
'Blank Every and Nb quotation returns available dates before trigger'
def test_pricing_period_blank_every_positive_uses_available_dates_after_trigger(self):
'Blank Every and positive Nb quotation returns dates after trigger'
Period = Pool().get('pricing.period')
calendar = Mock()
excluded = {
datetime.date(2026, 4, 8),
datetime.date(2026, 4, 10),
datetime.date(2026, 5, 14),
datetime.date(2026, 5, 16),
}
calendar.IsQuote = Mock(
side_effect=lambda date: date.date() not in excluded)
@@ -3374,15 +3374,15 @@ class PurchaseTradeTestCase(ModuleTestCase):
period.every = None
period.nb_quotation = 4
_, _, dates = period.getDates(datetime.date(2026, 4, 13), calendar)
_, _, dates = period.getDates(datetime.date(2026, 5, 12), calendar)
self.assertEqual(
[date.date() for date in dates],
[
datetime.date(2026, 4, 6),
datetime.date(2026, 4, 7),
datetime.date(2026, 4, 9),
datetime.date(2026, 4, 12),
datetime.date(2026, 5, 13),
datetime.date(2026, 5, 15),
datetime.date(2026, 5, 17),
datetime.date(2026, 5, 18),
])
def test_pricing_period_blank_every_negative_uses_available_dates_before_trigger(self):
@@ -3393,17 +3393,40 @@ class PurchaseTradeTestCase(ModuleTestCase):
period.every = None
period.nb_quotation = -4
_, _, dates = period.getDates(datetime.date(2026, 4, 13))
_, _, dates = period.getDates(datetime.date(2026, 5, 12))
self.assertEqual(
[date.date() for date in dates],
[
datetime.date(2026, 4, 9),
datetime.date(2026, 4, 10),
datetime.date(2026, 4, 11),
datetime.date(2026, 4, 12),
datetime.date(2026, 5, 8),
datetime.date(2026, 5, 9),
datetime.date(2026, 5, 10),
datetime.date(2026, 5, 11),
])
def test_pricing_trigger_application_period_defaults_to_pricing_period(self):
'application period defaults to pricing period without being cleared'
Trigger = Pool().get('pricing.trigger')
trigger = Trigger()
trigger.pricing_period = Mock(id=21)
trigger.application_period = None
self.assertEqual(
trigger.on_change_with_application_period(),
trigger.pricing_period)
def test_pricing_trigger_application_period_keeps_existing_value(self):
'application period keeps explicit value when pricing period changes'
Trigger = Pool().get('pricing.trigger')
application_period = Mock(id=22)
trigger = Trigger()
trigger.pricing_period = Mock(id=21)
trigger.application_period = application_period
self.assertEqual(
trigger.on_change_with_application_period(),
application_period)
def test_purchase_line_get_avg_accepts_decimal_matrix_prices(self):
'purchase pricing averages Decimal matrix prices without float mixing'
PurchaseLine = Pool().get('purchase.line')