running extract_messages extracting messages from invenio_users_resources/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/config.py (encoding="utf-8") extracting messages from invenio_users_resources/entity_resolvers.py (encoding="utf-8") extracting messages from invenio_users_resources/ext.py (encoding="utf-8") extracting messages from invenio_users_resources/forms.py (encoding="utf-8") extracting messages from invenio_users_resources/models.py (encoding="utf-8") extracting messages from invenio_users_resources/permissions.py (encoding="utf-8") extracting messages from invenio_users_resources/proxies.py (encoding="utf-8") extracting messages from invenio_users_resources/views.py (encoding="utf-8") extracting messages from invenio_users_resources/notifications/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/notifications/filters.py (encoding="utf-8") extracting messages from invenio_users_resources/notifications/generators.py (encoding="utf-8") extracting messages from invenio_users_resources/records/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/records/api.py (encoding="utf-8") extracting messages from invenio_users_resources/records/hooks.py (encoding="utf-8") extracting messages from invenio_users_resources/records/models.py (encoding="utf-8") extracting messages from invenio_users_resources/records/dumpers/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/records/dumpers/email.py (encoding="utf-8") extracting messages from invenio_users_resources/records/mappings/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/records/mappings/os-v1/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/records/mappings/os-v2/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/records/mappings/v7/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/records/systemfields/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/resources/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/resources/domains/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/resources/domains/config.py (encoding="utf-8") extracting messages from invenio_users_resources/resources/domains/resource.py (encoding="utf-8") extracting messages from invenio_users_resources/resources/groups/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/resources/groups/config.py (encoding="utf-8") extracting messages from invenio_users_resources/resources/groups/errors.py (encoding="utf-8") extracting messages from invenio_users_resources/resources/groups/resource.py (encoding="utf-8") extracting messages from invenio_users_resources/resources/users/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/resources/users/config.py (encoding="utf-8") extracting messages from invenio_users_resources/resources/users/errors.py (encoding="utf-8") extracting messages from invenio_users_resources/resources/users/resource.py (encoding="utf-8") extracting messages from invenio_users_resources/services/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/services/common.py (encoding="utf-8") extracting messages from invenio_users_resources/services/generators.py (encoding="utf-8") extracting messages from invenio_users_resources/services/params.py (encoding="utf-8") extracting messages from invenio_users_resources/services/permissions.py (encoding="utf-8") extracting messages from invenio_users_resources/services/results.py (encoding="utf-8") extracting messages from invenio_users_resources/services/schemas.py (encoding="utf-8") extracting messages from invenio_users_resources/services/domains/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/services/domains/components.py (encoding="utf-8") extracting messages from invenio_users_resources/services/domains/config.py (encoding="utf-8") extracting messages from invenio_users_resources/services/domains/facets.py (encoding="utf-8") extracting messages from invenio_users_resources/services/domains/service.py (encoding="utf-8") extracting messages from invenio_users_resources/services/domains/tasks.py (encoding="utf-8") extracting messages from invenio_users_resources/services/groups/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/services/groups/config.py (encoding="utf-8") extracting messages from invenio_users_resources/services/groups/facets.py (encoding="utf-8") extracting messages from invenio_users_resources/services/groups/results.py (encoding="utf-8") extracting messages from invenio_users_resources/services/groups/service.py (encoding="utf-8") extracting messages from invenio_users_resources/services/groups/tasks.py (encoding="utf-8") extracting messages from invenio_users_resources/services/users/__init__.py (encoding="utf-8") extracting messages from invenio_users_resources/services/users/config.py (encoding="utf-8") extracting messages from invenio_users_resources/services/users/facets.py (encoding="utf-8") extracting messages from invenio_users_resources/services/users/lock.py (encoding="utf-8") extracting messages from invenio_users_resources/services/users/results.py (encoding="utf-8") extracting messages from invenio_users_resources/services/users/search_params.py (encoding="utf-8") extracting messages from invenio_users_resources/services/users/service.py (encoding="utf-8") extracting messages from invenio_users_resources/services/users/tasks.py (encoding="utf-8") extracting messages from invenio_users_resources/templates/security/email/new_user_via_admin.html (encoding="utf-8") extracting messages from invenio_users_resources/templates/semantic-ui/invenio_users_resources/settings/notifications.html (encoding="utf-8") writing PO template file to /dev/null opensearch Pulling postgresql Pulling rabbitmq Pulling redis Pulling redis Pulled rabbitmq Pulled postgresql Pulled opensearch Pulled Network docker_services_cli_default Creating Network docker_services_cli_default Created Container docker_services_cli-postgresql-1 Creating Container docker_services_cli-rabbitmq-1 Creating Container docker_services_cli-redis-1 Creating Container docker_services_cli-opensearch-1 Creating Container docker_services_cli-redis-1 Created Container docker_services_cli-opensearch-1 Created Container docker_services_cli-postgresql-1 Created Container docker_services_cli-rabbitmq-1 Created Container docker_services_cli-postgresql-1 Starting Container docker_services_cli-rabbitmq-1 Starting Container docker_services_cli-opensearch-1 Starting Container docker_services_cli-redis-1 Starting Container docker_services_cli-postgresql-1 Started Container docker_services_cli-redis-1 Started Container docker_services_cli-opensearch-1 Started Container docker_services_cli-rabbitmq-1 Started ============================= test session starts ============================== platform linux -- Python 3.14.2, pytest-8.4.2, pluggy-1.6.0 rootdir: /home/runner/work/invenio-testrig-client/invenio-testrig-client/workdir/tests/invenio-users-resources/patched configfile: setup.cfg testpaths: docs, tests, invenio_users_resources plugins: invenio-4.0.0, github-actions-annotate-failures-0.4.0, isort-4.0.0, flask-1.3.0, pydocstyle-2.4.0, cov-7.0.0, black-0.6.0, pycodestyle-2.5.0 collected 349 items docs/conf.py ... [ 0%] tests/administration/__init__.py ... [ 1%] tests/administration/domains.py ... [ 2%] tests/administration/records.py ... [ 3%] tests/administration/users.py ... [ 4%] tests/conftest.py ... [ 5%] tests/resources/test_resources_domains.py ............ [ 8%] tests/resources/test_resources_groups.py [ 10%] tests/resources/test_resources_users.py [ 16%] tests/services/test_generators.py [ 17%] tests/services/test_schemas.py .... [ 18%] tests/services/test_service_groups.py [ 25%] tests/services/test_service_tasks_domains.py [ 26%] tests/services/users/test_service_users.py [ 34%] [ 40%] tests/services/users/test_user_moderation.py [ 42%] tests/test_invenio_users_resources.py .... [ 44%] tests/test_notifications.py [ 45%] tests/test_user_roles_admin.py [ 46%] invenio_users_resources/__init__.py ... [ 47%] invenio_users_resources/config.py ... [ 48%] invenio_users_resources/entity_resolvers.py ... [ 49%] invenio_users_resources/ext.py ... [ 50%] invenio_users_resources/forms.py ... [ 51%] invenio_users_resources/models.py ... [ 51%] invenio_users_resources/notifications/__init__.py ... [ 52%] invenio_users_resources/notifications/filters.py ... [ 53%] invenio_users_resources/notifications/generators.py ... [ 54%] invenio_users_resources/permissions.py ... [ 55%] invenio_users_resources/proxies.py ... [ 56%] invenio_users_resources/records/__init__.py ... [ 57%] invenio_users_resources/records/api.py ... [ 57%] invenio_users_resources/records/dumpers/__init__.py ... [ 58%] invenio_users_resources/records/dumpers/email.py ... [ 59%] invenio_users_resources/records/hooks.py ... [ 60%] invenio_users_resources/records/mappings/__init__.py ... [ 61%] invenio_users_resources/records/mappings/os-v1/__init__.py ... [ 62%] invenio_users_resources/records/mappings/os-v2/__init__.py ... [ 63%] invenio_users_resources/records/mappings/v7/__init__.py ... [ 63%] invenio_users_resources/records/models.py ... [ 64%] invenio_users_resources/records/systemfields/__init__.py ... [ 65%] invenio_users_resources/resources/__init__.py ... [ 66%] invenio_users_resources/resources/domains/__init__.py ... [ 67%] invenio_users_resources/resources/domains/config.py ... [ 68%] invenio_users_resources/resources/domains/resource.py ... [ 69%] invenio_users_resources/resources/groups/__init__.py ... [ 69%] invenio_users_resources/resources/groups/config.py ... [ 70%] invenio_users_resources/resources/groups/errors.py ... [ 71%] invenio_users_resources/resources/groups/resource.py ... [ 72%] invenio_users_resources/resources/users/__init__.py ... [ 73%] invenio_users_resources/resources/users/config.py ... [ 74%] invenio_users_resources/resources/users/errors.py ... [ 75%] invenio_users_resources/resources/users/resource.py ... [ 75%] invenio_users_resources/services/__init__.py ... [ 76%] invenio_users_resources/services/common.py ... [ 77%] invenio_users_resources/services/domains/__init__.py ... [ 78%] invenio_users_resources/services/domains/components.py ... [ 79%] invenio_users_resources/services/domains/config.py ... [ 80%] invenio_users_resources/services/domains/facets.py ... [ 81%] invenio_users_resources/services/domains/service.py ... [ 81%] invenio_users_resources/services/domains/tasks.py ... [ 82%] invenio_users_resources/services/generators.py ... [ 83%] invenio_users_resources/services/groups/__init__.py ... [ 84%] invenio_users_resources/services/groups/config.py ... [ 85%] invenio_users_resources/services/groups/facets.py ... [ 86%] invenio_users_resources/services/groups/results.py ... [ 87%] invenio_users_resources/services/groups/service.py ... [ 87%] invenio_users_resources/services/groups/tasks.py ... [ 88%] invenio_users_resources/services/params.py ... [ 89%] invenio_users_resources/services/permissions.py ... [ 90%] invenio_users_resources/services/results.py ... [ 91%] invenio_users_resources/services/schemas.py ... [ 92%] invenio_users_resources/services/users/__init__.py ... [ 93%] invenio_users_resources/services/users/config.py ... [ 93%] invenio_users_resources/services/users/facets.py ... [ 94%] invenio_users_resources/services/users/lock.py ... [ 95%] invenio_users_resources/services/users/results.py ... [ 96%] invenio_users_resources/services/users/search_params.py ... [ 97%] invenio_users_resources/services/users/service.py ... [ 98%] invenio_users_resources/services/users/tasks.py ... [ 99%] invenio_users_resources/views.py ... [100%] =============================== warnings summary =============================== venv/lib/python3.14/site-packages/edtf/parser/grammar.py:9 pyparsing.ParserElement.enablePackrat() venv/lib/python3.14/site-packages/edtf/parser/grammar.py:52 oneThru12 = oneOf(["%.2d" % i for i in range(1, 13)]) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:53 oneThru13 = oneOf(["%.2d" % i for i in range(1, 14)]) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:54 oneThru23 = oneOf(["%.2d" % i for i in range(1, 24)]) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:55 zeroThru23 = oneOf(["%.2d" % i for i in range(0, 24)]) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:56 oneThru29 = oneOf(["%.2d" % i for i in range(1, 30)]) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:57 oneThru30 = oneOf(["%.2d" % i for i in range(1, 31)]) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:58 oneThru31 = oneOf(["%.2d" % i for i in range(1, 32)]) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:59 oneThru59 = oneOf(["%.2d" % i for i in range(1, 60)]) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:60 zeroThru59 = oneOf(["%.2d" % i for i in range(0, 60)]) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:63 positiveDigit = Word(nums, exact=1, excludeChars="0") venv/lib/python3.14/site-packages/edtf/parser/grammar.py:73 (oneOf("01 03 05 07 08 10 12")("month") + "-" + oneThru31("day")) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:74 ^ (oneOf("04 06 09 11")("month") + "-" + oneThru30("day")) p.addParseAction(cls.parse_action) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:119 UASymbol = Combine(oneOf("? ~ %")) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:122 seasonNumber = oneOf("21 22 23 24") venv/lib/python3.14/site-packages/edtf/parser/grammar.py:155 l1Start.addParseAction(f) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:157 l1End.addParseAction(f) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:199 monthWithX = Combine(oneOf("0X 1X") ^ ("X" + digitOrX))("month") venv/lib/python3.14/site-packages/edtf/parser/grammar.py:303 venv/lib/python3.14/site-packages/edtf/parser/grammar.py:303 earlier = L("..").addParseAction(f)("lower") + date("upper").addParseAction(f) venv/lib/python3.14/site-packages/edtf/parser/grammar.py:304 venv/lib/python3.14/site-packages/edtf/parser/grammar.py:304 later = date("lower").addParseAction(f) + L("..").addParseAction(f)("upper") venv/lib/python3.14/site-packages/edtf/parser/grammar.py:325 seasonL2Number = oneOf("21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41") tests/resources/test_resources_groups.py::test_group_create_api tests/resources/test_resources_users.py::test_read_self_serialization tests/services/test_generators.py::test_group_not_managed_generator tests/services/test_service_groups.py::test_groups_sort tests/services/test_service_tasks_domains.py::test_import_domain_blocklist tests/services/users/test_service_users.py::test_search_restricted tests/services/users/test_user_moderation.py::test_moderation_callbacks_success tests/test_notifications.py::test_user_recipient_generator tests/test_user_roles_admin.py::test_read_includes_roles warnings.warn( tests/resources/test_resources_groups.py::test_group_create_api tests/resources/test_resources_users.py::test_read_self_serialization tests/services/test_generators.py::test_group_not_managed_generator tests/services/test_service_groups.py::test_groups_sort tests/services/test_service_tasks_domains.py::test_import_domain_blocklist tests/services/users/test_service_users.py::test_search_restricted tests/services/users/test_user_moderation.py::test_moderation_callbacks_success tests/test_notifications.py::test_user_recipient_generator tests/test_user_roles_admin.py::test_read_includes_roles self.init_app(app) ================================ tests coverage ================================ _______________ coverage: platform linux, python 3.14.2-final-0 ________________ Name Stmts Miss Cover Missing invenio_users_resources/__init__.py 2 0 100% invenio_users_resources/config.py 39 0 100% invenio_users_resources/entity_resolvers.py 82 45 45% 36-43, 47-53, 57, 61-62, 66-90, 102-103, 107, 111, 115, 119, 128-132, 136-141, 145-146, 156, 169-170, 174, 178, 182, 186 invenio_users_resources/ext.py 64 5 92% 116-119, 127 invenio_users_resources/forms.py 14 5 64% 30-32, 38-39 invenio_users_resources/models.py 10 4 60% 21, 25, 29, 39 invenio_users_resources/notifications/__init__.py 0 0 100% invenio_users_resources/notifications/filters.py 11 1 91% 23 invenio_users_resources/notifications/generators.py 37 15 59% 25, 47, 51-53, 61-62, 67-68, 76-77, 80-85 invenio_users_resources/permissions.py 3 0 100% invenio_users_resources/proxies.py 12 0 100% invenio_users_resources/records/__init__.py 2 0 100% invenio_users_resources/records/api.py 309 26 92% 91, 95, 104, 110, 149, 161, 163, 251-255, 276-277, 286, 293, 300, 307, 319, 380, 400-408, 431, 448 invenio_users_resources/records/dumpers/__init__.py 2 0 100% invenio_users_resources/records/dumpers/email.py 15 0 100% invenio_users_resources/records/hooks.py 45 16 64% 36-41, 44-49, 73, 78, 82, 88 invenio_users_resources/records/mappings/__init__.py 0 0 100% invenio_users_resources/records/mappings/os-v1/__init__.py 0 0 100% invenio_users_resources/records/mappings/os-v2/__init__.py 0 0 100% invenio_users_resources/records/mappings/v7/__init__.py 0 0 100% invenio_users_resources/records/models.py 98 9 91% 55, 86, 91, 153-155, 180-182 invenio_users_resources/records/systemfields/__init__.py 72 0 100% invenio_users_resources/resources/__init__.py 4 0 100% invenio_users_resources/resources/domains/__init__.py 3 0 100% invenio_users_resources/resources/domains/config.py 11 0 100% invenio_users_resources/resources/domains/resource.py 6 0 100% invenio_users_resources/resources/groups/__init__.py 3 0 100% invenio_users_resources/resources/groups/config.py 24 0 100% invenio_users_resources/resources/groups/errors.py 8 0 100% invenio_users_resources/resources/groups/resource.py 39 1 97% 85 invenio_users_resources/resources/users/__init__.py 3 0 100% invenio_users_resources/resources/users/config.py 19 0 100% invenio_users_resources/resources/users/errors.py 4 0 100% invenio_users_resources/resources/users/resource.py 74 8 89% 50, 79, 86-91, 149-153, 167-171 invenio_users_resources/services/__init__.py 4 0 100% invenio_users_resources/services/common.py 13 0 100% invenio_users_resources/services/domains/__init__.py 3 0 100% invenio_users_resources/services/domains/components.py 27 6 78% 50-59 invenio_users_resources/services/domains/config.py 27 0 100% invenio_users_resources/services/domains/facets.py 7 0 100% invenio_users_resources/services/domains/service.py 8 0 100% invenio_users_resources/services/domains/tasks.py 61 15 75% 25-30, 36-41, 71-73 invenio_users_resources/services/generators.py 150 14 91% 50, 67-72, 99, 108, 174, 195, 213, 238, 289, 314 invenio_users_resources/services/groups/__init__.py 3 0 100% invenio_users_resources/services/groups/config.py 32 0 100% invenio_users_resources/services/groups/facets.py 3 0 100% invenio_users_resources/services/groups/results.py 57 4 93% 39, 59, 77, 83 invenio_users_resources/services/groups/service.py 74 12 84% 45-46, 51-52, 79-80, 104-105, 161, 167-171 invenio_users_resources/services/groups/tasks.py 21 8 62% 27-28, 34-39 invenio_users_resources/services/params.py 9 0 100% invenio_users_resources/services/permissions.py 35 0 100% invenio_users_resources/services/results.py 29 0 100% invenio_users_resources/services/schemas.py 148 10 93% 217-220, 228, 231, 234, 277, 289, 299 invenio_users_resources/services/users/__init__.py 3 0 100% invenio_users_resources/services/users/config.py 44 4 91% 59-62 invenio_users_resources/services/users/facets.py 7 0 100% invenio_users_resources/services/users/lock.py 11 0 100% invenio_users_resources/services/users/results.py 83 4 95% 75, 79, 116, 122 invenio_users_resources/services/users/search_params.py 23 8 65% 37-55 invenio_users_resources/services/users/service.py 134 13 90% 143, 149-150, 159, 165-167, 185, 208, 232, 255, 267, 281 invenio_users_resources/services/users/tasks.py 49 8 84% 56-57, 63-68 invenio_users_resources/templates/security/email/new_user_via_admin.txt 3 1 67% 3 invenio_users_resources/views.py 11 0 100% TOTAL 2094 242 88% ====================== 349 passed, 60 warnings in 58.03s ======================= Container docker_services_cli-rabbitmq-1 Stopping Container docker_services_cli-postgresql-1 Stopping Container docker_services_cli-redis-1 Stopping Container docker_services_cli-opensearch-1 Stopping Container docker_services_cli-postgresql-1 Stopped Container docker_services_cli-postgresql-1 Removing Container docker_services_cli-postgresql-1 Removed Container docker_services_cli-redis-1 Stopped Container docker_services_cli-redis-1 Removing Container docker_services_cli-redis-1 Removed Container docker_services_cli-opensearch-1 Stopped Container docker_services_cli-opensearch-1 Removing Container docker_services_cli-opensearch-1 Removed Container docker_services_cli-rabbitmq-1 Stopped Container docker_services_cli-rabbitmq-1 Removing Container docker_services_cli-rabbitmq-1 Removed Network docker_services_cli_default Removing Network docker_services_cli_default Removed