Coffee
This commit is contained in:
@@ -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'
|
||||
|
||||
Reference in New Issue
Block a user