from typing import Optional from unittest.mock import Mock from datetime import datetime def create_mock_user( id: int = 1, name: str ='name', email: str = 'abcdefg@hijk.com', created_date: datetime = datetime.now().date(), updated_date: Optional[datetime] = None ) -> Mock: mock_user = Mock() mock_user.id = id mock_user.name = name mock_user.email = email mock_user.created_date = created_date mock_user.updated_date = updated_date return mock_user def create_mock_business( id: int = 1, name: str = 'BusinessName', business_type_id: Optional[int] = 2 ) -> Mock: mock_business = Mock() mock_business.id = id mock_business.name = name mock_business.business_type_id = business_type_id return mock_business def create_mock_business_type( id: int = 1, name: str = 'BussinessType' ): mock_type = Mock() mock_type.id = id mock_type.name = name return mock_type def create_mock_account( id: int = 1, dashboard_user_id: int = 2, name: str = 'AccountName', account_type_id: int = 3, created_date: datetime = datetime.now().date(), updated_date: Optional[datetime] = None ) -> Mock: mock_account = Mock() mock_account.id = id mock_account.dashboard_user_id = dashboard_user_id mock_account.name = name mock_account.account_type_id = account_type_id mock_account.created_date = created_date mock_account.updated_date = updated_date return mock_account def create_mock_account_type( id: int = 1, name: str = 'AccountType', is_income: bool = True, is_expense: bool = False ): mock_type = Mock() mock_type.id = id mock_type.name = name mock_type.is_income = is_income mock_type.is_expense = is_expense return mock_type def create_mock_transaction( id: int = 1, dashboard_user_id: int = 1, amount: int = 0, business_id: int = 1, is_expense: bool = True, created_date: datetime = datetime.now().date(), ) -> Mock: mock_transaction = Mock() mock_transaction.id = id mock_transaction.dashboard_user_id = dashboard_user_id mock_transaction.amount = amount mock_transaction.business_id = business_id mock_transaction.is_expense = is_expense mock_transaction.created_date = created_date return mock_transaction def create_mock_budget( id: int = 1, name: str = 'TestBudget', amount: int = 2000, dashboard_user_id: int = 2, business_type_id: int = 3, created_date: datetime = datetime.now().date(), updated_date: Optional[datetime] = None, ) -> Mock: mock_budget = Mock() mock_budget.id = id mock_budget.name = name mock_budget.amount = amount mock_budget.dashboard_user_id = dashboard_user_id mock_budget.business_type_id = business_type_id mock_budget.created_date = created_date mock_budget.updated_date = updated_date return mock_budget