From 58dc585e7e4398a7af4c167c6c7f8c37f0ee2f24 Mon Sep 17 00:00:00 2001 From: Mathias Scheider Date: Sun, 13 Sep 2026 07:31:20 +0200 Subject: [PATCH] b4w faker: occasionally empty other_iban --- tests/factories.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/tests/factories.py b/tests/factories.py index b4f9c73..a46e685 100644 --- a/tests/factories.py +++ b/tests/factories.py @@ -1,4 +1,6 @@ +from collections.abc import Callable from decimal import Decimal +from typing import Any from faker import Faker from polyfactory.factories.pydantic_factory import ModelFactory @@ -10,6 +12,12 @@ from src.models.comdirect import ComdirectCreditCard, ComdirectDepot, ComdirectG DEFAULT_CATEGORY = "root_category:parent_category:leaf_category" +def _faker_or_none(faker: Faker, non_default: Any, default: Any = None, p_value=0.5): + if faker.pyfloat(min_value=0.0, max_value=1.0) < p_value: + return default + return non_default + + def _amount() -> Decimal: return B4wExportFactory.__faker__.pydecimal( left_digits=6, @@ -34,11 +42,9 @@ def _iban() -> str: return B4wExportFactory.__faker__.iban() -def _other_iban() -> str: +def _iban_or_none() -> str: faker = B4wExportFactory.__faker__ - if faker.pyint(min_value=0, max_value=100) < 50: - return "" - return faker.iban() + return _faker_or_none(faker, faker.iban(), default="") class B4wExportFactory(ModelFactory[B4wExport]): @@ -50,7 +56,7 @@ class B4wExportFactory(ModelFactory[B4wExport]): Notes = Use(_sentence) RmtdNm = Use(_names) OwnrAcctIBAN = Use(_iban) - RmtdAcctIBAN = Use(_other_iban) + RmtdAcctIBAN = Use(_iban_or_none) class ComdirectGiroFactory(ModelFactory[ComdirectGiro]):