mirror of
https://github.com/OCA/bank-statement-import.git
synced 2025-01-20 12:37:43 +02:00
[FIX] account_statement_import_online_paypal: tests
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
# Copyright 2019 Brainbean Apps (https://brainbeanapps.com)
|
# Copyright 2019 Brainbean Apps (https://brainbeanapps.com)
|
||||||
# Copyright 2021 CorporateHub (https://corporatehub.eu)
|
# Copyright 2021-2022 CorporateHub (https://corporatehub.eu)
|
||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
import json
|
import json
|
||||||
@@ -54,6 +54,13 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
super().setUp()
|
super().setUp()
|
||||||
|
|
||||||
self.now = fields.Datetime.now()
|
self.now = fields.Datetime.now()
|
||||||
|
self.now_isoformat = self.now.isoformat() + "+0000"
|
||||||
|
self.today = datetime(self.now.year, self.now.month, self.now.day)
|
||||||
|
self.today_isoformat = self.today.isoformat() + "+0000"
|
||||||
|
self.today_timestamp = str(int(self.today.timestamp()))
|
||||||
|
self.yesterday = self.today - relativedelta(days=1)
|
||||||
|
self.yesterday_isoformat = self.yesterday.isoformat() + "+0000"
|
||||||
|
self.yesterday_timestamp = str(int(self.yesterday.timestamp()))
|
||||||
self.currency_eur = self.env.ref("base.EUR")
|
self.currency_eur = self.env.ref("base.EUR")
|
||||||
self.currency_usd = self.env.ref("base.USD")
|
self.currency_usd = self.env.ref("base.USD")
|
||||||
self.AccountJournal = self.env["account.journal"]
|
self.AccountJournal = self.env["account.journal"]
|
||||||
@@ -245,9 +252,13 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"account_id": "1234567890",
|
"account_id": "1234567890",
|
||||||
"as_of_time": "2019-08-01T00:00:00+0000",
|
"as_of_time": "%s",
|
||||||
"last_refresh_time": "2019-08-01T00:00:00+0000"
|
"last_refresh_time": "%s"
|
||||||
}"""
|
}"""
|
||||||
|
% (
|
||||||
|
self.now_isoformat,
|
||||||
|
self.now_isoformat,
|
||||||
|
)
|
||||||
)
|
)
|
||||||
with mock.patch(
|
with mock.patch(
|
||||||
_provider_class + "._paypal_urlopen",
|
_provider_class + "._paypal_urlopen",
|
||||||
@@ -333,13 +344,18 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
"""{
|
"""{
|
||||||
"transaction_details": [],
|
"transaction_details": [],
|
||||||
"account_number": "1234567890",
|
"account_number": "1234567890",
|
||||||
"start_date": "2019-08-01T00:00:00+0000",
|
"start_date": "%s",
|
||||||
"end_date": "2019-08-01T00:00:00+0000",
|
"end_date": "%s",
|
||||||
"last_refreshed_datetime": "2019-09-01T00:00:00+0000",
|
"last_refreshed_datetime": "%s",
|
||||||
"page": 1,
|
"page": 1,
|
||||||
"total_items": 0,
|
"total_items": 0,
|
||||||
"total_pages": 0
|
"total_pages": 0
|
||||||
}""",
|
}"""
|
||||||
|
% (
|
||||||
|
self.now_isoformat,
|
||||||
|
self.now_isoformat,
|
||||||
|
self.now_isoformat,
|
||||||
|
),
|
||||||
parse_float=Decimal,
|
parse_float=Decimal,
|
||||||
)
|
)
|
||||||
mocked_response_2 = json.loads(
|
mocked_response_2 = json.loads(
|
||||||
@@ -363,9 +379,13 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"account_id": "1234567890",
|
"account_id": "1234567890",
|
||||||
"as_of_time": "2019-08-01T00:00:00+0000",
|
"as_of_time": "%s",
|
||||||
"last_refresh_time": "2019-08-01T00:00:00+0000"
|
"last_refresh_time": "%s"
|
||||||
}""",
|
}"""
|
||||||
|
% (
|
||||||
|
self.now_isoformat,
|
||||||
|
self.now_isoformat,
|
||||||
|
),
|
||||||
parse_float=Decimal,
|
parse_float=Decimal,
|
||||||
)
|
)
|
||||||
with mock.patch(
|
with mock.patch(
|
||||||
@@ -396,13 +416,18 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
"""{
|
"""{
|
||||||
"transaction_details": [],
|
"transaction_details": [],
|
||||||
"account_number": "1234567890",
|
"account_number": "1234567890",
|
||||||
"start_date": "2019-08-01T00:00:00+0000",
|
"start_date": "%s",
|
||||||
"end_date": "2019-08-01T00:00:00+0000",
|
"end_date": "%s",
|
||||||
"last_refreshed_datetime": "2019-09-01T00:00:00+0000",
|
"last_refreshed_datetime": "%s",
|
||||||
"page": 1,
|
"page": 1,
|
||||||
"total_items": 0,
|
"total_items": 0,
|
||||||
"total_pages": 0
|
"total_pages": 0
|
||||||
}""",
|
}"""
|
||||||
|
% (
|
||||||
|
self.now_isoformat,
|
||||||
|
self.now_isoformat,
|
||||||
|
self.now_isoformat,
|
||||||
|
),
|
||||||
parse_float=Decimal,
|
parse_float=Decimal,
|
||||||
)
|
)
|
||||||
with mock.patch(
|
with mock.patch(
|
||||||
@@ -435,8 +460,8 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
"paypal_account_id": "1234567890",
|
"paypal_account_id": "1234567890",
|
||||||
"transaction_id": "1234567890",
|
"transaction_id": "1234567890",
|
||||||
"transaction_event_code": "T1234",
|
"transaction_event_code": "T1234",
|
||||||
"transaction_initiation_date": "2019-08-01T00:00:00+0000",
|
"transaction_initiation_date": "%s",
|
||||||
"transaction_updated_date": "2019-08-01T00:00:00+0000",
|
"transaction_updated_date": "%s",
|
||||||
"transaction_amount": {
|
"transaction_amount": {
|
||||||
"currency_code": "USD",
|
"currency_code": "USD",
|
||||||
"value": "1000.00"
|
"value": "1000.00"
|
||||||
@@ -477,8 +502,8 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
"paypal_account_id": "1234567890",
|
"paypal_account_id": "1234567890",
|
||||||
"transaction_id": "1234567891",
|
"transaction_id": "1234567891",
|
||||||
"transaction_event_code": "T1234",
|
"transaction_event_code": "T1234",
|
||||||
"transaction_initiation_date": "2019-08-02T00:00:00+0000",
|
"transaction_initiation_date": "%s",
|
||||||
"transaction_updated_date": "2019-08-02T00:00:00+0000",
|
"transaction_updated_date": "%s",
|
||||||
"transaction_amount": {
|
"transaction_amount": {
|
||||||
"currency_code": "USD",
|
"currency_code": "USD",
|
||||||
"value": "1000.00"
|
"value": "1000.00"
|
||||||
@@ -516,13 +541,22 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
"incentive_info": {}
|
"incentive_info": {}
|
||||||
}],
|
}],
|
||||||
"account_number": "1234567890",
|
"account_number": "1234567890",
|
||||||
"start_date": "2019-08-01T00:00:00+0000",
|
"start_date": "%s",
|
||||||
"end_date": "2019-08-02T00:00:00+0000",
|
"end_date": "%s",
|
||||||
"last_refreshed_datetime": "2019-09-01T00:00:00+0000",
|
"last_refreshed_datetime": "%s",
|
||||||
"page": 1,
|
"page": 1,
|
||||||
"total_items": 1,
|
"total_items": 1,
|
||||||
"total_pages": 1
|
"total_pages": 1
|
||||||
}""",
|
}"""
|
||||||
|
% (
|
||||||
|
self.yesterday_isoformat,
|
||||||
|
self.yesterday_isoformat,
|
||||||
|
self.today_isoformat,
|
||||||
|
self.today_isoformat,
|
||||||
|
self.yesterday_isoformat,
|
||||||
|
self.today_isoformat,
|
||||||
|
self.now_isoformat,
|
||||||
|
),
|
||||||
parse_float=Decimal,
|
parse_float=Decimal,
|
||||||
)
|
)
|
||||||
with mock.patch(
|
with mock.patch(
|
||||||
@@ -530,8 +564,8 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
return_value=mocked_response,
|
return_value=mocked_response,
|
||||||
), self.mock_token():
|
), self.mock_token():
|
||||||
data = provider._obtain_statement_data(
|
data = provider._obtain_statement_data(
|
||||||
datetime(2019, 8, 1),
|
self.yesterday,
|
||||||
datetime(2019, 8, 2),
|
self.today,
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertEqual(len(data[0]), 2)
|
self.assertEqual(len(data[0]), 2)
|
||||||
@@ -539,23 +573,23 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
data[0][0],
|
data[0][0],
|
||||||
{
|
{
|
||||||
"date": datetime(2019, 8, 1),
|
"date": self.yesterday,
|
||||||
"amount": "1000.00",
|
"amount": "1000.00",
|
||||||
"ref": "Invoice 1",
|
"ref": "Invoice 1",
|
||||||
"payment_ref": "1234567890: Payment for Invoice(s) 1",
|
"payment_ref": "1234567890: Payment for Invoice(s) 1",
|
||||||
"partner_name": "Acme, Inc.",
|
"partner_name": "Acme, Inc.",
|
||||||
"unique_import_id": "1234567890-1564617600",
|
"unique_import_id": "1234567890-%s" % (self.yesterday_timestamp,),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
data[0][1],
|
data[0][1],
|
||||||
{
|
{
|
||||||
"date": datetime(2019, 8, 1),
|
"date": self.yesterday,
|
||||||
"amount": "-100.00",
|
"amount": "-100.00",
|
||||||
"ref": "Fee for Invoice 1",
|
"ref": "Fee for Invoice 1",
|
||||||
"payment_ref": "Transaction fee for 1234567890: Payment for Invoice(s) 1",
|
"payment_ref": "Transaction fee for 1234567890: Payment for Invoice(s) 1",
|
||||||
"partner_name": "PayPal",
|
"partner_name": "PayPal",
|
||||||
"unique_import_id": "1234567890-1564617600-FEE",
|
"unique_import_id": "1234567890-%s-FEE" % (self.yesterday_timestamp,),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
self.assertEqual(data[1], {"balance_start": 0.0, "balance_end_real": 900.0})
|
self.assertEqual(data[1], {"balance_start": 0.0, "balance_end_real": 900.0})
|
||||||
@@ -567,8 +601,8 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
"paypal_account_id": "1234567890",
|
"paypal_account_id": "1234567890",
|
||||||
"transaction_id": "1234567890",
|
"transaction_id": "1234567890",
|
||||||
"transaction_event_code": "T1234",
|
"transaction_event_code": "T1234",
|
||||||
"transaction_initiation_date": "2019-08-01T00:00:00+0000",
|
"transaction_initiation_date": "%s",
|
||||||
"transaction_updated_date": "2019-08-01T00:00:00+0000",
|
"transaction_updated_date": "%s",
|
||||||
"transaction_amount": {
|
"transaction_amount": {
|
||||||
"currency_code": "USD",
|
"currency_code": "USD",
|
||||||
"value": "1000.00"
|
"value": "1000.00"
|
||||||
@@ -605,18 +639,22 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
"auction_info": {},
|
"auction_info": {},
|
||||||
"incentive_info": {}
|
"incentive_info": {}
|
||||||
}"""
|
}"""
|
||||||
|
% (
|
||||||
|
self.today_isoformat,
|
||||||
|
self.today_isoformat,
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertEqual(len(lines), 1)
|
self.assertEqual(len(lines), 1)
|
||||||
del lines[0]["online_raw_data"]
|
del lines[0]["online_raw_data"]
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
lines[0],
|
lines[0],
|
||||||
{
|
{
|
||||||
"date": datetime(2019, 8, 1),
|
"date": self.today,
|
||||||
"amount": "1000.00",
|
"amount": "1000.00",
|
||||||
"ref": "Invoice 1",
|
"ref": "Invoice 1",
|
||||||
"payment_ref": "1234567890: Payment for Invoice(s) 1",
|
"payment_ref": "1234567890: Payment for Invoice(s) 1",
|
||||||
"partner_name": "Acme, Inc.",
|
"partner_name": "Acme, Inc.",
|
||||||
"unique_import_id": "1234567890-1564617600",
|
"unique_import_id": "1234567890-%s" % (self.today_timestamp,),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -627,8 +665,8 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
"paypal_account_id": "1234567890",
|
"paypal_account_id": "1234567890",
|
||||||
"transaction_id": "1234567890",
|
"transaction_id": "1234567890",
|
||||||
"transaction_event_code": "T1234",
|
"transaction_event_code": "T1234",
|
||||||
"transaction_initiation_date": "2019-08-01T00:00:00+0000",
|
"transaction_initiation_date": "%s",
|
||||||
"transaction_updated_date": "2019-08-01T00:00:00+0000",
|
"transaction_updated_date": "%s",
|
||||||
"transaction_amount": {
|
"transaction_amount": {
|
||||||
"currency_code": "USD",
|
"currency_code": "USD",
|
||||||
"value": "1000.00"
|
"value": "1000.00"
|
||||||
@@ -665,18 +703,22 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
"auction_info": {},
|
"auction_info": {},
|
||||||
"incentive_info": {}
|
"incentive_info": {}
|
||||||
}"""
|
}"""
|
||||||
|
% (
|
||||||
|
self.today_isoformat,
|
||||||
|
self.today_isoformat,
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertEqual(len(lines), 1)
|
self.assertEqual(len(lines), 1)
|
||||||
del lines[0]["online_raw_data"]
|
del lines[0]["online_raw_data"]
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
lines[0],
|
lines[0],
|
||||||
{
|
{
|
||||||
"date": datetime(2019, 8, 1),
|
"date": self.today,
|
||||||
"amount": "1000.00",
|
"amount": "1000.00",
|
||||||
"ref": "Invoice 1",
|
"ref": "Invoice 1",
|
||||||
"payment_ref": "1234567890: Payment for Invoice(s) 1",
|
"payment_ref": "1234567890: Payment for Invoice(s) 1",
|
||||||
"partner_name": "Acme, Inc.",
|
"partner_name": "Acme, Inc.",
|
||||||
"unique_import_id": "1234567890-1564617600",
|
"unique_import_id": "1234567890-%s" % (self.today_timestamp,),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -687,8 +729,8 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
"paypal_account_id": "1234567890",
|
"paypal_account_id": "1234567890",
|
||||||
"transaction_id": "1234567890",
|
"transaction_id": "1234567890",
|
||||||
"transaction_event_code": "T1234",
|
"transaction_event_code": "T1234",
|
||||||
"transaction_initiation_date": "2019-08-01T00:00:00+0000",
|
"transaction_initiation_date": "%s",
|
||||||
"transaction_updated_date": "2019-08-01T00:00:00+0000",
|
"transaction_updated_date": "%s",
|
||||||
"transaction_amount": {
|
"transaction_amount": {
|
||||||
"currency_code": "USD",
|
"currency_code": "USD",
|
||||||
"value": "1000.00"
|
"value": "1000.00"
|
||||||
@@ -725,29 +767,33 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
"auction_info": {},
|
"auction_info": {},
|
||||||
"incentive_info": {}
|
"incentive_info": {}
|
||||||
}"""
|
}"""
|
||||||
|
% (
|
||||||
|
self.today_isoformat,
|
||||||
|
self.today_isoformat,
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertEqual(len(lines), 2)
|
self.assertEqual(len(lines), 2)
|
||||||
del lines[0]["online_raw_data"]
|
del lines[0]["online_raw_data"]
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
lines[0],
|
lines[0],
|
||||||
{
|
{
|
||||||
"date": datetime(2019, 8, 1),
|
"date": self.today,
|
||||||
"amount": "1000.00",
|
"amount": "1000.00",
|
||||||
"ref": "Invoice 1",
|
"ref": "Invoice 1",
|
||||||
"payment_ref": "1234567890: Payment for Invoice(s) 1",
|
"payment_ref": "1234567890: Payment for Invoice(s) 1",
|
||||||
"partner_name": "Acme, Inc.",
|
"partner_name": "Acme, Inc.",
|
||||||
"unique_import_id": "1234567890-1564617600",
|
"unique_import_id": "1234567890-%s" % (self.today_timestamp,),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
lines[1],
|
lines[1],
|
||||||
{
|
{
|
||||||
"date": datetime(2019, 8, 1),
|
"date": self.today,
|
||||||
"amount": "-100.00",
|
"amount": "-100.00",
|
||||||
"ref": "Fee for Invoice 1",
|
"ref": "Fee for Invoice 1",
|
||||||
"payment_ref": "Transaction fee for 1234567890: Payment for Invoice(s) 1",
|
"payment_ref": "Transaction fee for 1234567890: Payment for Invoice(s) 1",
|
||||||
"partner_name": "PayPal",
|
"partner_name": "PayPal",
|
||||||
"unique_import_id": "1234567890-1564617600-FEE",
|
"unique_import_id": "1234567890-%s-FEE" % (self.today_timestamp,),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -758,8 +804,8 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
"paypal_account_id": "1234567890",
|
"paypal_account_id": "1234567890",
|
||||||
"transaction_id": "1234567890",
|
"transaction_id": "1234567890",
|
||||||
"transaction_event_code": "T1234",
|
"transaction_event_code": "T1234",
|
||||||
"transaction_initiation_date": "2019-08-01T00:00:00+0000",
|
"transaction_initiation_date": "%s",
|
||||||
"transaction_updated_date": "2019-08-01T00:00:00+0000",
|
"transaction_updated_date": "%s",
|
||||||
"transaction_amount": {
|
"transaction_amount": {
|
||||||
"currency_code": "USD",
|
"currency_code": "USD",
|
||||||
"value": "1000.00"
|
"value": "1000.00"
|
||||||
@@ -792,17 +838,21 @@ class TestAccountBankAccountStatementImportOnlinePayPal(common.TransactionCase):
|
|||||||
"auction_info": {},
|
"auction_info": {},
|
||||||
"incentive_info": {}
|
"incentive_info": {}
|
||||||
}"""
|
}"""
|
||||||
|
% (
|
||||||
|
self.today_isoformat,
|
||||||
|
self.today_isoformat,
|
||||||
|
)
|
||||||
)
|
)
|
||||||
self.assertEqual(len(lines), 1)
|
self.assertEqual(len(lines), 1)
|
||||||
del lines[0]["online_raw_data"]
|
del lines[0]["online_raw_data"]
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
lines[0],
|
lines[0],
|
||||||
{
|
{
|
||||||
"date": datetime(2019, 8, 1),
|
"date": self.today,
|
||||||
"amount": "1000.00",
|
"amount": "1000.00",
|
||||||
"ref": "Invoice 1",
|
"ref": "Invoice 1",
|
||||||
"payment_ref": "1234567890: Payment for Invoice(s) 1",
|
"payment_ref": "1234567890: Payment for Invoice(s) 1",
|
||||||
"partner_name": "Acme, Inc.",
|
"partner_name": "Acme, Inc.",
|
||||||
"unique_import_id": "1234567890-1564617600",
|
"unique_import_id": "1234567890-%s" % (self.today_timestamp,),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user