Skip to content

Split up pycroft.lib.user into separate packages #1376

Split up pycroft.lib.user into separate packages

Split up pycroft.lib.user into separate packages #1376

GitHub Actions / JUnit Test Report failed Sep 28, 2024 in 0s

1283 tests run, 1280 passed, 1 skipped, 2 failed.

Annotations

Check failure on line 1 in TestReturnNonAttributable

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

TestReturnNonAttributable.test_generate_sepa_xml

sepaxml.validation.ValidationError: The output SEPA file contains validation errors. This is likely due to an illegal value in one of your input fields.
Raw output
../venv/lib/python3.11/site-packages/sepaxml/validation.py:12: in try_valid_xml
    my_schema.validate(xmlout.decode())
../venv/lib/python3.11/site-packages/xmlschema/validators/schemas.py:1702: in validate
    raise error
../venv/lib/python3.11/site-packages/xmlschema/validators/simple_types.py:1389: in iter_decode
    self.patterns(obj)
../venv/lib/python3.11/site-packages/xmlschema/validators/facets.py:729: in __call__
    raise XMLSchemaValidationError(self, text, reason)
E   xmlschema.validators.exceptions.XMLSchemaValidationError: failed validating 'ENDVGB1RC4I' with XsdPatternFacets(['[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}']):
E   
E   Reason: value doesn't match any pattern of ['[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}']
E   
E   Schema component:
E   
E     <xs:pattern xmlns:xs="http://www.w3.org/2001/XMLSchema" value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}" />
E   
E   Instance type: <class 'xml.etree.ElementTree.Element'>
E   
E   Instance:
E   
E     <BIC xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03">ENDVGB1RC4I</BIC>
E   
E   Path: /Document/CstmrCdtTrfInitn/PmtInf[1]/DbtrAgt/FinInstnId/BIC

The above exception was the direct cause of the following exception:
tests/lib/test_finance.py:724: in test_generate_sepa_xml
    generate_activities_return_sepaxml(get_activities_to_return(session))
pycroft/lib/finance/retransfer.py:48: in generate_activities_return_sepaxml
    return sepa.export()
../venv/lib/python3.11/site-packages/sepaxml/shared.py:99: in export
    try_valid_xml(out, self.schema)
../venv/lib/python3.11/site-packages/sepaxml/validation.py:15: in try_valid_xml
    raise ValidationError(
E   sepaxml.validation.ValidationError: The output SEPA file contains validation errors. This is likely due to an illegal value in one of your input fields.

Check failure on line 1 in TestMoveOutImpl

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

TestMoveOutImpl.test_move_out_bad_params[params1-comment]

sqlalchemy.exc.IntegrityError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely)
(psycopg2.errors.UniqueViolation) duplicate key value violates unique constraint "unix_tombstone_login_hash_key"
DETAIL:  Key (login_hash)=(\x519ca13018bf6cd59692538ccf3c181681f8aaae233ace8673d6a375a1c20ece8f7b1687e1f7131d16d67b95fce431c8b3c42156ad29c560afee8fa0acb5d957) already exists.
CONTEXT:  SQL statement "insert into unix_tombstone (uid, login_hash) values (null, v_u_login_hash)"
PL/pgSQL function user_ensure_tombstone() line 25 at SQL statement

[SQL: INSERT INTO "user" (wifi_passwd_hash, account_id, unix_account_id, address_id, password_reset_token, login, name, registered_at, passwd_hash, email, email_confirmation_key, birthdate, swdd_person_id, room_id) VALUES (%(wifi_passwd_hash)s, %(account_id)s, %(unix_account_id)s, %(address_id)s, %(password_reset_token)s, %(login)s, %(name)s, %(registered_at)s, %(passwd_hash)s, %(email)s, %(email_confirmation_key)s, %(birthdate)s, %(swdd_person_id)s, %(room_id)s) RETURNING "user".email_forwarded, "user".login_hash, "user".email_confirmed, "user".id]
[parameters: {'wifi_passwd_hash': None, 'account_id': 378, 'unix_account_id': None, 'address_id': 200, 'password_reset_token': None, 'login': 'lbrown', 'name': 'James Charles', 'registered_at': datetime.datetime(2003, 1, 21, 5, 22, 4, 786413), 'passwd_hash': '{SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g=', 'email': '[email protected]', 'email_confirmation_key': None, 'birthdate': None, 'swdd_person_id': None, 'room_id': 176}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)
Raw output
../venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1971: in _exec_single_context
    self.dialect.do_execute(
../venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py:919: in do_execute
    cursor.execute(statement, parameters)
E   psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "unix_tombstone_login_hash_key"
E   DETAIL:  Key (login_hash)=(\x519ca13018bf6cd59692538ccf3c181681f8aaae233ace8673d6a375a1c20ece8f7b1687e1f7131d16d67b95fce431c8b3c42156ad29c560afee8fa0acb5d957) already exists.
E   CONTEXT:  SQL statement "insert into unix_tombstone (uid, login_hash) values (null, v_u_login_hash)"
E   PL/pgSQL function user_ensure_tombstone() line 25 at SQL statement

The above exception was the direct cause of the following exception:
tests/lib/user/test_dormant_user.py:137: in test_move_out_bad_params
    task = create_task_and_execute(TaskType.USER_MOVE_OUT, user, params)
tests/lib/user/task_helpers.py:9: in create_task_and_execute
    task = UserTaskFactory(
../venv/lib/python3.11/site-packages/factory/base.py:40: in __call__
    return cls.create(**kwargs)
../venv/lib/python3.11/site-packages/factory/base.py:528: in create
    return cls._generate(enums.CREATE_STRATEGY, kwargs)
../venv/lib/python3.11/site-packages/factory/alchemy.py:51: in _generate
    return super()._generate(strategy, params)
../venv/lib/python3.11/site-packages/factory/base.py:465: in _generate
    return step.build()
../venv/lib/python3.11/site-packages/factory/builder.py:258: in build
    step.resolve(pre)
../venv/lib/python3.11/site-packages/factory/builder.py:199: in resolve
    self.attributes[field_name] = getattr(self.stub, field_name)
../venv/lib/python3.11/site-packages/factory/builder.py:344: in __getattr__
    value = value.evaluate_pre(
../venv/lib/python3.11/site-packages/factory/declarations.py:48: in evaluate_pre
    return self.evaluate(instance, step, context)
../venv/lib/python3.11/site-packages/factory/declarations.py:395: in evaluate
    return step.recurse(subfactory, extra, force_sequence=force_sequence)
../venv/lib/python3.11/site-packages/factory/builder.py:216: in recurse
    return builder.build(parent_step=self, force_sequence=force_sequence)
../venv/lib/python3.11/site-packages/factory/builder.py:271: in build
    postgen_results[declaration_name] = declaration.declaration.evaluate_post(
../venv/lib/python3.11/site-packages/factory/declarations.py:592: in evaluate_post
    return self.call(instance, step, postgen_context)
../venv/lib/python3.11/site-packages/factory/declarations.py:623: in call
    return self.function(
tests/factories/user.py:74: in room_history_entries
    rhe = RoomHistoryEntry.q.filter_by(user=self, room=self.room).one()
../venv/lib/python3.11/site-packages/sqlalchemy/orm/query.py:2778: in one
    return self._iter().one()  # type: ignore
../venv/lib/python3.11/site-packages/sqlalchemy/orm/query.py:2827: in _iter
    result: Union[ScalarResult[_T], Result[_T]] = self.session.execute(
../venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py:2306: in execute
    return self._execute_internal(
../venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py:2170: in _execute_internal
    ) = compile_state_cls.orm_pre_session_exec(
../venv/lib/python3.11/site-packages/sqlalchemy/orm/context.py:549: in orm_pre_session_exec
    session._autoflush()
../venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py:3005: in _autoflush
    raise e.with_traceback(sys.exc_info()[2])
../venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py:2994: in _autoflush
    self.flush()
../venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py:4296: in flush
    self._flush(objects)
../venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py:4431: in _flush
    with util.safe_reraise():
../venv/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.py:146: in __exit__
    raise exc_value.with_traceback(exc_tb)
../venv/lib/python3.11/site-packages/sqlalchemy/orm/session.py:4392: in _flush
    flush_context.execute()
../venv/lib/python3.11/site-packages/sqlalchemy/orm/unitofwork.py:466: in execute
    rec.execute(self)
../venv/lib/python3.11/site-packages/sqlalchemy/orm/unitofwork.py:642: in execute
    util.preloaded.orm_persistence.save_obj(
../venv/lib/python3.11/site-packages/sqlalchemy/orm/persistence.py:93: in save_obj
    _emit_insert_statements(
../venv/lib/python3.11/site-packages/sqlalchemy/orm/persistence.py:1233: in _emit_insert_statements
    result = connection.execute(
../venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1422: in execute
    return meth(
../venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py:514: in _execute_on_connection
    return connection._execute_clauseelement(
../venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1644: in _execute_clauseelement
    ret = self._execute_context(
../venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1850: in _execute_context
    return self._exec_single_context(
../venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1990: in _exec_single_context
    self._handle_dbapi_exception(
../venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py:2357: in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
../venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1971: in _exec_single_context
    self.dialect.do_execute(
../venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py:919: in do_execute
    cursor.execute(statement, parameters)
E   sqlalchemy.exc.IntegrityError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely)
E   (psycopg2.errors.UniqueViolation) duplicate key value violates unique constraint "unix_tombstone_login_hash_key"
E   DETAIL:  Key (login_hash)=(\x519ca13018bf6cd59692538ccf3c181681f8aaae233ace8673d6a375a1c20ece8f7b1687e1f7131d16d67b95fce431c8b3c42156ad29c560afee8fa0acb5d957) already exists.
E   CONTEXT:  SQL statement "insert into unix_tombstone (uid, login_hash) values (null, v_u_login_hash)"
E   PL/pgSQL function user_ensure_tombstone() line 25 at SQL statement
E   
E   [SQL: INSERT INTO "user" (wifi_passwd_hash, account_id, unix_account_id, address_id, password_reset_token, login, name, registered_at, passwd_hash, email, email_confirmation_key, birthdate, swdd_person_id, room_id) VALUES (%(wifi_passwd_hash)s, %(account_id)s, %(unix_account_id)s, %(address_id)s, %(password_reset_token)s, %(login)s, %(name)s, %(registered_at)s, %(passwd_hash)s, %(email)s, %(email_confirmation_key)s, %(birthdate)s, %(swdd_person_id)s, %(room_id)s) RETURNING "user".email_forwarded, "user".login_hash, "user".email_confirmed, "user".id]
E   [parameters: {'wifi_passwd_hash': None, 'account_id': 378, 'unix_account_id': None, 'address_id': 200, 'password_reset_token': None, 'login': 'lbrown', 'name': 'James Charles', 'registered_at': datetime.datetime(2003, 1, 21, 5, 22, 4, 786413), 'passwd_hash': '{SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g=', 'email': '[email protected]', 'email_confirmation_key': None, 'birthdate': None, 'swdd_person_id': None, 'room_id': 176}]
E   (Background on this error at: https://sqlalche.me/e/20/gkpj)