def test_restaurant(self): tx_input = """ Jan 1, 2018 Restaurants TEST RESTAURANT #321 SASKATOON, SK 4567********1234 −$123.45 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2018, 1, 1)) self.assertEqual(result.category, "Restaurants") self.assertEqual(result.location, "TEST RESTAURANT #321 SASKATOON, SK") self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, 123.45) self.assertIsNone(result.conversion)
def test_personal_and_household_expense(self): tx_input = """ Jan 2, 2018 Personal & Household Expenses Amazon.ca AMAZON.CA, XX 4567********1234 −$2,345.67 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2018, 1, 2)) self.assertEqual(result.category, "Personal & Household Expenses") self.assertEqual(result.location, "Amazon.ca AMAZON.CA, XX") self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, 2345.67) self.assertIsNone(result.conversion)
def test_cash_back_2020(self): tx_input = """ Dec 25, 2020 Other TransactionsCASHBACK/REMISE EN ARGENT 4567********1234 $987.65 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2020, 12, 25)) self.assertEqual(result.category, "CASH BACK AWARDED") self.assertIsNone(result.location) self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, 987.65) self.assertIsNone(result.conversion)
def test_payment(self): tx_input = """ Dec 31, 2017 PAYMENT THANK YOU/PAIEMEN T MERCI 4567********1234 $5.00 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2017, 12, 31)) self.assertEqual(result.category, "PAYMENT") self.assertIsNone(result.location) self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, 5.00) self.assertIsNone(result.conversion)
def test_cash_interest(self): tx_input = """ Jul 26, 2019 CASH INTEREST 4567********1234 −$1.23 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2019, 7, 26)) self.assertEqual(result.category, "CASH INTEREST") self.assertEqual(result.location, None) self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, 1.23) self.assertIsNone(result.conversion)
def test_no_space_after_category(self): tx_input = """ Aug 19, 2019 Retail and GroceryTENDA CANADA RICHMOND HILL, ON 4567********1234 −$54.96 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2019, 8, 19)) self.assertEqual(result.category, "Retail and Grocery") self.assertEqual(result.location, "TENDA CANADA RICHMOND HILL, ON") self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, 54.96) self.assertIsNone(result.conversion)
def test_credit(self): tx_input = """ Apr 10, 2018 Restaurants MCDONALD'S #40485 SASKATOON, SK 4567********1234 $4.56 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2018, 4, 10)) self.assertEqual(result.category, "Restaurants") self.assertEqual(result.location, "MCDONALD'S #40485 SASKATOON, SK") self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, -4.56) self.assertIsNone(result.conversion)
def test_cash_back(self): tx_input = """ Dec 25, 2018 CASH BACK AWARDED 4567********1234 $543.21 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2018, 12, 25)) self.assertEqual(result.category, "CASH BACK AWARDED") self.assertIsNone(result.location) self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, 543.21) self.assertIsNone(result.conversion)
def test_hotels_entertainment_and_recreation(self): tx_input = """ Feb 2, 2018 Hotels, Entertainment, and Recreation STEAMGAMES.COM 425-952-2985 4567********1234 −$100.00 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2018, 2, 2)) self.assertEqual(result.category, "Hotels, Entertainment, and Recreation") self.assertEqual(result.location, "STEAMGAMES.COM 425-952-2985") self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, 100.00) self.assertIsNone(result.conversion)
def test_health_and_education(self): tx_input = """ May 17, 2018 Health & Education PHARMACY NUMBER ONE SASKATOON, SK 4567********1234 −$53.21 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2018, 5, 17)) self.assertEqual(result.category, "Health & Education") self.assertEqual(result.location, "PHARMACY NUMBER ONE SASKATOON, SK") self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, 53.21) self.assertIsNone(result.conversion)
def test_foreign_currency_transaction(self): tx_input = """ Feb 1, 2018 Foreign Currency Transactions TESTSTORECOM http://www.test, CA 98.76 USD @ 1.234567 4567********1234 −$123.45 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2018, 2, 1)) self.assertEqual(result.category, "Foreign Currency Transactions") self.assertEqual(result.location, "TESTSTORECOM http://www.test, CA") self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, 123.45) self.assertEqual(result.conversion, "98.76 USD @ 1.234567")
def test_home_and_office_improvement(self): tx_input = """ Jan 6, 2018 Home & Office Improvement BEST BUY #987 SASKATOON, SK 4567********1234 −$321.98 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2018, 1, 6)) self.assertEqual(result.category, "Home & Office Improvement") self.assertEqual(result.location, "BEST BUY #987 SASKATOON, SK") self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, 321.98) self.assertIsNone(result.conversion)
def test_transportation(self): tx_input = """ Jan 5, 2018 Transportation SHELL 0123 TEST AVENUE SASKATOON, SK 4567********1234 −$38.80 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2018, 1, 5)) self.assertEqual(result.category, "Transportation") self.assertEqual(result.location, "SHELL 0123 TEST AVENUE SASKATOON, SK") self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, 38.80) self.assertIsNone(result.conversion)
def test_retail_and_grocery(self): tx_input = """ Jan 4, 2018 Retail and Grocery SOBEYS #4321 SASKATOON, SK 4567********1234 −$98.76 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2018, 1, 4)) self.assertEqual(result.category, "Retail and Grocery") self.assertEqual(result.location, "SOBEYS #4321 SASKATOON, SK") self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, 98.76) self.assertIsNone(result.conversion)
def test_professional_and_financial_services(self): tx_input = """ Jan 3, 2018 Professional and Financial Services GOOGLE *Google Music 123-456-7890, YZ 4567********1234 −$8.99 """ result = cctp.parse(tx_input) self.assertEqual(result.date, datetime.date(2018, 1, 3)) self.assertEqual(result.category, "Professional and Financial Services") self.assertEqual(result.location, "GOOGLE *Google Music 123-456-7890, YZ") self.assertEqual(result.card, "4567********1234") self.assertEqual(result.amount, 8.99) self.assertIsNone(result.conversion)