You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.9 KiB

  1. # -*- coding: utf-8 -*-
  2. from odoo.tests.common import TransactionCase
  3. from odoo.modules.module import get_module_resource
  4. class TestOfxFile(TransactionCase):
  5. """Tests for import bank statement ofx file format
  6. (account.bank.statement.import)
  7. """
  8. def setUp(self):
  9. super(TestOfxFile, self).setUp()
  10. self.absi_model = self.env['account.bank.statement.import']
  11. self.abs_model = self.env['account.bank.statement']
  12. self.absl_model = self.env['account.bank.statement.line']
  13. cur = self.env.ref('base.USD')
  14. self.env.ref('base.main_company').currency_id = cur.id
  15. bank = self.env['res.partner.bank'].create({
  16. 'acc_number': '123456',
  17. 'partner_id': self.env.ref('base.main_partner').id,
  18. 'company_id': self.env.ref('base.main_company').id,
  19. 'bank_id': self.env.ref('base.res_bank_1').id,
  20. })
  21. self.env['account.journal'].create({
  22. 'name': 'Bank Journal TEST OFX',
  23. 'code': 'BNK12',
  24. 'type': 'bank',
  25. 'bank_account_id': bank.id,
  26. })
  27. def test_ofx_file_import(self):
  28. ofx_file_path = get_module_resource(
  29. 'account_bank_statement_import_ofx',
  30. 'tests/test_ofx_file/', 'test_ofx.ofx')
  31. ofx_file = open(ofx_file_path, 'rb').read().encode('base64')
  32. bank_statement = self.absi_model.create(
  33. dict(data_file=ofx_file))
  34. bank_statement.import_file()
  35. bank_st_record = self.abs_model.search(
  36. [('name', 'like', '123456')])[0]
  37. self.assertEquals(bank_st_record.balance_start, 2156.56)
  38. self.assertEquals(bank_st_record.balance_end_real, 1796.56)
  39. line = self.absl_model.search([
  40. ('name', '=', 'Agrolait'),
  41. ('statement_id', '=', bank_st_record.id)])[0]
  42. self.assertEquals(line.ref, '219378')
  43. self.assertEquals(line.date, '2013-08-24')