class TestsMoneyTracker(unittest.TestCase): def setUp(self): agr_money_tracker = AgregatedMoneyTracker() agr_money_tracker._data = { '2018,11,12': { 'income': [], 'expence': [Expense('food', 5)] }, '2018,11,15': { 'income': [Income('salary', 50)], 'expence': [Expense('shoes', 100)] }, '2018,11,17': { 'income': [Income('clothes', 20)], 'expence': [] } } self.money_tracker = MoneyTracker() self.money_tracker._data_base = agr_money_tracker def test_list_user_data(self): expected_result = ('=== 12-11-2018 ===\n' '5, food, New Expense\n' '=== 15-11-2018 ===\n' '50, salary, New Income\n' '100, shoes, New Expense\n' '=== 17-11-2018 ===\n' '20, clothes, New Income\n') self.assertEqual(self.money_tracker.list_user_data(), expected_result) def test_get_string_with_empty_data(self): self.assertEqual(MoneyTracker.get_string([]), '') def test_get_string_with_data(self): self.assertEqual(MoneyTracker.get_string([1, 2, 3]), '123') self.assertEqual( MoneyTracker.get_string( [Income('salary', 50), Expense('shoes', 100)]), ('50, salary, New Income\n' '100, shoes, New Expense\n')) def test_show_user_data_per_date_no_data_for_the_date(self): self.assertEqual( self.money_tracker.show_user_data_per_date(5, 5, 2010), '') def test_show_user_data_per_date(self): self.assertEqual( self.money_tracker.show_user_data_per_date(15, 11, 2018), '50, salary, New Income\n' '100, shoes, New Expense\n') def test_get_user_income_no_income(self): self.assertEqual(MoneyTracker().get_user_incomes(), []) def test_get_user_income(self): self.assertEqual( self.money_tracker.get_user_incomes(), [Income('salary', 50), Income('clothes', 20)]) def test_get_user_expences_no_income(self): self.assertEqual(MoneyTracker().get_user_expences(), []) def test_get_user_expences(self): self.assertEqual( self.money_tracker.get_user_expences(), [Expense('food', 5), Expense('shoes', 100)]) def test_show_user_income(self): self.assertEqual( self.money_tracker.show_user_incomes(), '50, salary, New Income\n' '20, clothes, New Income\n') def test_show_user_expences(self): self.assertEqual(self.money_tracker.show_user_expences(), '5, food, New Expense\n' '100, shoes, New Expense\n') def test_list_income_categories_with_no_categories(self): self.assertEqual(MoneyTracker().list_income_categories(), '') def test_list_income_categories(self): self.assertEqual(self.money_tracker.list_income_categories(), 'salary\n' 'clothes\n') def test_list_expence_categories_with_no_categories(self): self.assertEqual(MoneyTracker().list_expence_categories(), '') def test_list_expece_categories(self): self.assertEqual(self.money_tracker.list_expence_categories(), 'food\n' 'shoes\n') def test_list_user_exepences_ordered_by_categories(self): self.money_tracker._data_base.set_record_for_date( '2018,11,17', '10, book, ' 'New Expense\n') exp = self.money_tracker.list_user_exepences_ordered_by_categories() self.assertEqual( exp, '10, book, New Expense\n' '5, food, New Expense\n' '100, shoes, New Expense\n')
class MoneyTrackerTests(unittest.TestCase): def setUp(self): self.categories = [ Income('760', 'Salary'), Expense('5.5', 'Eating Out'), Expense('34', 'Clothes'), Income('50', 'Savings') ] self.strings = [ '760, Salary, New Income', '5.5, Eating Out, New Expense', '34, Clothes, New Expense', '50, Savings, New Income' ] self.strings1 = [ '50, Savings, New Income', '15, Food, New Expense', '200, Deposit, New Income', '5, Sports, New Expense' ] self.categories1 = [ Income('50', 'Savings'), Expense('15', 'Food'), Income('200', 'Deposit'), Expense('5', 'Sports') ] self.aggregator1 = AggregateData({ '=== 22-03-2018 ===': self.strings, '=== 23-03-2018 ===': self.strings1 }) self.tracker1 = MoneyTracker(self.aggregator1) def test_list_user_expenses_ordered_by_categories(self): result = [ self.categories[2], self.categories[1], self.categories1[1], self.categories1[3] ] self.assertEqual( self.tracker1.list_user_expenses_ordered_by_categories(), result) def test_list_income_categories(self): result = [ self.categories[0], self.categories[3], self.categories1[0], self.categories1[2] ] self.assertEqual(self.tracker1.list_income_categories(), result) def test_list_expense(self): result = [ self.categories[1], self.categories[2], self.categories1[1], self.categories1[3] ] self.assertEqual(self.tracker1.list_expense_categories(), result) def test_add_income(self): with self.subTest("with new date"): data = self.tracker1.list_user_data() self.tracker1.add_income("Stipendiq", 100, '22-03-2018') self.assertTrue( Income(100, "Stipendiq") in data['=== 22-03-2018 ===']) with self.subTest("with old date"): data = self.tracker1.list_user_data() self.tracker1.add_expense("Tototo", 1.5, '22-03-2018') self.assertTrue( Income(1.5, "Tototo") in data['=== 22-03-2018 ===']) def test_add_expense(self): with self.subTest("with new date"): data = self.tracker1.list_user_data() self.tracker1.add_expense("Kniga", 17, '22-03-9999') self.assertTrue(Expense(17, "Kniga") in data['=== 22-03-9999 ===']) with self.subTest("with old date"): data = self.tracker1.list_user_data() self.tracker1.add_expense("Kola", 155.5, '22-03-2018') self.assertTrue( Expense(155.5, "Kola") in data['=== 22-03-2018 ==='])