def setUp(self): self.year = "2008" self.client = Client() self.url = reverse('budget_summary_year', args=(self.year,)) amount_groceries1 = Decimal('68.30') amount_groceries2 = Decimal('34.39') amount_loan = Decimal('800.0') # total_groceries = amount_groceries1 + amount_groceries2 # total_transactions = total_groceries + amount_loan self.start_date = datetime.date(int(self.year), 1, 1) self.end_date = datetime.date(int(self.year), 12, 31) # Setup and crate needed budgets, estimates, etc. self.budget = BudgetFactory(start_date=datetime.datetime(2008, 1, 1)) cat_food = CategoryFactory(name='Food') cat_groceries = CategoryFactory(name='Groceries', parent=cat_food,) cat_loan = CategoryFactory(name='Loan') cat_mortgage = CategoryFactory(name='Mortgage', parent=cat_loan,) BudgetEstimateFactory(amount=Decimal('9600.0'), budget=self.budget, category=cat_mortgage,) BudgetEstimateFactory(amount=Decimal('800.0'), budget=self.budget, category=cat_groceries,) TransactionFactory(amount=amount_groceries1, category=cat_groceries, date=datetime.datetime(2008, 2, 1)) TransactionFactory(amount=amount_groceries2, category=cat_groceries, date=datetime.datetime(2008, 9, 15)) TransactionFactory(amount=amount_loan, category=cat_mortgage, date=datetime.datetime(2008, 9, 20)) root_nodes = Category.root_nodes.all() self.categories = get_queryset_descendants(root_nodes, include_self=True) yearly_things = self.budget.yearly_data_per_category(self.categories, self.budget, self.year) self.estimates_and_actuals, self.actual_yearly_total = yearly_things
def test_categories_estimates_and_transactions(self): """ This needs refactoring """ amount_groceries1 = Decimal('68.30') amount_groceries2 = Decimal('34.39') total_transactions = amount_groceries1 + amount_groceries2 # Setup and crate needed budgets, estimates, etc. budget = BudgetFactory(start_date=datetime.datetime(2008, 1, 1)) start_date, end_date = calculate_start_end_date(2008, 2) cat_food = CategoryFactory(name='Food') cat_groceries = CategoryFactory(name='Groceries', parent=cat_food,) cat_loan = CategoryFactory(name='Loan') BudgetEstimateFactory(amount=Decimal('1000.0'), budget=budget, category=cat_loan,) BudgetEstimateFactory(amount=Decimal('800.0'), budget=budget, category=cat_groceries,) TransactionFactory(amount=amount_groceries1, category=cat_groceries, date=datetime.datetime(2008, 2, 1)) TransactionFactory(amount=amount_groceries2, category=cat_groceries, date=datetime.datetime(2008, 2, 1)) root_nodes = Category.root_nodes.all() categories = get_queryset_descendants(root_nodes, include_self=True) cat_est_trans, actual_total = ( budget.categories_estimates_and_transactions( start_date, end_date, categories, 'all') ) self.assertEqual(total_transactions, actual_total, 'Total amount does not match')
def yearly_estimates_and_actuals(): ActualYearlyData = namedtuple('ActualYearlyData', ['total_transactions', 'total_groceries', 'groceries_estimate', 'yearly_estimated_total',]) CalculatedYearlyData = namedtuple('CalculatedYearlyData', ['calculated_data', 'calculated_estimation',]) amount_groceries1 = Decimal('68.30') amount_groceries2 = Decimal('34.39') amount_loan = Decimal('800.0') total_groceries = amount_groceries1 + amount_groceries2 total_transactions = total_groceries + amount_loan groceries_monthly_estimate = Decimal('800.0') groceries_yearly_estimate = groceries_monthly_estimate * 12 loan_monthly_estimate = Decimal('900.0') loan_yearly_estimate = loan_monthly_estimate * 12 yearly_estimated_total = groceries_yearly_estimate + loan_yearly_estimate #Setup and crate needed budgets, estimates, etc. budget = BudgetFactory(start_date=datetime.datetime(2008, 1, 1)) cat_food = CategoryFactory(name='Food') entire_year = '1,2,3,4,5,6,7,8,9,10,11,12' cat_groceries = CategoryFactory(name='Groceries', parent=cat_food, ) cat_loan = CategoryFactory(name='Loan') cat_mortgage = CategoryFactory(name='Mortgage', parent=cat_loan, ) est_loan = BudgetEstimateFactory(amount=loan_monthly_estimate, budget=budget, category=cat_mortgage, occurring_month=entire_year,) est_groceries = BudgetEstimateFactory(amount=groceries_monthly_estimate, budget=budget, category=cat_groceries, occurring_month=entire_year,) trans_groceries1 = TransactionFactory(amount=amount_groceries1, category=cat_groceries, date=datetime.datetime(2008, 2, 1)) trans_groceries2 = TransactionFactory(amount=amount_groceries2, category=cat_groceries, date=datetime.datetime(2008, 9, 15)) trans_loan1 = TransactionFactory(amount=amount_loan, category=cat_mortgage, date=datetime.datetime(2008, 9, 20)) root_nodes = Category.root_nodes.all() categories = get_queryset_descendants(root_nodes, include_self=True) year = "2008" yearly_calculated_data = budget.yearly_data_per_category(categories, budget, year) yearly_calculated_estimation = budget.yearly_estimated_total() actual_data = ActualYearlyData(total_transactions=total_transactions, total_groceries=total_groceries, groceries_estimate=groceries_yearly_estimate, yearly_estimated_total=yearly_estimated_total) calculated_data =CalculatedYearlyData( calculated_data=yearly_calculated_data, calculated_estimation=yearly_calculated_estimation, ) # Return yearly things and toral_transcations return calculated_data, actual_data