[MIG] account_mooncard_receipt_lost_transfer: migrate to 18.0
This commit is contained in:
1
account_mooncard_receipt_lost_transfer/tests/__init__.py
Normal file
1
account_mooncard_receipt_lost_transfer/tests/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from . import test_receipt_lost_transfer
|
||||
@@ -0,0 +1,144 @@
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import fields
|
||||
from odoo.tests.common import TransactionCase
|
||||
import random
|
||||
|
||||
|
||||
class TestReceiptLostTransfer(TransactionCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True))
|
||||
cls.company = cls.env.ref('base.main_company')
|
||||
cls.euro = cls.env.ref('base.EUR')
|
||||
cls.country = cls.env.ref('base.fr')
|
||||
cls.company.write({
|
||||
'currency_id': cls.euro.id,
|
||||
'country_id': cls.country.id,
|
||||
})
|
||||
cls.card_bank_account = cls.env['account.account'].create({
|
||||
'code': '512199',
|
||||
'name': 'Card prepaid account',
|
||||
'account_type': 'asset_cash',
|
||||
})
|
||||
cls.expense_account = cls.env['account.account'].create({
|
||||
'code': '6TESTXXX',
|
||||
'name': 'Test Expense Account',
|
||||
'account_type': 'expense',
|
||||
})
|
||||
cls.card_bank_journal = cls.env['account.journal'].create({
|
||||
'type': 'bank',
|
||||
'name': 'Card Test',
|
||||
'code': 'CARD',
|
||||
'default_account_id': cls.card_bank_account.id,
|
||||
})
|
||||
cls.card = cls.env['newgen.payment.card'].create({
|
||||
'name': 'TESTCARD987',
|
||||
'code': 'TST',
|
||||
'company_id': cls.company.id,
|
||||
'journal_id': cls.card_bank_journal.id,
|
||||
})
|
||||
|
||||
def _create_transaction(self, values):
|
||||
defaults = {
|
||||
'company_id': self.company.id,
|
||||
'card_id': self.card.id,
|
||||
'date': fields.Datetime.now(),
|
||||
'currency_id': self.euro.id,
|
||||
'country_id': self.country.id,
|
||||
'unique_import_id': 'TEST%s' % random.randrange(100000000),
|
||||
'transaction_type': 'expense',
|
||||
'expense_account_id': self.expense_account.id,
|
||||
'description': 'Test transaction',
|
||||
'vendor': 'Test vendor',
|
||||
'vat_company_currency': 0,
|
||||
'vat_rate': 0,
|
||||
'total_company_currency': -100,
|
||||
'receipt_lost': True,
|
||||
}
|
||||
defaults.update(values)
|
||||
return self.env['newgen.payment.card.transaction'].create(defaults)
|
||||
|
||||
def _assert_receipt_lost(self, move, expected_receipt_lost):
|
||||
self.assertEqual(
|
||||
move.receipt_lost, expected_receipt_lost,
|
||||
"%s: wrong receipt_lost" % move._name)
|
||||
self.assertTrue(
|
||||
move.mooncard_record,
|
||||
"%s: mooncard_record should be True" % move._name)
|
||||
for line in move.line_ids:
|
||||
self.assertEqual(
|
||||
line.receipt_lost, expected_receipt_lost,
|
||||
"move line %s: wrong receipt_lost" % line.display_name)
|
||||
self.assertTrue(
|
||||
line.mooncard_record,
|
||||
"move line %s: mooncard_record should be True" % line.display_name)
|
||||
|
||||
def test_expense_receipt_lost_true(self):
|
||||
trans = self._create_transaction({
|
||||
'receipt_lost': True,
|
||||
})
|
||||
trans.process_line()
|
||||
self.assertEqual(trans.state, 'done')
|
||||
invoice = trans.invoice_id
|
||||
self.assertTrue(invoice, "Invoice should be generated")
|
||||
self._assert_receipt_lost(invoice, True)
|
||||
self._assert_receipt_lost(trans.bank_move_id, True)
|
||||
|
||||
def test_expense_receipt_lost_false(self):
|
||||
trans = self._create_transaction({
|
||||
'receipt_lost': False,
|
||||
})
|
||||
self.env['ir.attachment'].create({
|
||||
'name': 'test_receipt.pdf',
|
||||
'res_model': 'newgen.payment.card.transaction',
|
||||
'res_id': trans.id,
|
||||
'raw': b'test attachment content',
|
||||
})
|
||||
trans.process_line()
|
||||
self.assertEqual(trans.state, 'done')
|
||||
invoice = trans.invoice_id
|
||||
self.assertTrue(invoice, "Invoice should be generated")
|
||||
self._assert_receipt_lost(invoice, False)
|
||||
self._assert_receipt_lost(trans.bank_move_id, False)
|
||||
|
||||
def test_bank_move_only_receipt_lost_true(self):
|
||||
trans = self._create_transaction({
|
||||
'receipt_lost': True,
|
||||
'bank_move_only': True,
|
||||
})
|
||||
trans.process_line()
|
||||
self.assertEqual(trans.state, 'done')
|
||||
self.assertFalse(trans.invoice_id, "No invoice when bank_move_only")
|
||||
bank_move = trans.bank_move_id
|
||||
self.assertTrue(bank_move, "Bank move should be generated")
|
||||
self._assert_receipt_lost(bank_move, True)
|
||||
|
||||
def test_bank_move_only_receipt_lost_false(self):
|
||||
trans = self._create_transaction({
|
||||
'receipt_lost': False,
|
||||
'bank_move_only': True,
|
||||
})
|
||||
trans.process_line()
|
||||
self.assertEqual(trans.state, 'done')
|
||||
self.assertFalse(trans.invoice_id, "No invoice when bank_move_only")
|
||||
bank_move = trans.bank_move_id
|
||||
self.assertTrue(bank_move, "Bank move should be generated")
|
||||
self._assert_receipt_lost(bank_move, False)
|
||||
|
||||
def test_load_receipt_lost_true(self):
|
||||
self.company.transfer_account_id = self.card_bank_account.id
|
||||
trans = self._create_transaction({
|
||||
'transaction_type': 'load',
|
||||
'receipt_lost': True,
|
||||
'total_company_currency': 1000,
|
||||
'expense_account_id': False,
|
||||
})
|
||||
trans.process_line()
|
||||
self.assertEqual(trans.state, 'done')
|
||||
self.assertFalse(trans.invoice_id, "Load should not generate an invoice")
|
||||
bank_move = trans.bank_move_id
|
||||
self.assertTrue(bank_move, "Bank move should be generated")
|
||||
self._assert_receipt_lost(bank_move, True)
|
||||
Reference in New Issue
Block a user