"""Different test helpers.""" from datetime import date, datetime from typing import Iterable from abacus_common_logic.connectors.database import db from payee.utils.models import object_as_dict def remove_keys(data: dict, remove_fields: Iterable[str]) -> dict: """Remove items from dict.""" for key in remove_fields: del data[key] return data def convert_object_to_dict( obj: db.Model, dates_to_str: bool = True, remove_fields: Iterable[str] = None ) -> dict: """Convert SQL Alchemy model to dict.""" data = object_as_dict(obj) if remove_fields: remove_keys(data, remove_fields) if dates_to_str: for key, value in data.items(): if isinstance(value, (date, datetime)): data[key] = value.isoformat() return data