Files
suite/sale_payment_web/tests/test_sale_payment.py
2022-07-20 23:32:00 +00:00

50 lines
2.1 KiB
Python

from odoo.addons.sale.tests.test_sale_to_invoice import TestSaleToInvoice
from odoo.exceptions import UserError
from odoo.tests import tagged
@tagged('post_install', '-at_install')
class TestSalePayment(TestSaleToInvoice):
def _sale_context(self):
return {
'active_model': 'sale.order',
'active_ids': [self.sale_order.id],
'active_id': self.sale_order.id,
}
def test_00_payment(self):
self.sale_order.action_confirm()
payment_wizard = self.env['account.payment.register'].with_context(self._sale_context()).create({'amount': -15})
self.assertTrue(payment_wizard.journal_id)
with self.assertRaises(UserError):
payment_wizard._create_payments()
payment_wizard = self.env['account.payment.register'].with_context(self._sale_context()).create({'amount': 0})
self.assertTrue(payment_wizard.journal_id)
with self.assertRaises(UserError):
payment_wizard._create_payments()
payment_wizard = self.env['account.payment.register'].with_context(self._sale_context()).create({})
self.assertTrue(payment_wizard.journal_id)
payment = payment_wizard._create_payments()
self.assertEqual(payment.amount, self.sale_order.amount_total)
self.assertEqual(payment.sale_order_id, self.sale_order)
self.assertEqual(self.sale_order.manual_amount_remaining, 0.0)
payment_wizard = self.env['account.payment.register'].with_context(self._sale_context()).create({'amount': 15})
self.assertTrue(payment_wizard.journal_id)
with self.assertRaises(UserError):
payment_wizard._create_payments()
def test_10_partial_payment(self):
payment_wizard = self.env['account.payment.register'].with_context(self._sale_context()).create({'amount': 50})
self.assertTrue(payment_wizard.journal_id)
payment = payment_wizard._create_payments()
self.assertEqual(payment.amount, 50)
self.assertEqual(payment.sale_order_id, self.sale_order)
self.assertEqual(self.sale_order.manual_amount_remaining, self.sale_order.amount_total - 50)