budget/tests/test_load.py
2023-04-23 00:21:44 +01:00

38 lines
997 B
Python

from datetime import date
from decimal import Decimal
from typing import Sequence
import pytest
from pfbudget.db.client import Client
from pfbudget.db.model import BankTransaction, Transaction
from pfbudget.load.database import DatabaseLoader
from pfbudget.load.load import Loader
class FakeDatabaseClient(Client):
def __init__(self, url: str) -> None:
super().__init__(url)
def insert(self, transactions: Sequence[Transaction]) -> None:
pass
@pytest.fixture
def loader() -> Loader:
url = "postgresql://user:pass@127.0.0.1:5432/db"
client = FakeDatabaseClient(url)
return DatabaseLoader(client)
class TestDatabaseLoad:
def test_empty_url(self):
_ = FakeDatabaseClient("")
def test_insert(self, loader: Loader):
transactions = [
BankTransaction(date(2023, 1, 1), "", Decimal("-500"), "Bank#1"),
BankTransaction(date(2023, 1, 2), "", Decimal("500"), "Bank#2"),
]
loader.load(transactions)