Bug lot.qt
This commit is contained in:
@@ -704,6 +704,9 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
||||
lot_quantity=Decimal('40'),
|
||||
lot_p=lot,
|
||||
lot_s=sale_lot,
|
||||
lot_shipment_in=Mock(),
|
||||
lot_shipment_internal=None,
|
||||
lot_shipment_out=None,
|
||||
lot_shipment_origin='stock.shipment.in,12',
|
||||
)
|
||||
lqt.is_planned_transport.return_value = True
|
||||
@@ -722,14 +725,53 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
||||
state = wizard.transition_start()
|
||||
|
||||
self.assertEqual(state, 'end')
|
||||
lot.updateVirtualPart.assert_called_once_with(
|
||||
Decimal('-40'), 'stock.shipment.in,12', sale_lot, 'both')
|
||||
lot.updateVirtualPart.assert_not_called()
|
||||
LotQt.restore_planned_open_quantity.assert_called_once_with(
|
||||
lqt, Decimal('40'))
|
||||
LotQt.delete.assert_called_once_with([lqt])
|
||||
lot.createVirtualPart.assert_not_called()
|
||||
Lot.assert_lines_quantity_consistency.assert_called_once_with([
|
||||
purchase_line, sale_line])
|
||||
|
||||
def test_lot_unship_deletes_zero_scheduled_lotqt_without_restore(self):
|
||||
'unlinking a residual zero scheduled lot.qt only cleans the shipment tab'
|
||||
wizard = lot_module.LotUnship()
|
||||
wizard.records = [Mock(id=10000007, r_lot_type='virtual')]
|
||||
purchase_line = Mock()
|
||||
sale_line = Mock()
|
||||
lot = Mock(line=purchase_line)
|
||||
sale_lot = Mock(sale_line=sale_line)
|
||||
lqt = Mock(
|
||||
lot_quantity=Decimal('0'),
|
||||
lot_p=lot,
|
||||
lot_s=sale_lot,
|
||||
lot_shipment_in=Mock(),
|
||||
lot_shipment_internal=None,
|
||||
lot_shipment_out=None,
|
||||
)
|
||||
lqt.is_planned_transport.return_value = True
|
||||
Lot = Mock()
|
||||
Lot.return_value = Mock()
|
||||
Lot.skip_quantity_consistency.return_value.__enter__ = Mock()
|
||||
Lot.skip_quantity_consistency.return_value.__exit__ = Mock()
|
||||
LotQt = Mock()
|
||||
LotQt.return_value = lqt
|
||||
Move = Mock()
|
||||
|
||||
pool = Mock()
|
||||
pool.get.side_effect = [Lot, LotQt, Move]
|
||||
with patch('trytond.modules.purchase_trade.lot.Pool',
|
||||
return_value=pool):
|
||||
state = wizard.transition_start()
|
||||
|
||||
self.assertEqual(state, 'end')
|
||||
LotQt.restore_planned_open_quantity.assert_not_called()
|
||||
lot.updateVirtualPart.assert_not_called()
|
||||
lot.createVirtualPart.assert_not_called()
|
||||
LotQt.delete.assert_called_once_with([lqt])
|
||||
Lot.assert_lines_quantity_consistency.assert_called_once_with([
|
||||
purchase_line, sale_line])
|
||||
|
||||
def test_add_physical_lots_requires_linked_transport(self):
|
||||
'physical lots can only be added from a scheduled quantity'
|
||||
LotQt = Pool().get('lot.qt')
|
||||
|
||||
Reference in New Issue
Block a user