============================= test session starts ==============================
platform linux -- Python 3.10.1, pytest-6.2.5, py-1.11.0, pluggy-0.13.1
rootdir: /build/python-sepaxml/src/python-sepaxml-2.4.1
collected 19 items

tests/debit/test_00800102.py E                                           [  5%]
tests/debit/test_00800202.py E                                           [ 10%]
tests/debit/test_00800302.py EFF                                         [ 26%]
tests/debit/test_00800302_b2b.py E                                       [ 31%]
tests/debit/test_config.py F.                                            [ 42%]
tests/debit/test_endtoendid.py E                                         [ 47%]
tests/debit/test_escaped.py E                                            [ 52%]
tests/debit/test_no_bic.py E                                             [ 57%]
tests/debit/test_no_bic_00800302.py E                                    [ 63%]
tests/debit/test_non_batch.py E                                          [ 68%]
tests/transfer/test_00100103.py E                                        [ 73%]
tests/transfer/test_config.py F.                                         [ 84%]
tests/transfer/test_endtoendid.py E                                      [ 89%]
tests/transfer/test_no_bic.py E                                          [ 94%]
tests/transfer/test_non_batch.py E                                       [100%]

==================================== ERRORS ====================================
______________________ ERROR at setup of test_two_debits _______________________

    @pytest.fixture
    def sdd():
>       return SepaDD({
            "name": "TestCreditor",
            "IBAN": "NL50BANK1234567890",
            "BIC": "BANKNL2A",
            "batch": True,
            "creditor_id": "DE26ZZZ00000000000",
            "currency": "EUR"
        }, schema="pain.008.001.02")

tests/debit/test_00800102.py:11: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/debit.py:17: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.debit.SepaDD object at 0x4002f8f520>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': True, 'creditor_id': 'DE26ZZZ00000000000', ...}
schema = 'pain.008.001.02', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
______________________ ERROR at setup of test_two_debits _______________________

    @pytest.fixture
    def sdd():
>       return SepaDD({
            "name": "TestCreditor",
            "IBAN": "NL50BANK1234567890",
            "BIC": "BANKNL2A",
            "batch": True,
            "creditor_id": "DE26ZZZ00000000000",
            "currency": "EUR"
        }, schema="pain.008.002.02")

tests/debit/test_00800202.py:11: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/debit.py:17: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.debit.SepaDD object at 0x4002f8cdc0>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': True, 'creditor_id': 'DE26ZZZ00000000000', ...}
schema = 'pain.008.002.02', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
______________________ ERROR at setup of test_two_debits _______________________

    @pytest.fixture
    def sdd():
>       return SepaDD({
            "name": "TestCreditor",
            "IBAN": "NL50BANK1234567890",
            "BIC": "BANKNL2A",
            "batch": True,
            "creditor_id": "DE26ZZZ00000000000",
            "currency": "EUR"
        }, schema="pain.008.003.02")

tests/debit/test_00800302.py:12: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/debit.py:17: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.debit.SepaDD object at 0x4002f8fdc0>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': True, 'creditor_id': 'DE26ZZZ00000000000', ...}
schema = 'pain.008.003.02', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
______________________ ERROR at setup of test_two_debits _______________________

    @pytest.fixture
    def sdd():
>       return SepaDD({
            "name": "TestCreditor",
            "IBAN": "NL50BANK1234567890",
            "BIC": "BANKNL2A",
            "batch": True,
            "creditor_id": "DE26ZZZ00000000000",
            "currency": "EUR",
            "instrument": "B2B"
        }, schema="pain.008.003.02")

tests/debit/test_00800302_b2b.py:11: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/debit.py:17: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.debit.SepaDD object at 0x4002f8f610>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': True, 'creditor_id': 'DE26ZZZ00000000000', ...}
schema = 'pain.008.003.02', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
______________________ ERROR at setup of test_two_debits _______________________

    @pytest.fixture
    def sdd():
>       return SepaDD({
            "name": "Miller & Son Ltd",
            "IBAN": "NL50BANK1234567890",
            "BIC": "BANKNL2A",
            "batch": True,
            "creditor_id": "DE26ZZZ00000000000",
            "currency": "EUR"
        }, schema="pain.008.003.02")

tests/debit/test_endtoendid.py:13: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/debit.py:17: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.debit.SepaDD object at 0x400567b940>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': True, 'creditor_id': 'DE26ZZZ00000000000', ...}
schema = 'pain.008.003.02', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
______________________ ERROR at setup of test_two_debits _______________________

    @pytest.fixture
    def sdd():
>       return SepaDD({
            "name": "Müller & Sohn Ltd",
            "IBAN": "NL50BANK1234567890",
            "BIC": "BANKNL2A",
            "batch": True,
            "creditor_id": "DE26ZZZ00000000000",
            "currency": "EUR"
        }, schema="pain.008.003.02")

tests/debit/test_escaped.py:11: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/debit.py:17: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.debit.SepaDD object at 0x4002f93a60>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': True, 'creditor_id': 'DE26ZZZ00000000000', ...}
schema = 'pain.008.003.02', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
______________________ ERROR at setup of test_two_debits _______________________

    @pytest.fixture
    def sdd():
>       return SepaDD({
            "name": "TestCreditor",
            "IBAN": "NL50BANK1234567890",
            "BIC": "BANKNL2A",
            "batch": True,
            "creditor_id": "DE26ZZZ00000000000",
            "currency": "EUR"
        }, schema="pain.008.001.02")

tests/debit/test_no_bic.py:12: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/debit.py:17: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.debit.SepaDD object at 0x4005679bd0>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': True, 'creditor_id': 'DE26ZZZ00000000000', ...}
schema = 'pain.008.001.02', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
______________________ ERROR at setup of test_two_debits _______________________

    @pytest.fixture
    def sdd():
>       return SepaDD({
            "name": "TestCreditor",
            "IBAN": "NL50BANK1234567890",
            # "BIC": "BANKNL2A",
            "batch": True,
            "creditor_id": "DE26ZZZ00000000000",
            "currency": "EUR"
        }, schema="pain.008.003.02")

tests/debit/test_no_bic_00800302.py:12: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/debit.py:17: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.debit.SepaDD object at 0x4005632e60>
config = {'IBAN': 'NL50BANK1234567890', 'batch': True, 'creditor_id': 'DE26ZZZ00000000000', 'currency': 'EUR', ...}
schema = 'pain.008.003.02', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
______________________ ERROR at setup of test_two_debits _______________________

    @pytest.fixture
    def sdd():
>       return SepaDD({
            "name": "TestCreditor",
            "IBAN": "NL50BANK1234567890",
            "BIC": "BANKNL2A",
            "batch": False,
            "creditor_id": "DE26ZZZ00000000000",
            "currency": "EUR"
        }, schema="pain.008.003.02")

tests/debit/test_non_batch.py:11: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/debit.py:17: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.debit.SepaDD object at 0x4002f91ed0>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': False, 'creditor_id': 'DE26ZZZ00000000000', ...}
schema = 'pain.008.003.02', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
______________________ ERROR at setup of test_two_debits _______________________

    @pytest.fixture
    def strf():
>       return SepaTransfer({
            "name": "TestCreditor",
            "IBAN": "NL50BANK1234567890",
            "BIC": "BANKNL2A",
            "batch": True,
            "currency": "EUR"
        }, schema="pain.001.001.03")

tests/transfer/test_00100103.py:11: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/transfer.py:15: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.transfer.SepaTransfer object at 0x4005632ad0>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': True, 'currency': 'EUR', ...}
schema = 'pain.001.001.03', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
______________________ ERROR at setup of test_two_debits _______________________

    @pytest.fixture
    def strf():
>       return SepaTransfer({
            "name": "Miller & Son Ltd",
            "IBAN": "NL50BANK1234567890",
            "BIC": "BANKNL2A",
            "batch": True,
            "currency": "EUR"
        })

tests/transfer/test_endtoendid.py:13: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/transfer.py:15: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.transfer.SepaTransfer object at 0x400561c5e0>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': True, 'currency': 'EUR', ...}
schema = 'pain.001.001.03', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
_____________________ ERROR at setup of test_two_transfers _____________________

    @pytest.fixture
    def strf():
>       return SepaTransfer({
            "name": "TestCreditor",
            "IBAN": "NL50BANK1234567890",
            "batch": True,
            "currency": "EUR"
        }, schema="pain.001.001.03")

tests/transfer/test_no_bic.py:11: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/transfer.py:15: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.transfer.SepaTransfer object at 0x4002f8cb80>
config = {'IBAN': 'NL50BANK1234567890', 'batch': True, 'currency': 'EUR', 'name': 'TestCreditor'}
schema = 'pain.001.001.03', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
______________________ ERROR at setup of test_two_debits _______________________

    @pytest.fixture
    def strf():
>       return SepaTransfer({
            "name": "TestCreditor",
            "IBAN": "NL50BANK1234567890",
            "BIC": "BANKNL2A",
            "batch": False,
            "currency": "EUR"
        })

tests/transfer/test_non_batch.py:11: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/transfer.py:15: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.transfer.SepaTransfer object at 0x4005654730>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': False, 'currency': 'EUR', ...}
schema = 'pain.001.001.03', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
=================================== FAILURES ===================================
______________________________ test_name_too_long ______________________________

    def test_name_too_long():
>       sdd = SepaDD({
            "name": "TestCreditor",
            "BIC": "BANKNL2A",
            "IBAN": "NL50BANK1234567890",
            "batch": True,
            "creditor_id": "000000",
            "currency": "EUR"
        }, schema="pain.008.003.02")

tests/debit/test_00800302.py:220: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/debit.py:17: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.debit.SepaDD object at 0x400562e830>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': True, 'creditor_id': '000000', ...}
schema = 'pain.008.003.02', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
_____________________________ test_invalid_mandate _____________________________

    def test_invalid_mandate():
>       sdd = SepaDD({
            "name": "TestCreditor",
            "BIC": "BANKNL2A",
            "IBAN": "NL50BANK1234567890",
            "batch": True,
            "creditor_id": "000000",
            "currency": "EUR"
        }, schema="pain.008.003.02")

tests/debit/test_00800302.py:246: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/debit.py:17: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.debit.SepaDD object at 0x4002ec1ea0>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': True, 'creditor_id': '000000', ...}
schema = 'pain.008.003.02', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
______________________________ test_valid_config _______________________________

    def test_valid_config():
>       return SepaDD({
            "name": "TestCreditor",
            "IBAN": "NL50BANK1234567890",
            "BIC": "BANKNL2A",
            "batch": True,
            "creditor_id": "000000",
            "currency": "EUR"
        })

tests/debit/test_config.py:7: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/debit.py:17: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.debit.SepaDD object at 0x4002f938b0>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': True, 'creditor_id': '000000', ...}
schema = 'pain.008.001.02', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
______________________________ test_valid_config _______________________________

    def test_valid_config():
>       return SepaTransfer({
            "name": "TestCreditor",
            "IBAN": "NL50BANK1234567890",
            "BIC": "BANKNL2A",
            "batch": True,
            "currency": "EUR"
        })

tests/transfer/test_config.py:7: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sepaxml/transfer.py:15: in __init__
    super().__init__(config, schema, clean)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <sepaxml.transfer.SepaTransfer object at 0x4002f92500>
config = {'BIC': 'BANKNL2A', 'IBAN': 'NL50BANK1234567890', 'batch': True, 'currency': 'EUR', ...}
schema = 'pain.001.001.03', clean = True

    def __init__(self, config, schema, clean=True):
        """
        Constructor. Checks the config, prepares the document and
        builds the header.
        @param param: The config dict.
        @raise exception: When the config file is invalid.
        """
        self._config = None  # Will contain the config file.
        self._xml = None  # Will contain the final XML file.
        self._batches = OrderedDict()  # Will contain the SEPA batches.
        self._batch_totals = OrderedDict()  # Will contain the total amount to debit per batch for checksum total.
        self.schema = schema
        self.msg_id = make_msg_id()
        self.clean = clean
    
        config_result = self.check_config(config)
        if config_result:
            self._config = config
            if self.clean:
>               from text_unidecode import unidecode
E               ModuleNotFoundError: No module named 'text_unidecode'

sepaxml/shared.py:29: ModuleNotFoundError
=========================== short test summary info ============================
FAILED tests/debit/test_00800302.py::test_name_too_long - ModuleNotFoundError...
FAILED tests/debit/test_00800302.py::test_invalid_mandate - ModuleNotFoundErr...
FAILED tests/debit/test_config.py::test_valid_config - ModuleNotFoundError: N...
FAILED tests/transfer/test_config.py::test_valid_config - ModuleNotFoundError...
ERROR tests/debit/test_00800102.py::test_two_debits - ModuleNotFoundError: No...
ERROR tests/debit/test_00800202.py::test_two_debits - ModuleNotFoundError: No...
ERROR tests/debit/test_00800302.py::test_two_debits - ModuleNotFoundError: No...
ERROR tests/debit/test_00800302_b2b.py::test_two_debits - ModuleNotFoundError...
ERROR tests/debit/test_endtoendid.py::test_two_debits - ModuleNotFoundError: ...
ERROR tests/debit/test_escaped.py::test_two_debits - ModuleNotFoundError: No ...
ERROR tests/debit/test_no_bic.py::test_two_debits - ModuleNotFoundError: No m...
ERROR tests/debit/test_no_bic_00800302.py::test_two_debits - ModuleNotFoundEr...
ERROR tests/debit/test_non_batch.py::test_two_debits - ModuleNotFoundError: N...
ERROR tests/transfer/test_00100103.py::test_two_debits - ModuleNotFoundError:...
ERROR tests/transfer/test_endtoendid.py::test_two_debits - ModuleNotFoundErro...
ERROR tests/transfer/test_no_bic.py::test_two_transfers - ModuleNotFoundError...
ERROR tests/transfer/test_non_batch.py::test_two_debits - ModuleNotFoundError...
==================== 4 failed, 2 passed, 13 errors in 2.91s ====================
[1m[31m==> ERROR:[m[1m A failure occurred in check().[m
[1m    Aborting...[m
