|
|
@ -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') |