This commit is contained in:
2026-06-29 21:16:42 +02:00
parent f9ade37eab
commit f2947c9f86
25 changed files with 1015 additions and 94 deletions

View File

@@ -31,20 +31,53 @@ class PurchaseTradeTestCase(ModuleTestCase):
'Test purchase_trade module'
module = 'purchase_trade'
def test_coffee_sample_cup_score_sums_cupping_criteria(self):
'coffee sample cup score sums criteria and subtracts defects'
score_fields = [
'aroma', 'flavor', 'aftertaste', 'acidity', 'body', 'balance',
'sweetness', 'clean_cup', 'uniformity', 'overall']
sample = SimpleNamespace(
defects=Decimal('2.00'),
_score_fields=lambda: score_fields)
for field_name in score_fields:
setattr(sample, field_name, Decimal('8.00'))
def test_coffee_cupping_result_score_sums_configured_criteria(self):
'coffee cupping result score sums criteria and subtracts defects'
score = SimpleNamespace(subtract_from_score=False)
defect = SimpleNamespace(subtract_from_score=True)
result = SimpleNamespace(lines=[
SimpleNamespace(score=Decimal('8.00'), criterion=score),
SimpleNamespace(score=Decimal('8.25'), criterion=score),
SimpleNamespace(score=Decimal('2.00'), criterion=defect),
])
self.assertEqual(
coffee_module.CoffeeSample.get_total_score(sample),
Decimal('78.00'))
coffee_module.CoffeeCuppingResult.get_total_score(result),
Decimal('14.25'))
def test_coffee_cupping_session_counts_requested_cups(self):
'coffee cupping session capacity is based on sample cups'
session = SimpleNamespace(cups_per_sample=3)
lines = [
SimpleNamespace(cups_per_sample=None, session=session),
SimpleNamespace(cups_per_sample=4, session=session),
]
self.assertEqual(
coffee_module.CoffeeCuppingSession._total_requested_cups(lines),
7)
def test_coffee_cupping_session_orders_arabica_before_robusta(self):
'coffee cupping session tasting order keeps robusta last'
arabica = SimpleNamespace(
id=2,
reference='A',
get_public_origin=lambda: 'Colombia',
get_public_coffee_type=lambda: 'arabica')
robusta = SimpleNamespace(
id=1,
reference='R',
get_public_origin=lambda: 'Vietnam',
get_public_coffee_type=lambda: 'robusta')
lines = [
SimpleNamespace(sample=robusta),
SimpleNamespace(sample=arabica),
]
ordered = sorted(
lines, key=coffee_module.CoffeeCuppingSession._line_sort_key)
self.assertEqual([line.sample.reference for line in ordered], ['A', 'R'])
def test_coffee_sample_default_expiry_date_uses_shelf_life(self):
'coffee sample expiry date defaults from request date and shelf life'