Bug Pnl
This commit is contained in:
@@ -82,6 +82,62 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
||||
|
||||
self.assertEqual([line.sample.reference for line in ordered], ['A', 'R'])
|
||||
|
||||
def test_coffee_line_attributes_name_uses_quality_fields(self):
|
||||
'coffee line attribute name is built from coffee quality fields'
|
||||
line = SimpleNamespace(
|
||||
coffee_origin='Brazil',
|
||||
coffee_type='arabica',
|
||||
coffee_process='natural',
|
||||
coffee_variety='Bourbon',
|
||||
coffee_crop_year='26/27',
|
||||
coffee_screen_size='17/18',
|
||||
coffee_moisture_max=Decimal('11.50'),
|
||||
coffee_defect_max=12,
|
||||
coffee_cup_score_min=Decimal('82.00'))
|
||||
|
||||
self.assertEqual(
|
||||
coffee_module.CoffeeLineMixin._coffee_attributes_name(line),
|
||||
'Brazil | Arabica | Natural | Bourbon | 26/27 | 17/18 | '
|
||||
'11.50 | 12 | 82.00')
|
||||
|
||||
def test_coffee_line_attributes_name_ignores_empty_quality_fields(self):
|
||||
'empty coffee quality fields keep the standard product attributes name'
|
||||
line = SimpleNamespace(
|
||||
coffee_origin='',
|
||||
coffee_type=None,
|
||||
coffee_process=None,
|
||||
coffee_variety=None,
|
||||
coffee_crop_year=None,
|
||||
coffee_screen_size=None,
|
||||
coffee_moisture_max=None,
|
||||
coffee_defect_max=None,
|
||||
coffee_cup_score_min=None)
|
||||
|
||||
self.assertIsNone(
|
||||
coffee_module.CoffeeLineMixin._coffee_attributes_name(line))
|
||||
|
||||
def test_purchase_line_attributes_name_prefers_coffee_quality(self):
|
||||
'purchase line attributes name uses coffee quality when available'
|
||||
line = SimpleNamespace(
|
||||
_coffee_attributes_name=lambda: 'Brazil | Arabica',
|
||||
product=None,
|
||||
attributes=None)
|
||||
|
||||
self.assertEqual(
|
||||
purchase_module.Line.on_change_with_attributes_name(line),
|
||||
'Brazil | Arabica')
|
||||
|
||||
def test_sale_line_attributes_name_prefers_coffee_quality(self):
|
||||
'sale line attributes name uses coffee quality when available'
|
||||
line = SimpleNamespace(
|
||||
_coffee_attributes_name=lambda: 'Brazil | Arabica',
|
||||
product=None,
|
||||
attributes=None)
|
||||
|
||||
self.assertEqual(
|
||||
sale_module.SaleLine.on_change_with_attributes_name(line),
|
||||
'Brazil | Arabica')
|
||||
|
||||
def test_coffee_lab_analysis_compliance_uses_line_targets(self):
|
||||
'coffee lab analysis compliance checks sample line targets'
|
||||
line = SimpleNamespace(
|
||||
@@ -2111,10 +2167,12 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
||||
|
||||
self.assertEqual(values[0]['amount'], Decimal('-200.00'))
|
||||
self.assertEqual(values[0]['base_amount'], Decimal('-200'))
|
||||
self.assertEqual(values[0]['date'], today)
|
||||
self.assertIsNone(values[0]['mtm_price'])
|
||||
self.assertIsNone(values[0]['mtm'])
|
||||
self.assertEqual(values[1]['amount'], Decimal('200.00'))
|
||||
self.assertEqual(values[1]['base_amount'], Decimal('200'))
|
||||
self.assertEqual(values[1]['date'], today)
|
||||
self.assertIsNone(values[1]['mtm_price'])
|
||||
self.assertIsNone(values[1]['mtm'])
|
||||
|
||||
@@ -2154,6 +2212,7 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
||||
values = Valuation.create_pnl_der_from_sale_line(sale_line)
|
||||
|
||||
self.assertEqual(values[0]['price'], Decimal('100.0000'))
|
||||
self.assertEqual(values[0]['date'], today)
|
||||
self.assertEqual(values[0]['amount'], Decimal('200.00'))
|
||||
self.assertEqual(values[0]['base_amount'], Decimal('200'))
|
||||
self.assertIsNone(values[0]['mtm_price'])
|
||||
|
||||
Reference in New Issue
Block a user