diff --git a/account_statement_import_ofx_by_acctid/tests/__init__.py b/account_statement_import_ofx_by_acctid/tests/__init__.py
new file mode 100644
index 00000000..bb3456ae
--- /dev/null
+++ b/account_statement_import_ofx_by_acctid/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_import_bank_statement
diff --git a/account_statement_import_ofx_by_acctid/tests/test_import_bank_statement.py b/account_statement_import_ofx_by_acctid/tests/test_import_bank_statement.py
new file mode 100644
index 00000000..6234dd7c
--- /dev/null
+++ b/account_statement_import_ofx_by_acctid/tests/test_import_bank_statement.py
@@ -0,0 +1,114 @@
+import base64
+import datetime
+
+from odoo.modules.module import get_module_resource
+from odoo.tests.common import TransactionCase
+
+
+class TestOfxFile(TransactionCase):
+ """Tests for import bank statement ofx file format
+ (account.bank.statement.import)
+ """
+
+ def setUp(self):
+ super(TestOfxFile, self).setUp()
+ self.asi_model = self.env["account.statement.import"]
+ self.abs_model = self.env["account.bank.statement"]
+ self.j_model = self.env["account.journal"]
+ self.absl_model = self.env["account.bank.statement.line"]
+ cur = self.env.ref("base.USD")
+ # self.env.ref("base.main_company").currency_id = cur.id
+ bank = self.env["res.partner.bank"].create(
+ {
+ "acc_number": "223456",
+ "acctid": "223456-X",
+ "partner_id": self.env.ref("base.main_partner").id,
+ "company_id": self.env.ref("base.main_company").id,
+ "bank_id": self.env.ref("base.res_bank_1").id,
+ }
+ )
+
+ self.env["account.journal"].create(
+ {
+ "name": "Bank Journal TEST OFX",
+ "code": "BNK12",
+ "type": "bank",
+ "bank_account_id": bank.id,
+ "currency_id": cur.id,
+ }
+ )
+
+ bank_iban_ofx = self.env["res.partner.bank"].create(
+ {
+ "acc_number": "FR7630001007942234567890185",
+ "partner_id": self.env.ref("base.main_partner").id,
+ "company_id": self.env.ref("base.main_company").id,
+ "bank_id": self.env.ref("base.res_bank_1").id,
+ }
+ )
+
+ self.env["account.journal"].create(
+ {
+ "name": "FR7630001007942234567890185",
+ "code": "BNK13",
+ "type": "bank",
+ "bank_account_id": bank_iban_ofx.id,
+ "currency_id": cur.id,
+ }
+ )
+
+ def test_wrong_ofx_file_import(self):
+ ofx_file_path = get_module_resource(
+ "account_statement_import_ofx_by_acctid",
+ "tests/test_ofx_file/",
+ "test_ofx_wrong.ofx",
+ )
+ ofx_file_wrong = base64.b64encode(open(ofx_file_path, "rb").read())
+ bank_statement = self.asi_model.create(
+ {
+ "statement_file": ofx_file_wrong,
+ "statement_filename": "test_ofx_wrong.ofx",
+ }
+ )
+ self.assertFalse(bank_statement._check_ofx(data_file=ofx_file_wrong))
+
+ def test_ofx_file_import(self):
+ ofx_file_path = get_module_resource(
+ "account_statement_import_ofx_by_acctid",
+ "tests/test_ofx_file/",
+ "test_ofx.ofx",
+ )
+ ofx_file = base64.b64encode(open(ofx_file_path, "rb").read())
+ bank_statement = self.asi_model.create(
+ {
+ "statement_file": ofx_file,
+ "statement_filename": "test_ofx.ofx",
+ }
+ )
+ bank_statement.import_file_button()
+ bank_st_record = self.abs_model.search([("name", "like", "223456-X")])[0]
+ self.assertEqual(bank_st_record.balance_start, 2516.56)
+ self.assertEqual(bank_st_record.balance_end_real, 2156.56)
+
+ line = self.absl_model.search(
+ [
+ ("payment_ref", "=", "Agrolait"),
+ ("statement_id", "=", bank_st_record.id),
+ ]
+ )[0]
+ self.assertEqual(line.date, datetime.date(2013, 8, 24))
+
+ def test_check_journal_bank_account(self):
+ ofx_file_path = get_module_resource(
+ "account_statement_import_ofx_by_acctid",
+ "tests/test_ofx_file/",
+ "test_ofx_iban.ofx",
+ )
+ ofx_file = base64.b64encode(open(ofx_file_path, "rb").read())
+ bank_st = self.asi_model.create(
+ {
+ "statement_file": ofx_file,
+ "statement_filename": "test_ofx_iban.ofx",
+ }
+ )
+ bank_st.import_file_button()
diff --git a/account_statement_import_ofx_by_acctid/tests/test_ofx_file/test_ofx.ofx b/account_statement_import_ofx_by_acctid/tests/test_ofx_file/test_ofx.ofx
new file mode 100644
index 00000000..7aac0753
--- /dev/null
+++ b/account_statement_import_ofx_by_acctid/tests/test_ofx_file/test_ofx.ofx
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+ 0
+ INFO
+
+ 20130831165153.000[-8:PST]
+ ENG
+
+
+
+
+ 0
+
+ 0
+ INFO
+
+
+ USD
+
+ 000000123
+ 223456-X
+ CHECKING
+
+
+ 20130801
+ 20130831165153.000[-8:PST]
+
+ POS
+ 20130824080000
+ -80
+ 219378
+ Agrolait
+
+
+
+ 20130801
+ 20130831165153.000[-8:PST]
+
+ POS
+ 20130824080000
+ -90
+ 219379
+ China Export
+
+
+
+ 20130801
+ 20130831165153.000[-8:PST]
+
+ POS
+ 20130824080000
+ -100
+ 219380
+ Axelor Scuba
+
+
+
+ 20130801
+ 20130831165153.000[-8:PST]
+
+ POS
+ 20130824080000
+ -90
+ 219381
+ China Scuba
+
+
+
+ 2156.56
+ 20130831165153
+
+
+
+
+
+
+ 0
+
+ 0
+ INFO
+
+
+ USD
+
+ 123412341234
+
+
+
+
+ -562.00
+ 20130831165153
+
+
+
+
+
diff --git a/account_statement_import_ofx_by_acctid/tests/test_ofx_file/test_ofx_iban.ofx b/account_statement_import_ofx_by_acctid/tests/test_ofx_file/test_ofx_iban.ofx
new file mode 100644
index 00000000..cbc5c344
--- /dev/null
+++ b/account_statement_import_ofx_by_acctid/tests/test_ofx_file/test_ofx_iban.ofx
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ 0
+ INFO
+
+ 20130831165153.000[-8:PST]
+ ENG
+
+
+
+
+ 0
+
+ 0
+ INFO
+
+
+ USD
+
+ 30001
+ 00794
+ 22345678901
+ CHECKING
+
+
+ 20130801
+ 20130831165153.000[-8:PST]
+
+ POS
+ 20130824080000
+ -80
+ 219378
+ Agrolait
+
+
+
+ 20130801
+ 20130831165153.000[-8:PST]
+
+ POS
+ 20130824080000
+ -90
+ 219379
+ China Export
+
+
+
+ 20130801
+ 20130831165153.000[-8:PST]
+
+ POS
+ 20130824080000
+ -100
+ 219380
+ Axelor Scuba
+
+
+
+ 20130801
+ 20130831165153.000[-8:PST]
+
+ POS
+ 20130824080000
+ -90
+ 219381
+ China Scuba
+
+
+
+ 2156.56
+ 20130831165153
+
+
+
+
+
+
+ 0
+
+ 0
+ INFO
+
+
+ USD
+
+ 123412341234
+
+
+
+
+ -562.00
+ 20130831165153
+
+
+
+
+
diff --git a/account_statement_import_ofx_by_acctid/tests/test_ofx_file/test_ofx_wrong.ofx b/account_statement_import_ofx_by_acctid/tests/test_ofx_file/test_ofx_wrong.ofx
new file mode 100644
index 00000000..23a66746
--- /dev/null
+++ b/account_statement_import_ofx_by_acctid/tests/test_ofx_file/test_ofx_wrong.ofx
@@ -0,0 +1,100 @@
+
+
+
+
+
+
+ 0
+ INFO
+
+ 20130831165153.000[-8:PST]
+ ENG
+
+
+
+
+ 0
+
+ 0
+ INFO
+
+
+
+
+ 20130801
+ 20130831165153.000[-8:PST]
+
+ POS
+ 20130824080000
+ -80
+ 219378
+ Agrolait
+
+
+
+ 20130801
+ 20130831165153.000[-8:PST]
+
+ POS
+
+ China Export
+
+
+
+ 20130801
+ 20130831165153.000[-8:PST]
+
+ POS
+ 20130824080000
+ -100
+ 219380
+ Axelor Scuba
+
+
+
+ 20130801
+ 20130831165153.000[-8:PST]
+
+ POS
+ 20130824080000
+ -90
+ 219381
+ China Scuba
+
+
+
+ 2156.56
+ 20130831165153
+
+
+
+
+
+
+ 0
+
+ 0
+ INFO
+
+
+ USD
+
+ 123412341234
+
+
+
+
+ -562.00
+ 20130831165153
+
+
+
+
+