finance-watcher / test / test_objects.py
test_objects.py
Raw
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