From 44828e8dd34cc025990e57d56ea2ca3f41f5d5e3 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Tue, 11 Dec 2018 12:13:11 +0100 Subject: [PATCH] [FIX] don't mess with the registry for tests --- .../tests/test_save_file.py | 90 +++++++++---------- 1 file changed, 41 insertions(+), 49 deletions(-) diff --git a/account_bank_statement_import_save_file/tests/test_save_file.py b/account_bank_statement_import_save_file/tests/test_save_file.py index 7e5b186..599d79b 100644 --- a/account_bank_statement_import_save_file/tests/test_save_file.py +++ b/account_bank_statement_import_save_file/tests/test_save_file.py @@ -19,60 +19,52 @@ # ############################################################################## import base64 -from openerp import api, models +from mock import patch from openerp.tests.common import TransactionCase acc_number = 'BE1234567890' -class HelloWorldParser(models.TransientModel): - _inherit = 'account.bank.statement.import' - - @api.model - def _parse_file(self, data_file): - return ( - 'EUR', - acc_number, - [{ - 'name': '000000123', - 'date': '2013-06-26', - 'transactions': [{ - 'name': 'KBC-INVESTERINGSKREDIET 787-5562831-01', - 'date': '2013-06-26', - 'amount': 42, - 'unique_import_id': 'hello', - }], - }], - ) - - class TestSaveFile(TransactionCase): def test_SaveFile(self): - HelloWorldParser._build_model(self.registry, self.cr) - import_wizard = self.env['account.bank.statement.import'] - import_wizard._prepare_setup() - import_wizard._setup_base(False) - import_wizard._setup_fields() - import_wizard._setup_complete() - import_wizard._auto_init() - journal_id = self.env['res.partner.bank'].search([ - ('acc_number', '=', acc_number), - ]).journal_id.id - if not journal_id: - account = import_wizard._create_bank_account(acc_number) - journal_id = self.env['account.journal']\ - .search([ - '|', - ('currency.name', '=', 'EUR'), - ('currency', '=', False) - ]).ids[0] - account.journal_id = journal_id - action = import_wizard.with_context(journal_id=journal_id)\ - .create({'data_file': base64.b64encode('hello world')})\ - .import_file() - for statement in self.env['account.bank.statement'].browse( - action['context']['statement_ids']): - self.assertEqual( - base64.b64decode(statement.import_file.datas), - 'hello world') + with patch.object( + self.env.registry + .models['account.bank.statement.import'].__class__, + '_parse_file' + ) as _parse_file: + _parse_file.side_effect = lambda data_file: ( + 'EUR', + acc_number, + [{ + 'name': '000000123', + 'date': '2013-06-26', + 'transactions': [{ + 'name': 'KBC-INVESTERINGSKREDIET 787-5562831-01', + 'date': '2013-06-26', + 'amount': 42, + 'unique_import_id': 'hello', + }], + }], + ) + import_wizard = self.env['account.bank.statement.import'] + journal_id = self.env['res.partner.bank'].search([ + ('acc_number', '=', acc_number), + ]).journal_id.id + if not journal_id: + account = import_wizard._create_bank_account(acc_number) + journal_id = self.env['account.journal']\ + .search([ + '|', + ('currency.name', '=', 'EUR'), + ('currency', '=', False) + ]).ids[0] + account.journal_id = journal_id + action = import_wizard.with_context(journal_id=journal_id)\ + .create({'data_file': base64.b64encode('hello world')})\ + .import_file() + for statement in self.env['account.bank.statement'].browse( + action['context']['statement_ids']): + self.assertEqual( + base64.b64decode(statement.import_file.datas), + 'hello world')