Skip to content

Commit

Permalink
chore: Add test for CLI
Browse files Browse the repository at this point in the history
  • Loading branch information
tkarabela committed Nov 17, 2023
1 parent 40e7fde commit 7a7f7af
Show file tree
Hide file tree
Showing 2 changed files with 87 additions and 3 deletions.
6 changes: 3 additions & 3 deletions okane.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,11 +204,11 @@ def parse_date_isoformat(s: str) -> datetime.date:
return datetime.date.fromisoformat(s[:10])


def main() -> int:
def main(args: list[str]) -> int:
parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument("input_file", metavar="statement.xml")
parser.add_argument("--version", "-V", action="version", version=__version__)
args = parser.parse_args()
args = parser.parse_args(args)
input_file = args.input_file

statement = BankToCustomerStatement.from_file(input_file)
Expand All @@ -218,4 +218,4 @@ def main() -> int:


if __name__ == "__main__":
sys.exit(main())
sys.exit(main(sys.argv[1:]))
84 changes: 84 additions & 0 deletions tests/test_cli.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
import os.path as op
import json
import okane


def test_cli(capsys):
path = op.join(op.dirname(__file__), "./data/test2.xml")

assert 0 == okane.main([path])

output_dict_reference = {
"statement_id": "XXX-STATEMENT-ID",
"created_time": "2023-04-01T12:00:00+02:00",
"from_time": "2023-03-01T00:00:00+01:00",
"to_time": "2023-03-31T23:59:59.999000+02:00",
"account_iban": "XXX-IBAN",
"opening_balance": {
"amount": 1000.0,
"currency": "CZK",
"date": "2023-03-01"
},
"closing_balance": {
"amount": 2000.0,
"currency": "CZK",
"date": "2023-03-31"
},
"transactions": [
{
"ref": "XXX-REF-1",
"amount": -100.0,
"currency": "CZK",
"val_date": "2023-03-01",
"remote_info": "Nákup dne 27.2.2023, částka 100.00 CZK\n ",
"additional_transaction_info": "Nákup dne 27.2.2023, částka 100.00 CZK\n ",
"related_account": None,
"related_account_bank": None
},
{
"ref": "XXX-REF-2",
"amount": -200.0,
"currency": "CZK",
"val_date": "2023-03-02",
"remote_info": None,
"additional_transaction_info": "transaction note",
"related_account": "XXX-OTHER-ACC",
"related_account_bank": "XXX-OTHER-BANK"
},
{
"ref": "XXX-REF-3",
"amount": 1000.0,
"currency": "CZK",
"val_date": "2023-03-07",
"remote_info": None,
"additional_transaction_info": None,
"related_account": "XXX-OTHER-ACC",
"related_account_bank": "XXX-OTHER-BANK"
},
{
"ref": "XXX-REF-4",
"amount": 400.0,
"currency": "CZK",
"val_date": "2023-03-08",
"remote_info": "description",
"additional_transaction_info": "RECIPIENT NAME",
"related_account": "XXX-OTHER-ACC",
"related_account_bank": "XXX-OTHER-BANK"
},
{
"ref": "XXX-REF-5",
"amount": -100.0,
"currency": "CZK",
"val_date": "2023-03-31",
"remote_info": "transaction description",
"additional_transaction_info": None,
"related_account": None,
"related_account_bank": None
}
]
}

output = capsys.readouterr().out
output_dict = json.loads(output)

assert output_dict == output_dict_reference

0 comments on commit 7a7f7af

Please sign in to comment.