Allow Nordigen parameter in Bank constructor
and remove Nordigen FK to Bank from Nordigen constructor. It is auto generated upon DB insertion.
This commit is contained in:
parent
3698654715
commit
21099909c9
@ -63,7 +63,7 @@ class Bank(Base, Export):
|
|||||||
BIC: Mapped[str] = mapped_column(String(8))
|
BIC: Mapped[str] = mapped_column(String(8))
|
||||||
type: Mapped[AccountType]
|
type: Mapped[AccountType]
|
||||||
|
|
||||||
nordigen: Mapped[Optional[Nordigen]] = relationship(init=False, lazy="joined")
|
nordigen: Mapped[Optional[Nordigen]] = relationship(default=None, lazy="joined")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def format(self) -> dict[str, Any]:
|
def format(self) -> dict[str, Any]:
|
||||||
@ -241,7 +241,7 @@ class Note(Base):
|
|||||||
class Nordigen(Base, Export):
|
class Nordigen(Base, Export):
|
||||||
__tablename__ = "banks_nordigen"
|
__tablename__ = "banks_nordigen"
|
||||||
|
|
||||||
name: Mapped[bankfk] = mapped_column(primary_key=True)
|
name: Mapped[bankfk] = mapped_column(primary_key=True, init=False)
|
||||||
bank_id: Mapped[Optional[str]]
|
bank_id: Mapped[Optional[str]]
|
||||||
requisition_id: Mapped[Optional[str]]
|
requisition_id: Mapped[Optional[str]]
|
||||||
invert: Mapped[Optional[bool]] = mapped_column(default=None)
|
invert: Mapped[Optional[bool]] = mapped_column(default=None)
|
||||||
|
|||||||
@ -1,4 +1,8 @@
|
|||||||
from pfbudget.db.model import AccountType, Bank
|
from pfbudget.db.model import AccountType, Bank, Nordigen
|
||||||
|
|
||||||
|
|
||||||
checking = Bank("bank", "BANK", AccountType.checking)
|
checking = Bank(
|
||||||
|
"bank", "BANK", AccountType.checking, Nordigen("bank_id", "requisition_id")
|
||||||
|
)
|
||||||
|
|
||||||
|
cc = Bank("cc", "CC", AccountType.MASTERCARD)
|
||||||
|
|||||||
@ -25,11 +25,15 @@ def client() -> Client:
|
|||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def banks(client: Client) -> list[Bank]:
|
def banks(client: Client) -> list[Bank]:
|
||||||
banks = [
|
banks = [
|
||||||
Bank("bank", "BANK", AccountType.checking),
|
Bank("bank", "BANK", AccountType.checking, Nordigen(None, "req", None)),
|
||||||
Bank("broker", "BROKER", AccountType.investment),
|
Bank("broker", "BROKER", AccountType.investment),
|
||||||
Bank("creditcard", "CC", AccountType.MASTERCARD),
|
Bank("creditcard", "CC", AccountType.MASTERCARD),
|
||||||
]
|
]
|
||||||
banks[0].nordigen = Nordigen("bank", None, "req", None)
|
|
||||||
|
# fix nordigen bank names which would be generated post DB insert
|
||||||
|
for bank in banks:
|
||||||
|
if bank.nordigen:
|
||||||
|
bank.nordigen.name = bank.name
|
||||||
|
|
||||||
client.insert(banks)
|
client.insert(banks)
|
||||||
return banks
|
return banks
|
||||||
@ -48,6 +52,8 @@ def transactions(client: Client) -> list[Transaction]:
|
|||||||
]
|
]
|
||||||
|
|
||||||
client.insert(transactions)
|
client.insert(transactions)
|
||||||
|
|
||||||
|
# fix ids which would be generated post DB insert
|
||||||
for i, transaction in enumerate(transactions):
|
for i, transaction in enumerate(transactions):
|
||||||
transaction.id = i + 1
|
transaction.id = i + 1
|
||||||
if transaction.category:
|
if transaction.category:
|
||||||
|
|||||||
@ -64,8 +64,7 @@ def extractor() -> Extractor:
|
|||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def bank() -> Bank:
|
def bank() -> Bank:
|
||||||
bank = Bank("Bank#1", "", AccountType.checking)
|
bank = Bank("Bank#1", "", AccountType.checking, Nordigen("", mock.id, False))
|
||||||
bank.nordigen = Nordigen("", "", mock.id, False)
|
|
||||||
return bank
|
return bank
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user