diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/l10n_ch/tests/test_onchange_l10n_ch_postal.py | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/l10n_ch/tests/test_onchange_l10n_ch_postal.py')
| -rw-r--r-- | addons/l10n_ch/tests/test_onchange_l10n_ch_postal.py | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/addons/l10n_ch/tests/test_onchange_l10n_ch_postal.py b/addons/l10n_ch/tests/test_onchange_l10n_ch_postal.py new file mode 100644 index 00000000..7763f51b --- /dev/null +++ b/addons/l10n_ch/tests/test_onchange_l10n_ch_postal.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo.tests import common +from odoo.tests.common import Form, SavepointCase + + +CH_ISR_ISSUER = '01-162-8' +CH_IBAN = 'CH15 3881 5158 3845 3843 7' +FR_IBAN = 'FR83 8723 4133 8709 9079 4002 530' +CH_POST_IBAN = 'CH09 0900 0000 1000 8060 7' +CH_POSTAL_ACC = '10-8060-7' + + +class TestOnchangePostal(SavepointCase): + + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) + cls.partner = cls.env.ref('base.res_partner_12') + cls.ch_bank = cls.env['res.bank'].create({ + 'name': 'Alternative Bank Schweiz AG', + 'bic': 'ALSWCH21XXX', + }) + cls.post_bank = cls.env['res.bank'].search( + [('bic', '=', 'POFICHBEXXX')]) + if not cls.post_bank: + cls.post_bank = cls.env['res.bank'].create({ + 'name': 'PostFinance AG', + 'bic': 'POFICHBEXXX', + }) + + def new_partner_bank_form(self): + form = Form( + self.env['res.partner.bank'], + view="l10n_ch.isr_partner_bank_form", + ) + form.partner_id = self.partner + return form + + def test_onchange_acc_number_isr_issuer(self): + """The user entered ISR issuer number into acc_number + + We detect and move it to l10n_ch_postal. + It must be moved as it is not unique. + """ + bank_acc = self.new_partner_bank_form() + bank_acc.acc_number = CH_ISR_ISSUER + account = bank_acc.save() + + self.assertEqual( + account.acc_number, + "{} {}".format(CH_ISR_ISSUER, self.partner.name) + ) + self.assertEqual(account.l10n_ch_postal, CH_ISR_ISSUER) + self.assertEqual(account.acc_type, 'postal') + + def test_onchange_acc_number_postal(self): + """The user entered postal number into acc_number + + We detect and copy it to l10n_ch_postal. + """ + bank_acc = self.new_partner_bank_form() + bank_acc.acc_number = CH_POSTAL_ACC + account = bank_acc.save() + + self.assertEqual(account.acc_number, CH_POSTAL_ACC) + self.assertEqual(account.l10n_ch_postal, CH_POSTAL_ACC) + self.assertEqual(account.acc_type, 'postal') + + def test_onchange_acc_number_iban_ch(self): + bank_acc = self.new_partner_bank_form() + bank_acc.acc_number = CH_IBAN + account = bank_acc.save() + + self.assertEqual(account.acc_number, CH_IBAN) + self.assertFalse(account.l10n_ch_postal) + self.assertEqual(account.acc_type, 'iban') + + def test_onchange_acc_number_iban_ch_postfinance(self): + """The user enter a postal IBAN, postal number can be deduced""" + bank_acc = self.new_partner_bank_form() + bank_acc.acc_number = CH_POST_IBAN + account = bank_acc.save() + + self.assertEqual(account.acc_number, CH_POST_IBAN) + self.assertEqual(account.l10n_ch_postal, CH_POSTAL_ACC) + self.assertEqual(account.acc_type, 'iban') + + def test_onchange_acc_number_iban_foreign(self): + """Check IBAN still works changed""" + bank_acc = self.new_partner_bank_form() + bank_acc.acc_number = FR_IBAN + account = bank_acc.save() + + self.assertEqual(account.acc_number, FR_IBAN) + self.assertFalse(account.l10n_ch_postal) + self.assertEqual(account.acc_type, 'iban') + + def test_onchange_acc_number_none(self): + """Check misc format still works""" + bank_acc = self.new_partner_bank_form() + bank_acc.acc_number = 'anything' + account = bank_acc.save() + + self.assertEqual(account.acc_number, 'anything') + self.assertFalse(account.l10n_ch_postal) + self.assertEqual(account.acc_type, 'bank') |
