from datetime import date from decimal import Decimal from account.resource import AccountResource from account.schemas import AccountCreate, CategoryCreate def inject_fixtures(session): for f in fixtures_account: f = prepare_dict(session, f) schema = AccountCreate(**f) AccountResource.create(schema, session) for f in fixtures_category: f = prepare_dict(session, f) schema = CategoryCreate(**f) AccountResource.create(schema, session) def prepare_dict(session, entry): if entry['parent_path']: parent = AccountResource.get_by_path(session, entry['parent_path']) entry['parent_account_id'] = parent.id else: entry['parent_account_id'] = None del entry['parent_path'] return entry fixtures_account = [ { "name": "Current Assets", "parent_path": None, "type": "Asset", "opening_date": date(1970, 1, 2), "opening_balance": Decimal("0.00"), }, { "name": "Cash in Wallet", "parent_path": "/Accounts/Asset/Current Assets/", "type": "Asset", "opening_date": date(1970, 1, 3), "opening_balance": Decimal("0.00"), }, { "name": "Checking Account", "parent_path": "/Accounts/Asset/Current Assets/", "type": "Asset", "opening_date": date(1970, 1, 4), "opening_balance": Decimal("0.00"), }, { "name": "Savings Account", "parent_path": "/Accounts/Asset/Current Assets/", "type": "Asset", "opening_date": date(1970, 1, 5), "opening_balance": Decimal("0.00"), }, { "name": "Debt Accounts", "parent_path": None, "type": "Liability", "opening_date": date(1970, 1, 6), "opening_balance": Decimal("0.00"), }, { "name": "Credit Card", "parent_path": "/Accounts/Liability/Debt Accounts/", "type": "Liability", "opening_date": date(1970, 1, 7), "opening_balance": Decimal("0.00"), }, ] fixtures_category = [ { "name": "Salary", "parent_path": None, "type": "Income", }, { "name": "Other Income", "parent_path": None, "type": "Income", }, { "name": "Auto", "parent_path": None, "type": "Expense", }, { "name": "Home", "parent_path": None, "type": "Expense", }, { "name": "Rent", "parent_path": "/Categories/Expense/Home/", "type": "Expense", }, { "name": "Electricity", "parent_path": "/Categories/Expense/Home/", "type": "Expense", }, { "name": "Entertainment", "parent_path": None, "type": "Expense", }, { "name": "Groceries", "parent_path": None, "type": "Expense", } ] """ """