38 lines
997 B
Python
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)
|