Beispiel #1
0
 def test_transfer_income_row(yaml_config_load, database_session_stores_mufg):
     """Arguments should set into properties."""
     expected_amount = 20
     transfer_target = "三菱UFJ銀行"
     # Reason: Pylint's bug. pylint: disable=no-member
     mufg_row = MufgIncomeFromOthersRow(InstanceResource.ROW_DATA_MUFG_TRANSFER_INCOME_NOT_OWN_ACCOUNT)
     zaim_row = ZaimRowFactory.create(MufgTransferIncomeZaimTransferRowConverter(mufg_row))
     assert isinstance(zaim_row, ZaimTransferRow)
     list_zaim_row = zaim_row.convert_to_list()
     zaim_row_data = ZaimRowData(*list_zaim_row)
     assert zaim_row_data.date == "2018-08-20"
     assert zaim_row_data.store_name == ""
     assert zaim_row_data.item_name == ""
     assert zaim_row_data.cash_flow_source is None
     assert zaim_row_data.cash_flow_target == transfer_target
     assert zaim_row_data.amount_transfer == expected_amount
Beispiel #2
0
 def test(yaml_config_load, database_session_stores_mufg):
     """Arguments should set into properties."""
     expected_amount = 3628
     config_account_name = "三菱UFJ銀行"
     store_name = "東京都水道局 経理部管理課"
     mufg_row = MufgPaymentToSomeoneRow(InstanceResource.ROW_DATA_MUFG_TRANSFER_PAYMENT_TOKYO_WATERWORKS)
     # Reason: Pylint's bug. pylint: disable=no-member
     zaim_row = ZaimRowFactory.create(MufgZaimPaymentRowConverter(mufg_row))
     assert isinstance(zaim_row, ZaimPaymentRow)
     list_zaim_row = zaim_row.convert_to_list()
     zaim_row_data = ZaimRowData(*list_zaim_row)
     assert zaim_row_data.date == "2018-11-28"
     assert zaim_row_data.store_name == store_name
     assert zaim_row_data.item_name == ""
     assert zaim_row_data.cash_flow_source == config_account_name
     assert zaim_row_data.note == ""
     assert zaim_row_data.amount_payment == expected_amount
Beispiel #3
0
 def test_payment_row(yaml_config_load, database_session_stores_mufg):
     """Arguments should set into properties."""
     expected_amount = 9000
     config_account_name = "三菱UFJ銀行"
     config_transfer_account_name = "お財布"
     # Reason: Pylint's bug. pylint: disable=no-member
     mufg_row = MufgPaymentRow(InstanceResource.ROW_DATA_MUFG_PAYMENT)
     zaim_row = ZaimRowFactory.create(MufgPaymentZaimTransferRowConverter(mufg_row))
     assert isinstance(zaim_row, ZaimTransferRow)
     list_zaim_row = zaim_row.convert_to_list()
     zaim_row_data = ZaimRowData(*list_zaim_row)
     assert zaim_row_data.date == "2018-11-05"
     assert zaim_row_data.store_name == ""
     assert zaim_row_data.item_name == ""
     assert zaim_row_data.cash_flow_source == config_account_name
     assert zaim_row_data.cash_flow_target == config_transfer_account_name
     assert zaim_row_data.amount_transfer == expected_amount
 def test(yaml_config_load, database_session_item):
     """Arguments should set into properties."""
     expected_amount = 4980
     config_account_name = "ヨドバシゴールドポイントカード・プラス"
     store_name = "Amazon Japan G.K."
     item_name = "Echo Dot (エコードット) 第2世代 - スマートスピーカー with Alexa、ホワイト"
     amazon_row = Amazon201911PaymentRow(InstanceResource.ROW_DATA_AMAZON_201911_ECHO_DOT)
     # Reason: Pylint's bug. pylint: disable=no-member
     zaim_row = ZaimRowFactory.create(Amazon201911PaymentZaimPaymentRowConverter(amazon_row))
     assert isinstance(zaim_row, ZaimPaymentRow)
     list_zaim_row = zaim_row.convert_to_list()
     zaim_row_data = ZaimRowData(*list_zaim_row)
     assert zaim_row_data.date == "2019-11-09"
     assert zaim_row_data.store_name == store_name
     assert zaim_row_data.item_name == item_name
     assert zaim_row_data.cash_flow_source == config_account_name
     assert zaim_row_data.note == ""
     assert zaim_row_data.amount_payment == expected_amount
Beispiel #5
0
 def test(
     waon_row_data,
     expected_date,
     expected_store,
     expected_amount_payment,
     yaml_config_load,
     database_session_basic_store_waon,
 ):
     """Arguments should set into properties."""
     waon_row = WaonRow(waon_row_data)
     # Reason: Pylint's bug. pylint: disable=no-member
     zaim_row = ZaimRowFactory.create(WaonZaimPaymentRowConverter(waon_row))
     assert isinstance(zaim_row, ZaimPaymentRow)
     list_zaim_row = zaim_row.convert_to_list()
     zaim_row_data = ZaimRowData(*list_zaim_row)
     assert zaim_row_data.date == expected_date
     assert zaim_row_data.store_name == expected_store
     assert zaim_row_data.item_name == ""
     assert zaim_row_data.cash_flow_source == "WAON"
     assert zaim_row_data.amount_payment == expected_amount_payment
Beispiel #6
0
 def test(
     view_card_row_data,
     expected_date,
     expected_store_name_zaim,
     expected_use_amount,
     yaml_config_load,
     database_session_stores_view_card,
 ):
     """Arguments should set into properties."""
     row = ViewCardRow(view_card_row_data)
     # Reason: Pylint's bug. pylint: disable=no-member
     zaim_row = ZaimRowFactory.create(ViewCardZaimPaymentRowConverter(row))
     assert isinstance(zaim_row, ZaimPaymentRow)
     list_zaim_row = zaim_row.convert_to_list()
     zaim_row_data = ZaimRowData(*list_zaim_row)
     assert zaim_row_data.date == expected_date
     assert zaim_row_data.store_name == expected_store_name_zaim
     assert zaim_row_data.item_name == ""
     assert zaim_row_data.cash_flow_source == "ビューカード"
     assert zaim_row_data.amount_payment == expected_use_amount
 def test(
     gold_point_card_plus_row_data,
     expected_date,
     expected_store_name_zaim,
     expected_use_amount,
     yaml_config_load,
     database_session_stores_gold_point_card_plus,
 ):
     """Arguments should set into properties."""
     row = GoldPointCardPlusRow(gold_point_card_plus_row_data)
     # Reason: Pylint's bug. pylint: disable=no-member
     zaim_row = ZaimRowFactory.create(
         GoldPointCardPlusZaimPaymentRowConverter(row))
     assert isinstance(zaim_row, ZaimPaymentRow)
     list_zaim_row = zaim_row.convert_to_list()
     zaim_row_data = ZaimRowData(*list_zaim_row)
     assert zaim_row_data.date == expected_date
     assert zaim_row_data.store_name == expected_store_name_zaim
     assert zaim_row_data.item_name == ""
     assert zaim_row_data.cash_flow_source == "ヨドバシゴールドポイントカード・プラス"
     assert zaim_row_data.amount_payment == expected_use_amount
Beispiel #8
0
 def test(
     mufg_row_data: MufgRowData,
     expected_date,
     expected_store,
     config_transfer_account_name,
     expect_cash_flow_target,
     expected_amount,
     yaml_config_load,
     database_session_stores_mufg,
 ):
     """Arguments should set into properties."""
     mufg_row = MufgIncomeFromOthersRow(mufg_row_data)
     # Reason: Pylint's bug. pylint: disable=no-member
     zaim_row = ZaimRowFactory.create(MufgZaimIncomeRowConverter(mufg_row))
     assert isinstance(zaim_row, ZaimIncomeRow)
     list_zaim_row = zaim_row.convert_to_list()
     zaim_row_data = ZaimRowData(*list_zaim_row)  # type: ignore
     assert zaim_row_data.date == expected_date
     assert zaim_row_data.store_name == expected_store
     assert zaim_row_data.item_name == ""
     assert zaim_row_data.cash_flow_target == expect_cash_flow_target
     assert zaim_row_data.amount_income == expected_amount
Beispiel #9
0
 def test_all(yaml_config_load, database_session_stores_item):
     """Argument should set into properties."""
     waon_auto_charge_row = WaonRow(InstanceResource.ROW_DATA_WAON_AUTO_CHARGE_ITABASHIMAENOCHO)
     zaim_low = ZaimRowFactory.create(WaonZaimTransferRowConverter(waon_auto_charge_row))
     list_zaim_row = zaim_low.convert_to_list()
     zaim_row_data = ZaimRowData(*list_zaim_row)
     assert zaim_row_data.date == "2018-11-11"
     assert zaim_row_data.method == "transfer"
     assert zaim_row_data.category_large == "-"
     assert zaim_row_data.category_small == "-"
     assert zaim_row_data.cash_flow_source == "イオン銀行"
     assert zaim_row_data.cash_flow_target == "WAON"
     assert zaim_row_data.item_name == ""
     assert zaim_row_data.note == ""
     assert zaim_row_data.store_name == ""
     assert zaim_row_data.currency == ""
     assert zaim_row_data.amount_income == 0
     assert zaim_row_data.amount_payment == 0
     assert zaim_row_data.amount_transfer == 5000
     assert zaim_row_data.balance_adjustment == ""
     assert zaim_row_data.amount_before_currency_conversion == ""
     assert zaim_row_data.setting_aggregate == ""
Beispiel #10
0
 def test_all(yaml_config_load, database_session_stores_item):
     """Argument should set into properties."""
     mufg_row = MufgIncomeFromOthersRow(InstanceResource.ROW_DATA_MUFG_TRANSFER_INCOME_NOT_OWN_ACCOUNT)
     # Reason: Pylint's bug. pylint: disable=no-member
     zaim_low = ZaimRowFactory.create(MufgZaimIncomeRowConverter(mufg_row))
     list_zaim_row = zaim_low.convert_to_list()
     zaim_row_data = ZaimRowData(*list_zaim_row)
     assert zaim_row_data.date == "2018-08-20"
     assert zaim_row_data.method == "income"
     assert zaim_row_data.category_large == "臨時収入"
     assert zaim_row_data.category_small == "-"
     assert zaim_row_data.cash_flow_source == ""
     assert zaim_row_data.cash_flow_target == "三菱UFJ銀行"
     assert zaim_row_data.item_name == ""
     assert zaim_row_data.note == ""
     assert zaim_row_data.store_name == "三菱UFJ銀行"
     assert zaim_row_data.currency == ""
     assert zaim_row_data.amount_income == 20
     assert zaim_row_data.amount_payment == 0
     assert zaim_row_data.amount_transfer == 0
     assert zaim_row_data.balance_adjustment == ""
     assert zaim_row_data.amount_before_currency_conversion == ""
     assert zaim_row_data.setting_aggregate == ""
Beispiel #11
0
 def test_all(
     yaml_config_load,
     database_session_stores_item,
     input_row_factory,
     input_row_data: SFCardViewerRowData,
     zaim_row_converter_selector,
     expected_date,
     expected_category_large,
     expected_category_small,
     expected_cash_flow_source,
     expected_item_name,
     expected_note,
     expected_store_name,
     expected_amount_payment,
 ):
     """Argument should set into properties."""
     input_row = input_row_factory.create(input_row_data)
     zaim_low = ZaimRowFactory.create(zaim_row_converter_selector.create(input_row))
     list_zaim_row = zaim_low.convert_to_list()
     zaim_row_data = ZaimRowData(*list_zaim_row)
     assert zaim_row_data.date == expected_date
     assert zaim_row_data.method == "payment"
     assert zaim_row_data.category_large == expected_category_large
     assert zaim_row_data.category_small == expected_category_small
     assert zaim_row_data.cash_flow_source == expected_cash_flow_source
     assert zaim_row_data.cash_flow_target == ""
     assert zaim_row_data.item_name == expected_item_name
     assert zaim_row_data.note == expected_note
     assert zaim_row_data.store_name == expected_store_name
     assert zaim_row_data.currency == ""
     assert zaim_row_data.amount_income == 0
     assert zaim_row_data.amount_payment == expected_amount_payment
     assert zaim_row_data.amount_transfer == 0
     assert zaim_row_data.balance_adjustment == ""
     assert zaim_row_data.amount_before_currency_conversion == ""
     assert zaim_row_data.setting_aggregate == ""
Beispiel #12
0
 def test_fail(
     yaml_config_file, directory_csv_convert_table, directory_csv_input, directory_csv_output, database_session
 ):
     """
     Correct input CSV files should be converted into Zaim format CSV file.
     Incorrect input CSV files should be reported on error_undefined_content.csv.
     """
     with pytest.raises(InvalidInputCsvError) as error:
         ZaimCsvConverter.execute()
     assert str(error.value) == "Some invalid input CSV file exists. Please check error_invalid_row.csv."
     checker = ZaimCsvFileChecker(directory_csv_output)
     checker.assert_file(
         "waon201808.csv",
         [
             ZaimRowData(
                 "2018-08-30",
                 "payment",
                 "食費",
                 "食料品",
                 "WAON",
                 "",
                 "",
                 "",
                 "イオンスタイル 板橋前野町",
                 "",
                 "0",
                 "1489",
                 "0",
                 "",
                 "",
                 "",
             ),
         ],
     )
     checker.assert_file(
         "amazon201810.csv",
         [
             ZaimRowData(
                 "2018-10-23",
                 "payment",
                 "大型出費",
                 "家電",
                 "ヨドバシゴールドポイントカード・プラス",
                 "",
                 "Echo Dot (エコードット) 第2世代 - スマートスピーカー with Alexa、ホワイト",
                 "",
                 "Amazon Japan G.K.",
                 "",
                 "0",
                 "4980",
                 "0",
                 "",
                 "",
                 "",
             ),
         ],
     )
     checker = ErrorCsvFileChecker(directory_csv_output)
     checker.assert_file(
         "error_invalid_row.csv",
         [
             InvalidRowErrorRowData(
                 "gold_point_card_plus_201912_202008.csv",
                 "",
                 "gold_point_card_plus_201912_202008.csv does not contain Footer row. "
                 "Confirm CSV file and footer again. "
                 "Footer = ['^$', '^$', '^$', '^$', '^$', '^\\\\d*$', '^$']",
             ),
             InvalidRowErrorRowData(
                 "mufg201810.csv",
                 "",
                 (
                     "CSV file does not contain header row.Confirm CSV file and header again. "
                     "Header = "
                     "['日付', '摘要', '摘要内容', '支払い金額', '預かり金額', '差引残高', 'メモ', '未資金化区分', '入払区分']"
                 ),
             ),
             InvalidRowErrorRowData(
                 "waon201808.csv",
                 "1",
                 'The value of "Charge kind" has not been defined in this code. Charge kind = クレジットカード',
             ),
         ],
     )
Beispiel #13
0
    def test_success(
        yaml_config_file, directory_csv_convert_table, directory_csv_input, directory_csv_output, database_session
    ):
        """Input CSV files should be converted into Zaim format CSV file."""
        try:
            ZaimCsvConverter.execute()
        except InvalidInputCsvError as error:
            if (directory_csv_output.target / "error_undefined_content.csv").exists():
                TestZaimCsvConverter.debug_csv("error_undefined_content.csv", directory_csv_output)
            TestZaimCsvConverter.debug_csv("error_invalid_row.csv", directory_csv_output)
            raise error
        files = sorted(directory_csv_output.target.rglob("*[!.gitkeep]"))

        assert len(files) == 17
        checker = ZaimCsvFileChecker(directory_csv_output)
        checker.assert_file(
            "waon201807.csv",
            [
                ZaimRowData(
                    "2018-08-07",
                    "payment",
                    "食費",
                    "食料品",
                    "WAON",
                    "",
                    "",
                    "",
                    "ファミリーマート かぶと町永代通り店",
                    "",
                    "0",
                    "129",
                    "0",
                    "",
                    "",
                    "",
                ),
            ],
        )
        checker.assert_file(
            "waon201808.csv",
            [
                ZaimRowData(
                    "2018-08-30",
                    "payment",
                    "食費",
                    "食料品",
                    "WAON",
                    "",
                    "",
                    "",
                    "イオンスタイル 板橋前野町",
                    "",
                    "0",
                    "1489",
                    "0",
                    "",
                    "",
                    "",
                ),
            ],
        )
        checker.assert_file(
            "waon201810.csv",
            [
                ZaimRowData(
                    "2018-10-22",
                    "income",
                    "その他",
                    "-",
                    "",
                    "WAON",
                    "",
                    "",
                    "イオンスタイル 板橋前野町",
                    "",
                    "1504",
                    "0",
                    "0",
                    "",
                    "",
                    "",
                ),
                ZaimRowData(
                    "2018-10-22", "transfer", "-", "-", "イオン銀行", "WAON", "", "", "", "", "0", "0", "10000", "", "", ""
                ),
            ],
        )
        checker.assert_file(
            "waon201811.csv",
            [
                ZaimRowData(
                    "2018-11-11", "transfer", "-", "-", "イオン銀行", "WAON", "", "", "", "", "0", "0", "5000", "", "", ""
                ),
                ZaimRowData(
                    "2018-11-23",
                    "payment",
                    "食費",
                    "食料品",
                    "WAON",
                    "",
                    "",
                    "",
                    "カルディコーヒーファーム成増店",
                    "",
                    "0",
                    "-2098",
                    "0",
                    "",
                    "",
                    "",
                ),
            ],
        )
        checker.assert_file(
            "gold_point_card_plus201807.csv",
            [
                ZaimRowData(
                    "2018-07-03",
                    "payment",
                    "水道・光熱",
                    "電気料金",
                    "ヨドバシゴールドポイントカード・プラス",
                    "",
                    "",
                    "",
                    "東京電力エナジーパートナー株式会社",
                    "",
                    "0",
                    "11402",
                    "0",
                    "",
                    "",
                    "",
                ),
            ],
        )
        checker.assert_file(
            "gold_point_card_plus_201912_202007.csv",
            [
                ZaimRowData(
                    "2020-07-03",
                    "payment",
                    "水道・光熱",
                    "電気料金",
                    "ヨドバシゴールドポイントカード・プラス",
                    "",
                    "",
                    "",
                    "東京電力エナジーパートナー株式会社",
                    "",
                    "0",
                    "11402",
                    "0",
                    "",
                    "",
                    "",
                ),
                ZaimRowData(
                    "2020-07-03",
                    "payment",
                    "通信",
                    "インターネット関連費",
                    "ヨドバシゴールドポイントカード・プラス",
                    "",
                    "",
                    "",
                    "Amazon Web Services Japan K.K.",
                    "",
                    "0",
                    "66",
                    "0",
                    "",
                    "",
                    "",
                ),
            ],
        )
        checker.assert_file(
            "mufg201808.csv",
            [
                ZaimRowData(
                    "2018-08-20", "income", "その他", "-", "", "三菱UFJ銀行", "", "", "三菱UFJ銀行", "", "20", "0", "0", "", "", ""
                ),
            ],
        )
        checker.assert_file(
            "mufg201810.csv",
            [
                ZaimRowData(
                    "2018-10-01", "transfer", "-", "-", "お財布", "三菱UFJ銀行", "", "", "", "", "0", "0", "10000", "", "", ""
                ),
                ZaimRowData(
                    "2018-10-01",
                    "income",
                    "臨時収入",
                    "-",
                    "",
                    "三菱UFJ銀行",
                    "",
                    "",
                    "フリコミモト-アカウント",
                    "",
                    "10000",
                    "0",
                    "0",
                    "",
                    "",
                    "",
                ),
                ZaimRowData(
                    "2018-10-20", "transfer", "-", "-", "お財布", "三菱UFJ銀行", "", "", "", "", "0", "0", "10000", "", "", ""
                ),
                ZaimRowData(
                    "2018-10-29",
                    "transfer",
                    "-",
                    "-",
                    "三菱UFJ銀行",
                    "ゴールドポイントカード・プラス",
                    "",
                    "",
                    "",
                    "",
                    "0",
                    "0",
                    "59260",
                    "",
                    "",
                    "",
                ),
            ],
        )
        checker.assert_file(
            "mufg201811.csv",
            [
                ZaimRowData(
                    "2018-11-28",
                    "payment",
                    "水道・光熱",
                    "水道料金",
                    "三菱UFJ銀行",
                    "",
                    "",
                    "",
                    "東京都水道局 経理部管理課",
                    "",
                    "0",
                    "3628",
                    "0",
                    "",
                    "",
                    "",
                ),
            ],
        )
        checker.assert_file(
            "pasmo201811.csv",
            [
                ZaimRowData(
                    "2018-11-13",
                    "payment",
                    "交通",
                    "電車",
                    "PASMO",
                    "",
                    "",
                    "メトロ 六本木一丁目 → メトロ 後楽園",
                    "東京地下鉄株式会社 南北線後楽園駅",
                    "",
                    "0",
                    "195",
                    "0",
                    "",
                    "",
                    "",
                ),
                ZaimRowData(
                    "2018-11-11",
                    "transfer",
                    "-",
                    "-",
                    "TOKYU CARD",
                    "PASMO",
                    "",
                    "",
                    "",
                    "",
                    "0",
                    "0",
                    "3000",
                    "",
                    "",
                    "",
                ),
            ],
        )
        checker.assert_file(
            "pasmo201901.csv",
            [
                ZaimRowData(
                    "2019-01-27", "payment", "交通", "バス", "PASMO", "", "", "", "", "", "0", "195", "0", "", "", ""
                ),
            ],
        )
        checker.assert_file(
            "amazon201810.csv",
            [
                ZaimRowData(
                    "2018-10-23",
                    "payment",
                    "大型出費",
                    "家電",
                    "ヨドバシゴールドポイントカード・プラス",
                    "",
                    "Echo Dot (エコードット) 第2世代 - スマートスピーカー with Alexa、ホワイト",
                    "",
                    "Amazon Japan G.K.",
                    "",
                    "0",
                    "4980",
                    "0",
                    "",
                    "",
                    "",
                ),
            ],
        )
        checker.assert_file(
            "amazon_201911_201911.csv",
            [
                ZaimRowData(
                    "2019-11-09",
                    "payment",
                    "教育・教養",
                    "参考書",
                    "ヨドバシゴールドポイントカード・プラス",
                    "",
                    "[第2版]Python機械学習プログラミング 達人データサイエンティストによる理論と実践 impress top gearシリーズ",
                    "",
                    "Amazon Japan G.K.",
                    "",
                    "0",
                    "4000",
                    "0",
                    "",
                    "",
                    "",
                ),
                ZaimRowData(
                    "2019-11-09",
                    "payment",
                    "通信",
                    "その他",
                    "ヨドバシゴールドポイントカード・プラス",
                    "",
                    "(Amazon ポイント)",
                    "",
                    "Amazon Japan G.K.",
                    "",
                    "0",
                    "-11",
                    "0",
                    "",
                    "",
                    "",
                ),
            ],
        )
        checker.assert_file(
            "amazon_201911_202004.csv",
            [
                ZaimRowData(
                    "2020-04-25",
                    "payment",
                    "大型出費",
                    "家電",
                    "ヨドバシゴールドポイントカード・プラス",
                    "",
                    "【日本正規代理店品】 Drobo 5N2 NASケース(3.5インチ×5bay) ギガビットイーサネット×2 PDR-5N2",
                    "",
                    "Amazon Japan G.K.",
                    "",
                    "0",
                    "79482",
                    "0",
                    "",
                    "",
                    "",
                ),
                ZaimRowData(
                    "2020-04-25",
                    "payment",
                    "通信",
                    "宅急便",
                    "ヨドバシゴールドポイントカード・プラス",
                    "",
                    "(配送料・手数料)",
                    "",
                    "Amazon Japan G.K.",
                    "",
                    "0",
                    "410",
                    "0",
                    "",
                    "",
                    "",
                ),
                ZaimRowData(
                    "2020-04-25",
                    "payment",
                    "通信",
                    "その他",
                    "ヨドバシゴールドポイントカード・プラス",
                    "",
                    "(割引)",
                    "",
                    "Amazon Japan G.K.",
                    "",
                    "0",
                    "-410",
                    "0",
                    "",
                    "",
                    "",
                ),
                ZaimRowData(
                    "2020-04-25",
                    "payment",
                    "通信",
                    "その他",
                    "ヨドバシゴールドポイントカード・プラス",
                    "",
                    "(Amazonポイント)",
                    "",
                    "Amazon Japan G.K.",
                    "",
                    "0",
                    "-60",
                    "0",
                    "",
                    "",
                    "",
                ),
            ],
        )
        checker.assert_file(
            "view_card202005.csv",
            [
                ZaimRowData(
                    "2020-03-31",
                    "payment",
                    "通信",
                    "その他",
                    "ビューカード",
                    "",
                    "",
                    "",
                    "ビューカード ビューカードセンター",
                    "",
                    "0",
                    "524",
                    "0",
                    "",
                    "",
                    "",
                ),
            ],
        )
        checker.assert_file(
            "suica202003.csv",
            [
                ZaimRowData(
                    "2020-03-21",
                    "payment",
                    "交通",
                    "電車",
                    "Suica",
                    "",
                    "",
                    "JR東 越谷レイクタウン → JR東 板橋",
                    "板橋",
                    "",
                    "0",
                    "473",
                    "0",
                    "",
                    "",
                    "",
                ),
                ZaimRowData(
                    "2020-03-21",
                    "payment",
                    "交通",
                    "電車",
                    "Suica",
                    "",
                    "",
                    "JR東 板橋 → JR東 越谷レイクタウン",
                    "越谷レイクタウン",
                    "",
                    "0",
                    "473",
                    "0",
                    "",
                    "",
                    "",
                ),
                ZaimRowData(
                    "2020-03-21", "transfer", "-", "-", "ビューカード", "Suica", "", "", "", "", "0", "0", "3000", "", "", ""
                ),
            ],
        )
        checker.assert_file(
            "pay_pal201810.csv",
            [
                ZaimRowData(
                    "2018-10-11",
                    "payment",
                    "教育・教養",
                    "参考書",
                    "ヨドバシゴールドポイントカード・プラス",
                    "",
                    "プロダクティブ・プログラマ",
                    "",
                    "PayPal",
                    "",
                    "0",
                    "2246",
                    "0",
                    "",
                    "",
                    "",
                ),
                ZaimRowData(
                    "2018-10-11",
                    "payment",
                    "教育・教養",
                    "参考書",
                    "ヨドバシゴールドポイントカード・プラス",
                    "",
                    "プログラマが知るべき97のこと",
                    "",
                    "PayPal",
                    "",
                    "0",
                    "1642",
                    "0",
                    "",
                    "",
                    "",
                ),
                ZaimRowData(
                    "2018-10-22",
                    "payment",
                    "教育・教養",
                    "参考書",
                    "ヨドバシゴールドポイントカード・プラス",
                    "",
                    "退屈なことはPythonにやらせよう",
                    "",
                    "PayPal",
                    "",
                    "0",
                    "3197",
                    "0",
                    "",
                    "",
                    "",
                ),
            ],
        )