=== Part 0 === 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-rabbitmq-1 Creating Container docker_services_cli-redis-1 Creating Container docker_services_cli-postgresql-1 Creating Container docker_services_cli-opensearch-1 Creating Container docker_services_cli-redis-1 Created Container docker_services_cli-postgresql-1 Created Container docker_services_cli-opensearch-1 Created Container docker_services_cli-rabbitmq-1 Created Container docker_services_cli-opensearch-1 Starting Container docker_services_cli-rabbitmq-1 Starting Container docker_services_cli-redis-1 Starting Container docker_services_cli-postgresql-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/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched configfile: setup.cfg plugins: flask-1.3.0, black-0.6.0, github-actions-annotate-failures-0.4.1, mock-3.15.1, pycodestyle-2.5.0, cov-7.1.0, invenio-4.0.1, pydocstyle-2.4.0, isort-4.0.0, Faker-40.23.0 collected 363 items tests/contrib/codemeta/test_codemeta_custom_fields.py [ 2%] tests/fixtures/load_error/test_vocabularies_load_error.py [ 3%] tests/fixtures/test_cli.py [ 4%] tests/fixtures/test_fixtures.py [ 7%] tests/oaiserver/test_oaipmh.py [ 9%] tests/records/dumpers/test_access_dumpers.py s [ 10%] tests/records/dumpers/test_combined_subjects_dumper.py [ 11%] tests/records/dumpers/test_edtf_dumpers.py [ 14%] tests/records/dumpers/test_files_dumpers.py [ 15%] tests/records/dumpers/test_location_dumpers.py s [ 17%] tests/records/dumpers/test_pids_dumper.py [ 17%] tests/records/systemfields/test_access_systemfield.py [ 22%] [ 25%] tests/records/systemfields/test_permission_flags.py [ 26%] tests/records/systemfields/test_tombstone.py [ 29%] tests/records/test_api.py [ 30%] tests/records/test_jsonschema.py [ 40%] [ 40%] tests/records/test_mockrecords_api.py [ 44%] tests/records/test_quotas.py [ 45%] tests/records/test_records_communities.py [ 46%] tests/records/test_relations_affiliations.py [ 49%] tests/records/test_relations_languages.py [ 50%] tests/records/test_relations_resource_types.py [ 52%] tests/records/test_relations_subjects.py [ 53%] tests/requests/test_record_deletion.py [ 55%] tests/requests/test_user_moderation_actions.py [ 56%] tests/resources/serializers/test_bibtex_serializer.py [ 61%] [ 70%] tests/resources/serializers/test_cff_serializer.py [ 71%] tests/resources/serializers/test_crossref_serializer.py [ 71%] tests/resources/serializers/test_csl_serializer.py [ 73%] tests/resources/serializers/test_datacite43_serializer.py [ 77%] tests/resources/serializers/test_datacite45_serializer.py [ 80%] tests/resources/serializers/test_datapackage_serializer.py ..... [ 81%] tests/resources/serializers/test_dcat_serializer.py [ 82%] tests/resources/serializers/test_dublincore_serializer.py [ 85%] tests/resources/serializers/test_geojson_serializer.py ..... [ 86%] tests/resources/serializers/test_marcxml_serializer.py [ 87%] tests/resources/serializers/test_schemaorg_serializer.py [ 88%] tests/resources/serializers/test_signposting_serializer.py [ 90%] tests/resources/serializers/test_ui_serializer.py [ 91%] tests/resources/test_access_requests.py [ 93%] tests/resources/test_draft_file_permissions.py [ 98%] tests/resources/test_files.py [100%] =============================== warnings summary =============================== invenio_rdm_records/services/facets.py:72 warn( result = self._write_client.setex( /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_records/api.py:302: SAWarning: nested transaction already deassociated from connection with db.session.begin_nested(): /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_db/uow.py:189: SAWarning: nested transaction already deassociated from connection self.session.commit() self.init_app(app) tests/fixtures/test_cli.py::test_create_fake_demo_invitation_requests parsed_date = parser.parseString(f_date)[0] clear_context = _init_context(kwargs) warnings.warn( /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/pytest_invenio/fixtures.py:617: SAWarning: nested transaction already deassociated from connection session.rollback() tests/records/dumpers/test_edtf_dumpers.py::test_esdumper_with_edtfext[2021-01-01-2021-01-01-2021-01-01] tests/records/dumpers/test_edtf_dumpers.py::test_esdumper_with_edtfext[2021-01-2021-01-01-2021-01-31] tests/records/dumpers/test_edtf_dumpers.py::test_esdumper_with_edtfext[2021-2021-01-01-2021-12-31] tests/records/dumpers/test_edtf_dumpers.py::test_esdumper_with_edtfext[1776-1776-01-01-1776-12-31] tests/records/dumpers/test_edtf_dumpers.py::test_esdumper_with_edtfext[2021-01/2021-03-2021-01-01-2021-03-31] /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/records/dumpers/test_edtf_dumpers.py:43: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/records/dumpers/test_edtf_dumpers.py::test_esdumper_with_edtfext_not_defined /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/records/dumpers/test_edtf_dumpers.py:74: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/records/dumpers/test_edtf_dumpers.py::test_eslistdumper_with_edtfext_not_defined /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/records/dumpers/test_edtf_dumpers.py:99: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/records/dumpers/test_edtf_dumpers.py::test_esdumper_with_edtfext_parse_error /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/records/dumpers/test_edtf_dumpers.py:124: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/records/dumpers/test_edtf_dumpers.py::test_eslistdumper_with_edtfext_parse_error /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/records/dumpers/test_edtf_dumpers.py:147: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/records/dumpers/test_files_dumpers.py::test_files_dumper tests/records/test_records_communities.py::test_community_integration /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_records/api.py:410: SAWarning: nested transaction already deassociated from connection with db.session.begin_nested(): tests/records/dumpers/test_pids_dumper.py::test_esdumper_with_externalpidsext /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/records/dumpers/test_pids_dumper.py:33: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/records/systemfields/test_permission_flags.py::test_get_set_permission_flags_from_db /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/records/systemfields/test_permission_flags.py:51: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/records/test_records_communities.py::test_community_integration /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/records/test_records_communities.py:31: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/records/test_records_communities.py::test_community_integration /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/records/test_records_communities.py:35: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/resources/test_files.py::test_published_record_files_allow_edit /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_files_rest/models.py:714: SAWarning: Object of type not in session, add operation along 'Bucket.objects' will not proceed (This warning originated from the Session 'autoflush' process, which was invoked automatically in response to a user-initiated operation. Consider using ``no_autoflush`` context manager if this warning happened while initializing objects.) return db.session.query(cls).filter_by(id=file_id).one_or_none() ================================ tests coverage ================================ _______________ coverage: platform linux, python 3.14.2-final-0 ________________ Name Stmts Miss Cover Missing invenio_rdm_records/__init__.py 3 0 100% invenio_rdm_records/access_requests_ui/__init__.py 0 0 100% invenio_rdm_records/access_requests_ui/views.py 31 31 0% 6-60 invenio_rdm_records/administration/__init__.py 0 0 100% invenio_rdm_records/administration/views/__init__.py 0 0 100% invenio_rdm_records/administration/views/oai.py 52 0 100% invenio_rdm_records/alembic/0cf260eb8e97_create_table_for_secret_links.py 13 13 0% 6-42 invenio_rdm_records/alembic/4a15e8671f4d_create_rdm_records_tables.py 30 30 0% 6-292 invenio_rdm_records/alembic/8ed1a438601c_migrate_secret_links.py 8 8 0% 6-25 invenio_rdm_records/alembic/9e0ac518b9df_create_records_communities_m2m_table.py 11 11 0% 6-50 invenio_rdm_records/alembic/88d1463de5c0_create_parent_record_table.py 30 30 0% 6-141 invenio_rdm_records/alembic/912251a56a49_change_datetime_types.py 23 23 0% 7-82 invenio_rdm_records/alembic/2186256e8d9b_add_deletion_status_to_rdmrecords.py 31 31 0% 6-76 invenio_rdm_records/alembic/1746626978_drop_rdmrecordquota_user_id_unique_.py 9 9 0% 6-27 invenio_rdm_records/alembic/1777274324_merge_pidrelations_tables_removal.py 6 6 0% 8-18 invenio_rdm_records/alembic/1777278349_column_defaults_and_files_indices.py 65 65 0% 7-321 invenio_rdm_records/alembic/1780576627_create_record_id_index_in_rdm_parents_community.py 10 10 0% 6-31 invenio_rdm_records/alembic/__init__.py 0 0 100% invenio_rdm_records/alembic/a2a6819f14f1_create_files_and_media_files_versioning_.py 26 26 0% 6-171 invenio_rdm_records/alembic/a6bfa06b1a6d_add_origin_and_description_to_secret_links.py 12 12 0% 6-31 invenio_rdm_records/alembic/a3957490361d_remove_pidrelations_tables.py 14 14 0% 6-28 invenio_rdm_records/alembic/b822ba22c688_create_rdm_records_branch.py 8 8 0% 7-20 invenio_rdm_records/alembic/cfcb8cb78708_create_access_request_tokens_table.py 13 13 0% 6-47 invenio_rdm_records/alembic/faf0cefa79a0_create_record_quota_tables.py 13 13 0% 6-62 invenio_rdm_records/alembic/ff9bec971d30_add_indexes.py 31 31 0% 6-132 invenio_rdm_records/alembic/ff860d48fb4b_create_media_files_table.py 28 28 0% 6-180 invenio_rdm_records/alembic/ffd725001655_add_field_to_record_consent_to_share_.py 10 10 0% 6-31 invenio_rdm_records/auditlog/__init__.py 0 0 100% invenio_rdm_records/auditlog/actions.py 36 0 100% invenio_rdm_records/auditlog/context.py 15 9 40% 16-20, 28-35 invenio_rdm_records/checks/__init__.py 0 0 100% invenio_rdm_records/checks/requests.py 72 72 0% 6-155 invenio_rdm_records/cli.py 187 90 52% 61-62, 85-98, 121-128, 151-158, 181-188, 211-235, 258-271, 278-282, 297-301, 308-340, 368-369, 378-382, 405-407 invenio_rdm_records/collections/__init__.py 0 0 100% invenio_rdm_records/collections/tasks.py 16 16 0% 6-27 invenio_rdm_records/config.py 210 1 99% 76 invenio_rdm_records/contrib/__init__.py 0 0 100% invenio_rdm_records/contrib/codemeta/__init__.py 2 0 100% invenio_rdm_records/contrib/codemeta/custom_fields.py 10 0 100% invenio_rdm_records/contrib/codemeta/processors.py 15 12 20% 13-30 invenio_rdm_records/contrib/imprint/__init__.py 2 0 100% invenio_rdm_records/contrib/imprint/custom_fields.py 15 2 87% 27, 45 invenio_rdm_records/contrib/imprint/processors.py 56 41 27% 22-39, 54-91 invenio_rdm_records/contrib/journal/__init__.py 3 0 100% invenio_rdm_records/contrib/journal/custom_fields.py 15 2 87% 27, 45 invenio_rdm_records/contrib/journal/processors.py 107 60 44% 21-44, 59-84, 112, 117, 135-152, 167-184 invenio_rdm_records/contrib/journal/sort.py 2 0 100% invenio_rdm_records/contrib/meeting/__init__.py 3 0 100% invenio_rdm_records/contrib/meeting/custom_fields.py 17 2 88% 35, 60 invenio_rdm_records/contrib/meeting/processors.py 31 16 48% 21-34, 49-60 invenio_rdm_records/contrib/meeting/sort.py 2 0 100% invenio_rdm_records/contrib/thesis/__init__.py 2 2 0% 6-12 invenio_rdm_records/contrib/thesis/custom_fields.py 14 14 0% 13-59 invenio_rdm_records/ext.py 122 1 99% 139 invenio_rdm_records/fixtures/__init__.py 25 12 52% 28, 32-55, 63-67 invenio_rdm_records/fixtures/communities.py 12 0 100% invenio_rdm_records/fixtures/demo.py 112 18 84% 42-45, 71-82, 96, 113, 342-351 invenio_rdm_records/fixtures/fixture.py 28 8 71% 30, 45-53, 58 invenio_rdm_records/fixtures/records.py 5 0 100% invenio_rdm_records/fixtures/tasks.py 118 13 89% 54-55, 74, 81-86, 92-95, 161, 213-214 invenio_rdm_records/fixtures/users.py 44 3 93% 77-79 invenio_rdm_records/fixtures/vocabularies.py 212 30 86% 56-67, 71-77, 85-87, 95-99, 188, 395-396 invenio_rdm_records/jobs/__init__.py 0 0 100% invenio_rdm_records/jobs/jobs.py 4 0 100% invenio_rdm_records/notifications/__init__.py 0 0 100% invenio_rdm_records/notifications/builders.py 151 5 97% 108, 140, 285, 320, 438 invenio_rdm_records/notifications/vcs.py 54 54 0% 10-164 invenio_rdm_records/oai.py 59 6 90% 110-114, 129-131 invenio_rdm_records/oaiserver/__init__.py 0 0 100% invenio_rdm_records/oaiserver/resources/__init__.py 0 0 100% invenio_rdm_records/oaiserver/resources/config.py 19 0 100% invenio_rdm_records/oaiserver/resources/resources.py 46 14 70% 50-55, 61-65, 72-76, 84-89, 95-99, 105-109 invenio_rdm_records/oaiserver/services/__init__.py 0 0 100% invenio_rdm_records/oaiserver/services/config.py 28 0 100% invenio_rdm_records/oaiserver/services/errors.py 17 6 65% 15-16, 24, 37, 45, 55 invenio_rdm_records/oaiserver/services/permissions.py 9 0 100% invenio_rdm_records/oaiserver/services/results.py 59 35 41% 18-22, 27, 32-44, 48-49, 72-78, 82, 86, 91, 96-107, 112, 123-134 invenio_rdm_records/oaiserver/services/schema.py 18 0 100% invenio_rdm_records/oaiserver/services/services.py 115 72 37% 37-41, 45-49, 63, 68, 75-76, 80-89, 94-107, 119-134, 143-146, 155-181, 193-208, 218-224, 228-246, 257-261 invenio_rdm_records/oaiserver/services/uow.py 14 6 57% 15-16, 20, 28-29, 33 invenio_rdm_records/proxies.py 18 0 100% invenio_rdm_records/records/__init__.py 2 0 100% invenio_rdm_records/records/api.py 147 16 89% 311, 386-390, 580-587, 606-613 invenio_rdm_records/records/dumpers/__init__.py 8 0 100% invenio_rdm_records/records/dumpers/access.py 22 2 91% 46-47 invenio_rdm_records/records/dumpers/combined_subjects.py 21 0 100% invenio_rdm_records/records/dumpers/edtf.py 50 0 100% invenio_rdm_records/records/dumpers/locations.py 24 0 100% invenio_rdm_records/records/dumpers/pids.py 17 0 100% invenio_rdm_records/records/dumpers/statistics.py 21 2 90% 44-45 invenio_rdm_records/records/dumpers/subject_hierarchy.py 31 16 48% 67-84, 89-93 invenio_rdm_records/records/jsonschemas/__init__.py 0 0 100% invenio_rdm_records/records/mappings/__init__.py 0 0 100% invenio_rdm_records/records/mappings/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/mappings/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/mappings/v7/__init__.py 0 0 100% invenio_rdm_records/records/models.py 96 1 99% 185 invenio_rdm_records/records/processors/base.py 8 3 62% 12, 16, 21 invenio_rdm_records/records/processors/tiles.py 74 53 28% 23, 43, 48, 53-55, 59-78, 88-138, 148-179 invenio_rdm_records/records/stats/__init__.py 2 0 100% invenio_rdm_records/records/stats/api.py 25 3 88% 21, 28, 44 invenio_rdm_records/records/stats/templates/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/v7/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/v7/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/v7/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/v7/__init__.py 0 0 100% invenio_rdm_records/records/systemfields/__init__.py 8 0 100% invenio_rdm_records/records/systemfields/access/__init__.py 8 0 100% invenio_rdm_records/records/systemfields/access/access_settings.py 10 1 90% 28 invenio_rdm_records/records/systemfields/access/embargo.py 62 11 82% 19, 74-79, 85-88, 96, 106, 117 invenio_rdm_records/records/systemfields/access/field/__init__.py 3 0 100% invenio_rdm_records/records/systemfields/access/field/parent.py 112 20 82% 66, 86, 101-106, 146-147, 152-153, 157-158, 171, 206-213, 226 invenio_rdm_records/records/systemfields/access/field/record.py 103 9 91% 63, 122-123, 140-143, 147-149, 185 invenio_rdm_records/records/systemfields/access/grants.py 122 14 89% 43-45, 53, 90, 115, 186, 198, 223, 228, 238, 242, 271-272 invenio_rdm_records/records/systemfields/access/links.py 62 15 76% 28, 40, 46, 50-53, 57, 61, 65, 76, 92-93, 97-100 invenio_rdm_records/records/systemfields/access/owners.py 50 10 80% 28, 36, 60, 73, 77-80, 84, 88, 92 invenio_rdm_records/records/systemfields/access/protection.py 44 7 84% 58-59, 69, 76-79, 83 invenio_rdm_records/records/systemfields/deletion_status.py 61 9 85% 54, 58, 66-75 invenio_rdm_records/records/systemfields/draft_status.py 25 2 92% 92-93 invenio_rdm_records/records/systemfields/has_draftcheck.py 21 0 100% invenio_rdm_records/records/systemfields/is_verified.py 12 0 100% invenio_rdm_records/records/systemfields/statistics.py 27 2 93% 32-33 invenio_rdm_records/records/systemfields/tombstone.py 126 17 87% 41, 131, 156, 162, 170-172, 177, 198, 212-213, 216-219, 225-226, 235 invenio_rdm_records/requests/__init__.py 8 0 100% invenio_rdm_records/requests/access/__init__.py 4 0 100% invenio_rdm_records/requests/access/models.py 49 3 94% 82, 87, 122 invenio_rdm_records/requests/access/permissions.py 4 0 100% invenio_rdm_records/requests/access/requests.py 123 21 83% 62-70, 78-84, 92-101, 109-114, 165, 248, 252, 257, 351-358 invenio_rdm_records/requests/access/tasks.py 8 8 0% 7-21 invenio_rdm_records/requests/base.py 7 0 100% invenio_rdm_records/requests/community_inclusion.py 53 23 57% 25-28, 39-42, 52-88, 130 invenio_rdm_records/requests/community_submission.py 92 46 50% 47-105, 130-132, 150-164, 179-199, 250 invenio_rdm_records/requests/decorators.py 18 0 100% invenio_rdm_records/requests/entity_resolvers.py 91 8 91% 61, 116, 147, 161, 165-166, 174, 206 invenio_rdm_records/requests/file_modification.py 46 15 67% 23-34, 38, 56-62, 102-103, 114 invenio_rdm_records/requests/quota_increase.py 42 14 67% 22-33, 41-50, 83-84, 95 invenio_rdm_records/requests/record_deletion.py 72 9 88% 69-71, 92-93, 119-125, 173 invenio_rdm_records/requests/subcommunities.py 7 0 100% invenio_rdm_records/requests/user_moderation/__init__.py 2 0 100% invenio_rdm_records/requests/user_moderation/actions.py 31 6 81% 39-40, 70-77 invenio_rdm_records/requests/user_moderation/tasks.py 33 13 61% 25, 33, 39-50, 60-62, 68-72 invenio_rdm_records/requests/user_moderation/utils.py 20 4 80% 40-43 invenio_rdm_records/resources/__init__.py 4 0 100% invenio_rdm_records/resources/args.py 8 0 100% invenio_rdm_records/resources/config.py 137 0 100% invenio_rdm_records/resources/deserializers/__init__.py 2 0 100% invenio_rdm_records/resources/deserializers/errors.py 1 0 100% invenio_rdm_records/resources/deserializers/rocrate/__init__.py 38 28 26% 23-32, 36-60 invenio_rdm_records/resources/deserializers/rocrate/schema.py 73 50 32% 16-18, 42-45, 58-59, 70-112, 118-127, 133-136 invenio_rdm_records/resources/errors.py 23 3 87% 22, 45, 50 invenio_rdm_records/resources/iiif.py 165 69 58% 142-143, 151-155, 172-173, 189, 198, 207-210, 219-223, 232-236, 259-308, 325, 339-341, 350, 354-369, 384-398 invenio_rdm_records/resources/resources.py 347 105 70% 47, 107-111, 122-129, 148-153, 168, 177-183, 190-196, 220-237, 244-252, 259-267, 274-280, 289-294, 301-308, 314-319, 326-336, 346-353, 360-367, 389-394, 422-429, 436-449, 455-465, 473-483, 489-495, 523-531, 562-568, 574-579, 583, 590-596, 601-606, 613-617, 644-650, 658-667, 675-683, 691-699, 704-709, 717-722, 747-755, 760-766, 774-780, 788-796, 825-831, 841-849 invenio_rdm_records/resources/serializers/__init__.py 17 0 100% invenio_rdm_records/resources/serializers/bibtex/__init__.py 9 0 100% invenio_rdm_records/resources/serializers/bibtex/schema.py 166 11 93% 96, 100-101, 107, 300-304, 322, 337 invenio_rdm_records/resources/serializers/bibtex/schema_formats.py 27 0 100% invenio_rdm_records/resources/serializers/cff/__init__.py 8 0 100% invenio_rdm_records/resources/serializers/cff/schema.py 148 18 88% 28, 50-57, 105, 119-125, 219, 241 invenio_rdm_records/resources/serializers/codemeta/__init__.py 7 1 86% 19 invenio_rdm_records/resources/serializers/codemeta/schema.py 34 22 35% 29-50, 54-64 invenio_rdm_records/resources/serializers/crossref/__init__.py 26 3 88% 102-106 invenio_rdm_records/resources/serializers/csl/__init__.py 63 0 100% invenio_rdm_records/resources/serializers/csl/schema.py 75 5 93% 83-84, 99, 113, 122 invenio_rdm_records/resources/serializers/csv/__init__.py 4 0 100% invenio_rdm_records/resources/serializers/datacite/__init__.py 19 0 100% invenio_rdm_records/resources/serializers/datacite/schema.py 600 42 93% 107-135, 162, 276-281, 293, 414-429, 438, 461-465, 549-550, 582, 632-633, 768-773, 785, 1031-1032, 1064, 1114-1115 invenio_rdm_records/resources/serializers/datapackage/__init__.py 6 0 100% invenio_rdm_records/resources/serializers/datapackage/schema.py 65 0 100% invenio_rdm_records/resources/serializers/dcat/__init__.py 105 13 88% 102-113, 130, 141, 151, 187-195 invenio_rdm_records/resources/serializers/dcat/schema.py 45 4 91% 24, 72-73, 89 invenio_rdm_records/resources/serializers/dublincore/__init__.py 12 0 100% invenio_rdm_records/resources/serializers/dublincore/schema.py 115 3 97% 67, 92, 124 invenio_rdm_records/resources/serializers/errors.py 2 0 100% invenio_rdm_records/resources/serializers/geojson/__init__.py 6 0 100% invenio_rdm_records/resources/serializers/geojson/schema.py 12 0 100% invenio_rdm_records/resources/serializers/iiif/__init__.py 15 0 100% invenio_rdm_records/resources/serializers/iiif/schema.py 76 17 78% 23, 35, 132-150, 200-203, 208, 218-219 invenio_rdm_records/resources/serializers/marcxml/__init__.py 13 0 100% invenio_rdm_records/resources/serializers/marcxml/schema.py 298 13 96% 157-164, 180-184, 271, 286, 352, 374 invenio_rdm_records/resources/serializers/schemaorg/__init__.py 7 0 100% invenio_rdm_records/resources/serializers/schemaorg/schema.py 270 42 84% 36-52, 74, 77, 118, 141, 247-248, 277, 294, 333, 364, 379, 443-444, 465-475, 482-494, 524 invenio_rdm_records/resources/serializers/schemas.py 51 6 88% 24-25, 65-69 invenio_rdm_records/resources/serializers/signposting/__init__.py 21 0 100% invenio_rdm_records/resources/serializers/signposting/schema.py 107 1 99% 44 invenio_rdm_records/resources/serializers/ui/__init__.py 6 0 100% invenio_rdm_records/resources/serializers/ui/fields.py 55 5 91% 72-87, 106, 127 invenio_rdm_records/resources/serializers/ui/schema.py 254 82 68% 42, 60, 100, 114, 217-250, 254-274, 278-293, 308-310, 313-314, 317-318, 323, 348-349, 354-361, 446-458, 468 invenio_rdm_records/resources/serializers/utils.py 29 2 93% 54, 63 invenio_rdm_records/resources/stats/__init__.py 2 2 0% 6-14 invenio_rdm_records/resources/stats/event_builders.py 50 50 0% 14-155 invenio_rdm_records/secret_links/__init__.py 3 0 100% invenio_rdm_records/secret_links/errors.py 6 1 83% 20 invenio_rdm_records/secret_links/models.py 84 20 76% 59-60, 83-86, 92, 99-104, 117, 121, 126, 149-156 invenio_rdm_records/secret_links/permissions.py 4 0 100% invenio_rdm_records/secret_links/serializers.py 41 5 88% 70-71, 89-92 invenio_rdm_records/secret_links/signals.py 6 0 100% invenio_rdm_records/services/__init__.py 8 0 100% invenio_rdm_records/services/access/__init__.py 2 0 100% invenio_rdm_records/services/access/service.py 379 186 51% 61, 65-66, 77-78, 89, 104, 121, 142, 149-151, 163-186, 207, 221-222, 260-267, 282-295, 313-364, 374-410, 432, 436-439, 465, 473, 484, 489, 529-547, 566-631, 640-657, 667-706, 726, 732, 764, 775, 864, 868, 881, 938-971, 985-998, 1008-1019, 1039-1103, 1116-1150 invenio_rdm_records/services/communities/__init__.py 2 0 100% invenio_rdm_records/services/communities/components.py 24 10 58% 40-47, 53-60 invenio_rdm_records/services/communities/moderation.py 40 6 85% 19, 23, 27, 44, 50, 58 invenio_rdm_records/services/communities/service.py 192 148 23% 54, 59, 64, 69, 73-90, 95-131, 136-207, 211-247, 252-292, 305-316, 328-355, 369-389, 401-431, 442-492, 503-547 invenio_rdm_records/services/community_inclusion/__init__.py 2 0 100% invenio_rdm_records/services/community_inclusion/service.py 28 5 82% 41, 55, 62-79 invenio_rdm_records/services/community_records/__init__.py 2 0 100% invenio_rdm_records/services/community_records/service.py 51 34 33% 30, 35, 49-84, 101-106, 111-145 invenio_rdm_records/services/components/__init__.py 14 0 100% invenio_rdm_records/services/components/access.py 36 5 86% 32-34, 46-47 invenio_rdm_records/services/components/custom_fields.py 5 0 100% invenio_rdm_records/services/components/files.py 23 3 87% 53-55 invenio_rdm_records/services/components/internal_notes.py 34 10 71% 22, 49-58, 62-63 invenio_rdm_records/services/components/metadata.py 22 0 100% invenio_rdm_records/services/components/pids.py 148 44 70% 63-85, 93, 107, 135-138, 154-170, 191-194, 267-268, 310, 325-331, 372-377 invenio_rdm_records/services/components/record_deletion.py 34 9 74% 60, 64-71, 75-76, 80-81 invenio_rdm_records/services/components/record_files.py 8 2 75% 20-21 invenio_rdm_records/services/components/review.py 34 13 62% 25, 29-45, 52-53, 72-76 invenio_rdm_records/services/components/signal.py 6 6 0% 6-17 invenio_rdm_records/services/components/vcs.py 15 15 0% 6-34 invenio_rdm_records/services/components/verified.py 48 3 94% 26, 38, 44 invenio_rdm_records/services/config.py 263 3 99% 297, 317-318 invenio_rdm_records/services/customizations.py 31 0 100% invenio_rdm_records/services/decorators.py 13 4 69% 18-25 invenio_rdm_records/services/dummy.py 10 3 70% 12, 28, 32 invenio_rdm_records/services/errors.py 68 17 75% 35-36, 44, 49, 98, 103, 143-144, 152-153, 158, 170, 175, 187, 192-198 invenio_rdm_records/services/facets.py 22 1 95% 95 invenio_rdm_records/services/files/__init__.py 2 0 100% invenio_rdm_records/services/files/service.py 14 0 100% invenio_rdm_records/services/generators.py 215 24 89% 58, 71-76, 92, 108, 136, 169, 173, 228, 244, 257, 266, 285, 298, 308, 324, 344, 402, 413, 421, 429 invenio_rdm_records/services/github/__init__.py 0 0 100% invenio_rdm_records/services/github/metadata.py 83 83 0% 6-180 invenio_rdm_records/services/github/release.py 116 116 0% 7-247 invenio_rdm_records/services/github/utils.py 4 4 0% 6-19 invenio_rdm_records/services/iiif/__init__.py 2 0 100% invenio_rdm_records/services/iiif/converter.py 63 45 29% 11, 15-17, 27, 32, 40, 57-69, 75-99, 103-115 invenio_rdm_records/services/iiif/service.py 74 51 31% 19-21, 26, 30-32, 51-52, 59-60, 64, 72-78, 81-112, 123-130, 147-172 invenio_rdm_records/services/iiif/storage.py 69 40 42% 29-34, 38, 42, 46, 65-71, 75-88, 95, 100-114, 118, 131, 135-148 invenio_rdm_records/services/iiif/tasks.py 31 23 26% 17-30, 40-56 invenio_rdm_records/services/permissions.py 99 0 100% invenio_rdm_records/services/pids/__init__.py 3 0 100% invenio_rdm_records/services/pids/errors.py 8 2 75% 17, 27 invenio_rdm_records/services/pids/manager.py 162 36 78% 32-33, 62, 79, 115, 126, 150-151, 154, 164, 171, 178, 196-199, 217, 220-221, 236, 262, 283, 295-297, 301-310, 323-324, 338-341 invenio_rdm_records/services/pids/providers/__init__.py 6 0 100% invenio_rdm_records/services/pids/providers/base.py 82 27 67% 37, 42, 67, 81, 99-106, 119, 128, 136, 144, 155-160, 166-169, 203-213, 221 invenio_rdm_records/services/pids/providers/crossref.py 140 100 29% 39, 45, 49-50, 57-78, 86-111, 120-186, 220, 225, 229, 239-252, 262-271, 280-300, 310-344, 350-356 invenio_rdm_records/services/pids/providers/datacite.py 152 60 61% 57, 65, 70, 77, 87, 97-105, 138-155, 184, 186, 190, 197-203, 216, 218, 222, 229-235, 238, 244-248, 259, 262-268, 291-293, 297, 311-314, 318-324 invenio_rdm_records/services/pids/providers/external.py 48 29 40% 27-36, 40-50, 70, 80-103, 110-112 invenio_rdm_records/services/pids/providers/oai.py 15 1 93% 44 invenio_rdm_records/services/pids/service.py 103 41 60% 69-92, 104-110, 122-128, 140-147, 175, 247-255, 269 invenio_rdm_records/services/pids/tasks.py 6 0 100% invenio_rdm_records/services/queryparser.py 5 3 40% 11-13 invenio_rdm_records/services/request_policies.py 133 64 52% 27, 31, 36, 56-57, 61-65, 84-85, 89, 99-100, 106-107, 111-115, 126-128, 132, 143-149, 156-170, 185-186, 190, 208-222, 227, 236-243, 261-268, 277-283, 299-305 invenio_rdm_records/services/requests/__init__.py 2 0 100% invenio_rdm_records/services/requests/service.py 14 7 50% 21, 34-45 invenio_rdm_records/services/result_items.py 100 58 42% 19-21, 39, 44-58, 62-66, 74-77, 81, 85, 90-102, 108-114, 130-136, 141-154, 158-162, 185, 189, 194-203, 207-221 invenio_rdm_records/services/results.py 57 20 65% 29, 33, 37, 41, 54, 58, 62-71, 75, 119-120, 124-133, 137 invenio_rdm_records/services/review/__init__.py 3 0 100% invenio_rdm_records/services/review/links.py 10 2 80% 16, 25 invenio_rdm_records/services/review/policy.py 4 1 75% 27 invenio_rdm_records/services/review/service.py 112 36 68% 58, 76, 79, 85, 116-117, 131-134, 157-158, 171-211, 218, 227, 246, 261-262 invenio_rdm_records/services/schemas/__init__.py 4 0 100% invenio_rdm_records/services/schemas/access.py 41 6 85% 30, 36-37, 46, 63, 77 invenio_rdm_records/services/schemas/community_records.py 21 12 43% 29-48 invenio_rdm_records/services/schemas/fields.py 21 4 81% 25-26, 41-42 invenio_rdm_records/services/schemas/files.py 52 0 100% invenio_rdm_records/services/schemas/metadata.py 179 34 81% 72-78, 117-118, 122-123, 138, 140, 152-161, 207-211, 234, 239, 244-252, 286, 289, 338-344 invenio_rdm_records/services/schemas/parent/__init__.py 28 2 93% 24-25 invenio_rdm_records/services/schemas/parent/access.py 44 0 100% invenio_rdm_records/services/schemas/parent/communities.py 9 0 100% invenio_rdm_records/services/schemas/pids.py 6 0 100% invenio_rdm_records/services/schemas/quota.py 6 0 100% invenio_rdm_records/services/schemas/record.py 70 2 97% 40, 111 invenio_rdm_records/services/schemas/record_communities.py 24 12 50% 32-51 invenio_rdm_records/services/schemas/review.py 12 0 100% invenio_rdm_records/services/schemas/stats.py 10 0 100% invenio_rdm_records/services/schemas/tombstone.py 21 0 100% invenio_rdm_records/services/schemas/utils.py 17 17 0% 7-34 invenio_rdm_records/services/schemas/versions.py 4 0 100% invenio_rdm_records/services/search_params.py 45 14 69% 23, 50-53, 67-68, 71-74, 103-107 invenio_rdm_records/services/services.py 325 165 49% 124-157, 163-169, 204, 229, 237, 243, 259-308, 313-352, 357-384, 396-401, 406-442, 454-467, 479-492, 504-508, 520-528, 594, 608, 631-632, 637, 676, 684, 697-700, 727-732, 753-757, 792, 827, 836, 845-893, 897-902, 909-923 invenio_rdm_records/services/signals/__init__.py 2 0 100% invenio_rdm_records/services/signals/signals.py 4 0 100% invenio_rdm_records/services/sort.py 8 2 75% 23-24 invenio_rdm_records/services/stats/__init__.py 2 2 0% 6-8 invenio_rdm_records/services/stats/permissions.py 16 16 0% 6-52 invenio_rdm_records/services/storage/service.py 94 65 31% 36-50, 56-59, 63-69, 73-81, 85, 93-97, 102, 106, 110-120, 128-136, 143-165, 169-199, 203-204, 208-218 invenio_rdm_records/services/tasks.py 54 34 37% 41-54, 60-90, 96 invenio_rdm_records/services/vcs/__init__.py 0 0 100% invenio_rdm_records/services/vcs/metadata.py 83 83 0% 6-183 invenio_rdm_records/services/vcs/release.py 199 199 0% 7-467 invenio_rdm_records/services/vcs/utils.py 4 4 0% 6-19 invenio_rdm_records/tokens/__init__.py 3 0 100% invenio_rdm_records/tokens/errors.py 18 0 100% invenio_rdm_records/tokens/permissions.py 5 0 100% invenio_rdm_records/tokens/resource_access.py 41 28 32% 36-90 invenio_rdm_records/tokens/scopes.py 4 0 100% invenio_rdm_records/utils.py 90 31 66% 30-50, 72, 97-98, 110-115, 125-142, 148-149 invenio_rdm_records/views.py 71 16 77% 76-77, 118-124, 129-150, 166-175 invenio_rdm_records/webpack.py 2 2 0% 9-11 TOTAL 13619 4200 69% =========== 361 passed, 2 skipped, 541 warnings in 270.50s (0:04:30) =========== Container docker_services_cli-postgresql-1 Stopping Container docker_services_cli-redis-1 Stopping Container docker_services_cli-rabbitmq-1 Stopping Container docker_services_cli-opensearch-1 Stopping 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-postgresql-1 Stopped Container docker_services_cli-postgresql-1 Removing Container docker_services_cli-postgresql-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 === Part 1 === redis Pulling opensearch Pulling postgresql Pulling rabbitmq 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-redis-1 Creating Container docker_services_cli-opensearch-1 Creating Container docker_services_cli-rabbitmq-1 Creating Container docker_services_cli-opensearch-1 Created Container docker_services_cli-rabbitmq-1 Created Container docker_services_cli-redis-1 Created Container docker_services_cli-postgresql-1 Created Container docker_services_cli-opensearch-1 Starting Container docker_services_cli-rabbitmq-1 Starting Container docker_services_cli-redis-1 Starting Container docker_services_cli-postgresql-1 Starting Container docker_services_cli-redis-1 Started Container docker_services_cli-rabbitmq-1 Started Container docker_services_cli-postgresql-1 Started Container docker_services_cli-opensearch-1 Started ============================= test session starts ============================== platform linux -- Python 3.14.2, pytest-8.4.2, pluggy-1.6.0 rootdir: /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched configfile: setup.cfg plugins: flask-1.3.0, black-0.6.0, github-actions-annotate-failures-0.4.1, mock-3.15.1, pycodestyle-2.5.0, cov-7.1.0, invenio-4.0.1, pydocstyle-2.4.0, isort-4.0.0, Faker-40.23.0 collected 135 items tests/resources/test_iiif_image_api.py [ 6%] tests/resources/test_iiif_presentation_api.py [ 11%] tests/resources/test_media_files.py [ 17%] tests/resources/test_publish_errors.py s [ 20%] tests/resources/test_record_file_permissions.py [ 28%] tests/resources/test_request_deletion.py [ 33%] tests/resources/test_resources.py ss [ 52%] tests/resources/test_resources_communities.py [ 71%] [ 75%] tests/resources/test_resources_community_records.py [ 80%] tests/resources/test_resources_oai.py [ 91%] tests/resources/test_resources_pids.py [ 97%] tests/resources/test_resources_record_communities.py [100%] =============================== warnings summary =============================== invenio_rdm_records/services/facets.py:72 warn( result = self._write_client.setex( /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_records/api.py:302: SAWarning: nested transaction already deassociated from connection with db.session.begin_nested(): /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_db/uow.py:189: SAWarning: nested transaction already deassociated from connection self.session.commit() self.init_app(app) tests/resources/test_request_deletion.py::test_request_flow /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/resources/test_request_deletion.py:53: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/resources/test_resources_communities.py::test_remove_another_community tests/resources/test_resources_communities.py::test_search_communities tests/resources/test_resources_communities.py::test_republish_with_mulitple_communities tests/resources/test_resources_communities.py::test_remove_record_last_community_with_multiple_communities tests/resources/test_resources_communities.py::test_remove_community_from_record_restricted_to_curators tests/resources/test_resources_pids.py::test_external_doi_cleanup tests/resources/test_resources_pids.py::test_required_pids_removed /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_records/api.py:410: SAWarning: nested transaction already deassociated from connection with db.session.begin_nested(): tests/resources/test_resources_communities.py::test_remove_another_community tests/resources/test_resources_communities.py::test_search_communities tests/resources/test_resources_communities.py::test_republish_with_mulitple_communities tests/resources/test_resources_communities.py::test_remove_record_last_community_with_multiple_communities tests/resources/test_resources_communities.py::test_remove_community_from_record_restricted_to_curators /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/resources/test_resources_communities.py:27: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/resources/test_resources_pids.py::test_pids_publish_validation_error /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_db/uow.py:200: SAWarning: nested transaction already deassociated from connection self.session.rollback() ================================ tests coverage ================================ _______________ coverage: platform linux, python 3.14.2-final-0 ________________ Name Stmts Miss Cover Missing invenio_rdm_records/__init__.py 3 0 100% invenio_rdm_records/access_requests_ui/__init__.py 0 0 100% invenio_rdm_records/access_requests_ui/views.py 31 31 0% 6-60 invenio_rdm_records/administration/__init__.py 0 0 100% invenio_rdm_records/administration/views/__init__.py 0 0 100% invenio_rdm_records/administration/views/oai.py 52 0 100% invenio_rdm_records/alembic/0cf260eb8e97_create_table_for_secret_links.py 13 13 0% 6-42 invenio_rdm_records/alembic/4a15e8671f4d_create_rdm_records_tables.py 30 30 0% 6-292 invenio_rdm_records/alembic/8ed1a438601c_migrate_secret_links.py 8 8 0% 6-25 invenio_rdm_records/alembic/9e0ac518b9df_create_records_communities_m2m_table.py 11 11 0% 6-50 invenio_rdm_records/alembic/88d1463de5c0_create_parent_record_table.py 30 30 0% 6-141 invenio_rdm_records/alembic/912251a56a49_change_datetime_types.py 23 23 0% 7-82 invenio_rdm_records/alembic/2186256e8d9b_add_deletion_status_to_rdmrecords.py 31 31 0% 6-76 invenio_rdm_records/alembic/1746626978_drop_rdmrecordquota_user_id_unique_.py 9 9 0% 6-27 invenio_rdm_records/alembic/1777274324_merge_pidrelations_tables_removal.py 6 6 0% 8-18 invenio_rdm_records/alembic/1777278349_column_defaults_and_files_indices.py 65 65 0% 7-321 invenio_rdm_records/alembic/1780576627_create_record_id_index_in_rdm_parents_community.py 10 10 0% 6-31 invenio_rdm_records/alembic/__init__.py 0 0 100% invenio_rdm_records/alembic/a2a6819f14f1_create_files_and_media_files_versioning_.py 26 26 0% 6-171 invenio_rdm_records/alembic/a6bfa06b1a6d_add_origin_and_description_to_secret_links.py 12 12 0% 6-31 invenio_rdm_records/alembic/a3957490361d_remove_pidrelations_tables.py 14 14 0% 6-28 invenio_rdm_records/alembic/b822ba22c688_create_rdm_records_branch.py 8 8 0% 7-20 invenio_rdm_records/alembic/cfcb8cb78708_create_access_request_tokens_table.py 13 13 0% 6-47 invenio_rdm_records/alembic/faf0cefa79a0_create_record_quota_tables.py 13 13 0% 6-62 invenio_rdm_records/alembic/ff9bec971d30_add_indexes.py 31 31 0% 6-132 invenio_rdm_records/alembic/ff860d48fb4b_create_media_files_table.py 28 28 0% 6-180 invenio_rdm_records/alembic/ffd725001655_add_field_to_record_consent_to_share_.py 10 10 0% 6-31 invenio_rdm_records/auditlog/__init__.py 0 0 100% invenio_rdm_records/auditlog/actions.py 36 0 100% invenio_rdm_records/auditlog/context.py 15 9 40% 16-20, 28-35 invenio_rdm_records/checks/__init__.py 0 0 100% invenio_rdm_records/checks/requests.py 72 72 0% 6-155 invenio_rdm_records/cli.py 187 187 0% 8-445 invenio_rdm_records/collections/__init__.py 0 0 100% invenio_rdm_records/collections/tasks.py 16 16 0% 6-27 invenio_rdm_records/config.py 210 1 99% 76 invenio_rdm_records/contrib/__init__.py 0 0 100% invenio_rdm_records/contrib/codemeta/__init__.py 2 0 100% invenio_rdm_records/contrib/codemeta/custom_fields.py 10 0 100% invenio_rdm_records/contrib/codemeta/processors.py 15 12 20% 13-30 invenio_rdm_records/contrib/imprint/__init__.py 2 0 100% invenio_rdm_records/contrib/imprint/custom_fields.py 15 2 87% 27, 45 invenio_rdm_records/contrib/imprint/processors.py 56 41 27% 22-39, 54-91 invenio_rdm_records/contrib/journal/__init__.py 3 0 100% invenio_rdm_records/contrib/journal/custom_fields.py 15 2 87% 27, 45 invenio_rdm_records/contrib/journal/processors.py 107 76 29% 21-44, 59-84, 99-120, 135-152, 160-184 invenio_rdm_records/contrib/journal/sort.py 2 0 100% invenio_rdm_records/contrib/meeting/__init__.py 3 0 100% invenio_rdm_records/contrib/meeting/custom_fields.py 17 2 88% 35, 60 invenio_rdm_records/contrib/meeting/processors.py 31 16 48% 21-34, 49-60 invenio_rdm_records/contrib/meeting/sort.py 2 0 100% invenio_rdm_records/contrib/thesis/__init__.py 2 2 0% 6-12 invenio_rdm_records/contrib/thesis/custom_fields.py 14 14 0% 13-59 invenio_rdm_records/ext.py 122 5 96% 139, 314-315, 334-335 invenio_rdm_records/fixtures/__init__.py 25 25 0% 7-75 invenio_rdm_records/fixtures/communities.py 12 12 0% 6-27 invenio_rdm_records/fixtures/demo.py 112 112 0% 7-351 invenio_rdm_records/fixtures/fixture.py 28 28 0% 6-60 invenio_rdm_records/fixtures/records.py 5 5 0% 7-17 invenio_rdm_records/fixtures/tasks.py 118 118 0% 8-234 invenio_rdm_records/fixtures/users.py 44 44 0% 7-79 invenio_rdm_records/fixtures/vocabularies.py 212 212 0% 10-432 invenio_rdm_records/jobs/__init__.py 0 0 100% invenio_rdm_records/jobs/jobs.py 4 0 100% invenio_rdm_records/notifications/__init__.py 0 0 100% invenio_rdm_records/notifications/builders.py 151 11 93% 75, 108, 140, 173, 207, 252, 285, 320, 358, 403, 438 invenio_rdm_records/notifications/vcs.py 54 54 0% 10-164 invenio_rdm_records/oai.py 59 59 0% 7-153 invenio_rdm_records/oaiserver/__init__.py 0 0 100% invenio_rdm_records/oaiserver/resources/__init__.py 0 0 100% invenio_rdm_records/oaiserver/resources/config.py 19 0 100% invenio_rdm_records/oaiserver/resources/resources.py 46 0 100% invenio_rdm_records/oaiserver/services/__init__.py 0 0 100% invenio_rdm_records/oaiserver/services/config.py 28 0 100% invenio_rdm_records/oaiserver/services/errors.py 17 2 88% 37, 55 invenio_rdm_records/oaiserver/services/permissions.py 9 0 100% invenio_rdm_records/oaiserver/services/results.py 59 3 95% 33, 82, 86 invenio_rdm_records/oaiserver/services/schema.py 18 0 100% invenio_rdm_records/oaiserver/services/services.py 115 13 89% 39-41, 47-49, 162, 196, 221, 257-261 invenio_rdm_records/oaiserver/services/uow.py 14 0 100% invenio_rdm_records/proxies.py 18 0 100% invenio_rdm_records/records/__init__.py 2 0 100% invenio_rdm_records/records/api.py 147 19 87% 311, 366, 373, 380-390, 580-587, 606-613 invenio_rdm_records/records/dumpers/__init__.py 8 0 100% invenio_rdm_records/records/dumpers/access.py 22 8 64% 36-37, 41-47 invenio_rdm_records/records/dumpers/combined_subjects.py 21 5 76% 44-48 invenio_rdm_records/records/dumpers/edtf.py 50 0 100% invenio_rdm_records/records/dumpers/locations.py 24 15 38% 31-42, 49-52 invenio_rdm_records/records/dumpers/pids.py 17 13 24% 22-28, 32-39 invenio_rdm_records/records/dumpers/statistics.py 21 2 90% 44-45 invenio_rdm_records/records/dumpers/subject_hierarchy.py 31 19 39% 67-84, 87-93, 96 invenio_rdm_records/records/jsonschemas/__init__.py 0 0 100% invenio_rdm_records/records/mappings/__init__.py 0 0 100% invenio_rdm_records/records/mappings/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/mappings/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/mappings/v7/__init__.py 0 0 100% invenio_rdm_records/records/models.py 96 1 99% 185 invenio_rdm_records/records/processors/base.py 8 3 62% 12, 16, 21 invenio_rdm_records/records/processors/tiles.py 74 53 28% 23, 43, 48, 53-55, 59-78, 88-138, 148-179 invenio_rdm_records/records/stats/__init__.py 2 0 100% invenio_rdm_records/records/stats/api.py 25 3 88% 21, 28, 44 invenio_rdm_records/records/stats/templates/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/v7/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/v7/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/v7/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/v7/__init__.py 0 0 100% invenio_rdm_records/records/systemfields/__init__.py 8 0 100% invenio_rdm_records/records/systemfields/access/__init__.py 8 0 100% invenio_rdm_records/records/systemfields/access/access_settings.py 10 1 90% 28 invenio_rdm_records/records/systemfields/access/embargo.py 62 27 56% 19, 28, 33, 38, 46-52, 56-58, 64, 74-79, 85-88, 96, 100, 106, 110, 117, 122 invenio_rdm_records/records/systemfields/access/field/__init__.py 3 0 100% invenio_rdm_records/records/systemfields/access/field/parent.py 112 24 79% 66, 86, 101-106, 140-141, 144-147, 152-153, 157-158, 171, 206-213, 226 invenio_rdm_records/records/systemfields/access/field/record.py 103 13 87% 63, 87-91, 122-123, 140-143, 147-149, 185 invenio_rdm_records/records/systemfields/access/grants.py 122 67 45% 43-45, 48-50, 53, 68-74, 82-98, 106-115, 123-126, 135-149, 164, 185-200, 205-209, 214-219, 223, 227-230, 238, 242, 258, 262-263, 267, 271-272, 283-291 invenio_rdm_records/records/systemfields/access/links.py 62 13 79% 28, 40, 46, 51, 57, 61, 65, 76, 92-93, 97-100 invenio_rdm_records/records/systemfields/access/owners.py 50 16 68% 28, 31-33, 36, 49, 54, 60, 63, 73, 77-80, 84, 88, 92 invenio_rdm_records/records/systemfields/access/protection.py 44 9 80% 39-40, 58-59, 69, 76-79, 83 invenio_rdm_records/records/systemfields/deletion_status.py 61 11 82% 36, 45, 54, 58, 66-75 invenio_rdm_records/records/systemfields/draft_status.py 25 2 92% 92-93 invenio_rdm_records/records/systemfields/has_draftcheck.py 21 0 100% invenio_rdm_records/records/systemfields/is_verified.py 12 2 83% 21, 25 invenio_rdm_records/records/systemfields/statistics.py 27 2 93% 32-33 invenio_rdm_records/records/systemfields/tombstone.py 126 20 84% 41, 80, 131, 138-141, 162, 170-172, 177, 198, 212-213, 216-219, 225-226, 235 invenio_rdm_records/requests/__init__.py 8 0 100% invenio_rdm_records/requests/access/__init__.py 4 0 100% invenio_rdm_records/requests/access/models.py 49 14 71% 63, 67, 82, 87, 92, 116-135 invenio_rdm_records/requests/access/permissions.py 4 0 100% invenio_rdm_records/requests/access/requests.py 123 63 49% 48-54, 62-70, 78-84, 92-101, 109-114, 122-136, 144-195, 210-239, 244-260, 339-347, 351-358 invenio_rdm_records/requests/access/tasks.py 8 8 0% 7-21 invenio_rdm_records/requests/base.py 7 0 100% invenio_rdm_records/requests/community_inclusion.py 53 2 96% 70, 130 invenio_rdm_records/requests/community_submission.py 92 32 65% 53, 61-62, 82, 117-134, 150-164, 179-199, 250 invenio_rdm_records/requests/decorators.py 18 0 100% invenio_rdm_records/requests/entity_resolvers.py 91 23 75% 61, 69, 103, 107-120, 136-137, 147, 157, 161, 165-166, 170, 174, 198, 202, 206 invenio_rdm_records/requests/file_modification.py 46 15 67% 23-34, 38, 56-62, 102-103, 114 invenio_rdm_records/requests/quota_increase.py 42 14 67% 22-33, 41-50, 83-84, 95 invenio_rdm_records/requests/record_deletion.py 72 8 89% 35, 69-71, 119-125, 173 invenio_rdm_records/requests/subcommunities.py 7 0 100% invenio_rdm_records/requests/user_moderation/__init__.py 2 0 100% invenio_rdm_records/requests/user_moderation/actions.py 31 21 32% 29-53, 70-77, 92-95 invenio_rdm_records/requests/user_moderation/tasks.py 33 18 45% 22-33, 39-50, 56-62, 68-72 invenio_rdm_records/requests/user_moderation/utils.py 20 16 20% 15-44 invenio_rdm_records/resources/__init__.py 4 0 100% invenio_rdm_records/resources/args.py 8 0 100% invenio_rdm_records/resources/config.py 137 0 100% invenio_rdm_records/resources/deserializers/__init__.py 2 0 100% invenio_rdm_records/resources/deserializers/errors.py 1 0 100% invenio_rdm_records/resources/deserializers/rocrate/__init__.py 38 28 26% 23-32, 36-60 invenio_rdm_records/resources/deserializers/rocrate/schema.py 73 50 32% 16-18, 42-45, 58-59, 70-112, 118-127, 133-136 invenio_rdm_records/resources/errors.py 23 2 91% 45, 50 invenio_rdm_records/resources/iiif.py 165 36 78% 143, 152-154, 198, 207-210, 281, 295, 305, 325, 339-341, 350, 354-369, 384-398 invenio_rdm_records/resources/resources.py 347 59 83% 47, 107-111, 122-129, 148-153, 168, 177-183, 190-196, 244-252, 259-267, 274-280, 289-294, 301-308, 314-319, 328, 373-383, 389-394, 523-531, 583, 644-650, 658-667, 675-683, 691-699, 704-709, 717-722, 747-755, 760-766, 774-780, 788-796 invenio_rdm_records/resources/serializers/__init__.py 17 0 100% invenio_rdm_records/resources/serializers/bibtex/__init__.py 9 1 89% 28 invenio_rdm_records/resources/serializers/bibtex/schema.py 166 106 36% 83, 87-90, 94-116, 120-121, 130, 137, 144, 153-158, 165, 172, 179, 186, 190-194, 199-210, 229-236, 243-248, 252-257, 262, 288-314, 318-330, 333-338 invenio_rdm_records/resources/serializers/bibtex/schema_formats.py 27 0 100% invenio_rdm_records/resources/serializers/cff/__init__.py 8 2 75% 18-19 invenio_rdm_records/resources/serializers/cff/schema.py 148 113 24% 17-45, 50-57, 94-108, 112-127, 131-133, 137-138, 149-162, 166-176, 183-190, 199-208, 216-232, 239-243, 247-253 invenio_rdm_records/resources/serializers/codemeta/__init__.py 7 1 86% 19 invenio_rdm_records/resources/serializers/codemeta/schema.py 34 22 35% 29-50, 54-64 invenio_rdm_records/resources/serializers/crossref/__init__.py 26 16 38% 39, 58-106 invenio_rdm_records/resources/serializers/csl/__init__.py 63 4 94% 69, 91-93 invenio_rdm_records/resources/serializers/csl/schema.py 75 13 83% 64, 79, 83-84, 89-99, 112-113, 121-122 invenio_rdm_records/resources/serializers/csv/__init__.py 4 0 100% invenio_rdm_records/resources/serializers/datacite/__init__.py 19 3 84% 20, 37-38 invenio_rdm_records/resources/serializers/datacite/schema.py 600 379 37% 52-53, 76-86, 97-138, 160-167, 205-206, 210-219, 226-255, 259, 263, 269-281, 285-318, 322-327, 332-369, 373-472, 476-529, 533-554, 558-594, 599-659, 697, 717, 722-738, 756, 763, 768-773, 785, 817, 850-854, 870-901, 943-947, 962-1010, 1019-1036, 1044-1055, 1063-1065, 1069, 1103-1140 invenio_rdm_records/resources/serializers/datapackage/__init__.py 6 0 100% invenio_rdm_records/resources/serializers/datapackage/schema.py 65 46 29% 30-35, 39-53, 57-66, 70-84 invenio_rdm_records/resources/serializers/dcat/__init__.py 105 57 46% 58-94, 102-113, 130, 139-141, 147-151, 155-197, 209, 217 invenio_rdm_records/resources/serializers/dcat/schema.py 45 30 33% 25-52, 60-93 invenio_rdm_records/resources/serializers/dublincore/__init__.py 12 1 92% 20 invenio_rdm_records/resources/serializers/dublincore/schema.py 115 21 82% 67, 79, 92, 96, 101-107, 129-137, 151-152, 163, 167, 193, 210 invenio_rdm_records/resources/serializers/errors.py 2 0 100% invenio_rdm_records/resources/serializers/geojson/__init__.py 6 0 100% invenio_rdm_records/resources/serializers/geojson/schema.py 12 4 67% 24-36 invenio_rdm_records/resources/serializers/iiif/__init__.py 15 0 100% invenio_rdm_records/resources/serializers/iiif/schema.py 76 0 100% invenio_rdm_records/resources/serializers/marcxml/__init__.py 13 0 100% invenio_rdm_records/resources/serializers/marcxml/schema.py 298 98 67% 95-100, 126-144, 152-153, 157-164, 172-173, 180-184, 211-216, 227-228, 236-237, 241-244, 254-255, 271, 286, 300-302, 314-315, 337-355, 361-363, 374, 378, 394-405, 416-424, 433, 448-449, 459-460, 469, 478, 490-493, 500-501 invenio_rdm_records/resources/serializers/schemaorg/__init__.py 7 0 100% invenio_rdm_records/resources/serializers/schemaorg/schema.py 270 187 31% 34-54, 73-80, 91-92, 99, 113-148, 207-210, 214-224, 228-232, 236-237, 241-253, 257, 261, 270-278, 286-290, 294, 299-303, 310-316, 323-336, 347-405, 409-412, 416-419, 423-429, 433-434, 438-445, 449-454, 457, 462-475, 479-494, 504-507, 516, 520-524 invenio_rdm_records/resources/serializers/schemas.py 51 27 47% 18-19, 23-27, 38-56, 65-69, 82 invenio_rdm_records/resources/serializers/signposting/__init__.py 21 11 48% 18, 28-37 invenio_rdm_records/resources/serializers/signposting/schema.py 107 18 83% 38-44, 59, 136-140, 178, 191-195, 229-230, 238 invenio_rdm_records/resources/serializers/ui/__init__.py 6 0 100% invenio_rdm_records/resources/serializers/ui/fields.py 55 6 89% 72-87, 100-101, 126 invenio_rdm_records/resources/serializers/ui/schema.py 254 99 61% 39-42, 70-77, 82, 84-85, 102, 107-114, 217-250, 254-274, 278-293, 308-310, 313-314, 317-318, 323, 348-349, 354-361, 446-458, 468 invenio_rdm_records/resources/serializers/utils.py 29 17 41% 32, 43-54, 62-69 invenio_rdm_records/resources/stats/__init__.py 2 2 0% 6-14 invenio_rdm_records/resources/stats/event_builders.py 50 50 0% 14-155 invenio_rdm_records/secret_links/__init__.py 3 0 100% invenio_rdm_records/secret_links/errors.py 6 1 83% 20 invenio_rdm_records/secret_links/models.py 84 27 68% 78, 83-86, 91-94, 99-104, 117, 121, 149-156, 167-178 invenio_rdm_records/secret_links/permissions.py 4 0 100% invenio_rdm_records/secret_links/serializers.py 41 17 59% 63-76, 85-95 invenio_rdm_records/secret_links/signals.py 6 0 100% invenio_rdm_records/services/__init__.py 8 0 100% invenio_rdm_records/services/access/__init__.py 2 0 100% invenio_rdm_records/services/access/service.py 379 219 42% 65-66, 70-71, 77-78, 89, 94, 99, 104, 109, 121, 142, 186, 207, 221-222, 321, 382, 418-439, 444-520, 529-547, 566-631, 640-657, 667-706, 710-732, 736-745, 755-808, 821-855, 863-921, 938-971, 985-998, 1008-1019, 1039-1103, 1116-1150 invenio_rdm_records/services/communities/__init__.py 2 0 100% invenio_rdm_records/services/communities/components.py 24 1 96% 47 invenio_rdm_records/services/communities/moderation.py 40 8 80% 19, 23, 27, 43-50 invenio_rdm_records/services/communities/service.py 192 37 81% 69, 86, 307-308, 314, 378, 442-492, 503-547 invenio_rdm_records/services/community_inclusion/__init__.py 2 0 100% invenio_rdm_records/services/community_inclusion/service.py 28 2 93% 41, 55 invenio_rdm_records/services/community_records/__init__.py 2 0 100% invenio_rdm_records/services/community_records/service.py 51 4 92% 79-80, 137-138 invenio_rdm_records/services/components/__init__.py 14 0 100% invenio_rdm_records/services/components/access.py 36 0 100% invenio_rdm_records/services/components/custom_fields.py 5 0 100% invenio_rdm_records/services/components/files.py 23 3 87% 53-55 invenio_rdm_records/services/components/internal_notes.py 34 9 74% 49-58, 62-63 invenio_rdm_records/services/components/metadata.py 22 0 100% invenio_rdm_records/services/components/pids.py 148 29 80% 63-85, 93, 135-138, 191-194, 267-268, 310, 372-377 invenio_rdm_records/services/components/record_deletion.py 34 9 74% 60, 64-71, 75-76, 80-81 invenio_rdm_records/services/components/record_files.py 8 2 75% 20-21 invenio_rdm_records/services/components/review.py 34 9 74% 34-45, 52-53, 72-76 invenio_rdm_records/services/components/signal.py 6 6 0% 6-17 invenio_rdm_records/services/components/vcs.py 15 15 0% 6-34 invenio_rdm_records/services/components/verified.py 48 8 83% 38, 44, 60-67 invenio_rdm_records/services/config.py 263 3 99% 297, 317-318 invenio_rdm_records/services/customizations.py 31 0 100% invenio_rdm_records/services/decorators.py 13 4 69% 18-25 invenio_rdm_records/services/dummy.py 10 3 70% 12, 28, 32 invenio_rdm_records/services/errors.py 68 8 88% 44, 49, 170, 175, 187, 192-198 invenio_rdm_records/services/facets.py 22 1 95% 95 invenio_rdm_records/services/files/__init__.py 2 0 100% invenio_rdm_records/services/files/service.py 14 0 100% invenio_rdm_records/services/generators.py 215 26 88% 58, 71-76, 92, 108, 136, 169, 173, 184, 205, 244, 257, 266, 285, 298, 308, 324, 350, 386, 402, 410-413 invenio_rdm_records/services/github/__init__.py 0 0 100% invenio_rdm_records/services/github/metadata.py 83 83 0% 6-180 invenio_rdm_records/services/github/release.py 116 116 0% 7-247 invenio_rdm_records/services/github/utils.py 4 4 0% 6-19 invenio_rdm_records/services/iiif/__init__.py 2 0 100% invenio_rdm_records/services/iiif/converter.py 63 45 29% 11, 15-17, 27, 32, 40, 57-69, 75-99, 103-115 invenio_rdm_records/services/iiif/service.py 74 26 65% 19-21, 26, 30-32, 87-112, 124 invenio_rdm_records/services/iiif/storage.py 69 40 42% 29-34, 38, 42, 46, 65-71, 75-88, 95, 100-114, 118, 131, 135-148 invenio_rdm_records/services/iiif/tasks.py 31 23 26% 17-30, 40-56 invenio_rdm_records/services/permissions.py 99 0 100% invenio_rdm_records/services/pids/__init__.py 3 0 100% invenio_rdm_records/services/pids/errors.py 8 2 75% 17, 27 invenio_rdm_records/services/pids/manager.py 162 27 83% 32-33, 62, 79, 164, 171, 198-199, 217, 221, 236, 262, 283, 295-297, 301-310, 323-324, 338-341 invenio_rdm_records/services/pids/providers/__init__.py 6 0 100% invenio_rdm_records/services/pids/providers/base.py 82 13 84% 37, 42, 67, 81, 100-101, 106, 119, 128, 136, 155-160, 221 invenio_rdm_records/services/pids/providers/crossref.py 140 100 29% 39, 45, 49-50, 57-78, 86-111, 120-186, 220, 225, 229, 239-252, 262-271, 280-300, 310-344, 350-356 invenio_rdm_records/services/pids/providers/datacite.py 152 59 61% 57, 65, 70, 77, 87, 97-105, 138-155, 184, 186, 190, 197-203, 216, 218, 222, 229-235, 238, 244-248, 259, 262-268, 291-293, 311-314, 318-324 invenio_rdm_records/services/pids/providers/external.py 48 6 88% 32-35, 70, 81-85 invenio_rdm_records/services/pids/providers/oai.py 15 1 93% 44 invenio_rdm_records/services/pids/service.py 103 29 72% 69-92, 122-128, 140-147, 175, 269 invenio_rdm_records/services/pids/tasks.py 6 0 100% invenio_rdm_records/services/queryparser.py 5 3 40% 11-13 invenio_rdm_records/services/request_policies.py 133 40 70% 27, 31, 99-100, 106-107, 111-115, 126-128, 132, 143-149, 156-170, 185-186, 190, 227, 238, 261-268, 277-283, 299-305 invenio_rdm_records/services/requests/__init__.py 2 0 100% invenio_rdm_records/services/requests/service.py 14 7 50% 21, 34-45 invenio_rdm_records/services/result_items.py 100 45 55% 19-21, 39, 45, 64, 85, 130-136, 141-154, 158-162, 177-181, 185, 189, 194-203, 207-221 invenio_rdm_records/services/results.py 57 22 61% 29, 33, 37, 41, 49-50, 54, 58, 62-71, 75, 119-120, 124-133, 137 invenio_rdm_records/services/review/__init__.py 3 0 100% invenio_rdm_records/services/review/links.py 10 2 80% 16, 25 invenio_rdm_records/services/review/policy.py 4 1 75% 27 invenio_rdm_records/services/review/service.py 112 46 59% 58, 76, 79, 85, 116-117, 124-134, 151-160, 171-211, 218, 227, 246, 261-262 invenio_rdm_records/services/schemas/__init__.py 4 0 100% invenio_rdm_records/services/schemas/access.py 41 6 85% 30, 36-37, 46, 63, 77 invenio_rdm_records/services/schemas/community_records.py 21 2 90% 44, 48 invenio_rdm_records/services/schemas/fields.py 21 4 81% 25-26, 41-42 invenio_rdm_records/services/schemas/files.py 52 0 100% invenio_rdm_records/services/schemas/metadata.py 179 39 78% 72-78, 117-118, 138, 140, 152-161, 187, 207-211, 234, 239, 244-252, 274, 282-289, 304, 338-344 invenio_rdm_records/services/schemas/parent/__init__.py 28 2 93% 24-25 invenio_rdm_records/services/schemas/parent/access.py 44 0 100% invenio_rdm_records/services/schemas/parent/communities.py 9 0 100% invenio_rdm_records/services/schemas/pids.py 6 0 100% invenio_rdm_records/services/schemas/quota.py 6 0 100% invenio_rdm_records/services/schemas/record.py 70 2 97% 40, 111 invenio_rdm_records/services/schemas/record_communities.py 24 0 100% invenio_rdm_records/services/schemas/review.py 12 0 100% invenio_rdm_records/services/schemas/stats.py 10 0 100% invenio_rdm_records/services/schemas/tombstone.py 21 0 100% invenio_rdm_records/services/schemas/utils.py 17 17 0% 7-34 invenio_rdm_records/services/schemas/versions.py 4 0 100% invenio_rdm_records/services/search_params.py 45 14 69% 23, 50-53, 67-68, 71-74, 103-107 invenio_rdm_records/services/services.py 325 164 50% 111, 124-157, 163-169, 181-182, 204, 229, 237, 243, 313-352, 357-384, 396-401, 406-442, 454-467, 479-492, 504-508, 528, 594, 608, 631-632, 637, 678-684, 697-700, 732, 753-757, 769-800, 814-840, 845-893, 897-902, 909-923 invenio_rdm_records/services/signals/__init__.py 2 0 100% invenio_rdm_records/services/signals/signals.py 4 0 100% invenio_rdm_records/services/sort.py 8 2 75% 23-24 invenio_rdm_records/services/stats/__init__.py 2 2 0% 6-8 invenio_rdm_records/services/stats/permissions.py 16 16 0% 6-52 invenio_rdm_records/services/storage/service.py 94 65 31% 36-50, 56-59, 63-69, 73-81, 85, 93-97, 102, 106, 110-120, 128-136, 143-165, 169-199, 203-204, 208-218 invenio_rdm_records/services/tasks.py 54 34 37% 41-54, 60-90, 96 invenio_rdm_records/services/vcs/__init__.py 0 0 100% invenio_rdm_records/services/vcs/metadata.py 83 83 0% 6-183 invenio_rdm_records/services/vcs/release.py 199 199 0% 7-467 invenio_rdm_records/services/vcs/utils.py 4 4 0% 6-19 invenio_rdm_records/tokens/__init__.py 3 0 100% invenio_rdm_records/tokens/errors.py 18 0 100% invenio_rdm_records/tokens/permissions.py 5 0 100% invenio_rdm_records/tokens/resource_access.py 41 28 32% 36-90 invenio_rdm_records/tokens/scopes.py 4 0 100% invenio_rdm_records/utils.py 90 40 56% 30-50, 72, 94-95, 97-98, 101-115, 125-142, 148-149 invenio_rdm_records/views.py 71 16 77% 76-77, 118-124, 129-150, 166-175 invenio_rdm_records/webpack.py 2 2 0% 9-11 TOTAL 13619 5600 59% =========== 132 passed, 3 skipped, 502 warnings in 185.81s (0:03:05) =========== Container docker_services_cli-postgresql-1 Stopping Container docker_services_cli-rabbitmq-1 Stopping Container docker_services_cli-opensearch-1 Stopping Container docker_services_cli-redis-1 Stopping 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-postgresql-1 Stopped Container docker_services_cli-postgresql-1 Removing Container docker_services_cli-postgresql-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 === Part 2 === opensearch Pulling postgresql Pulling redis Pulling rabbitmq Pulling redis Pulled postgresql Pulled rabbitmq Pulled opensearch Pulled Network docker_services_cli_default Creating Network docker_services_cli_default Created Container docker_services_cli-opensearch-1 Creating Container docker_services_cli-rabbitmq-1 Creating Container docker_services_cli-redis-1 Creating Container docker_services_cli-postgresql-1 Creating Container docker_services_cli-opensearch-1 Created Container docker_services_cli-redis-1 Created Container docker_services_cli-rabbitmq-1 Created Container docker_services_cli-postgresql-1 Created Container docker_services_cli-postgresql-1 Starting Container docker_services_cli-opensearch-1 Starting Container docker_services_cli-rabbitmq-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/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched configfile: setup.cfg plugins: flask-1.3.0, black-0.6.0, github-actions-annotate-failures-0.4.1, mock-3.15.1, pycodestyle-2.5.0, cov-7.1.0, invenio-4.0.1, pydocstyle-2.4.0, isort-4.0.0, Faker-40.23.0 collected 491 items tests/resources/test_resources_review.py [ 2%] tests/resources/test_resources_search.py [ 3%] tests/resources/test_resources_user_access.py [ 5%] tests/resources/test_rocrate.py [ 5%] tests/resources/test_serialized_links.py [ 7%] tests/resources/test_signposting.py [ 8%] tests/resources/test_stats_event_builders.py [ 9%] tests/resources/vocabularies/test_affiliations_vocabulary.py [ 10%] tests/resources/vocabularies/test_awards_vocabulary.py [ 11%] tests/resources/vocabularies/test_funders_vocabulary.py [ 12%] tests/resources/vocabularies/test_names_vocabulary.py [ 13%] tests/resources/vocabularies/test_subjects_vocabulary.py ..s [ 14%] tests/secret_links/test_secret_links.py [ 16%] tests/secret_links/test_sharing.py [ 17%] tests/secret_links/test_token_serializers.py [ 18%] tests/services/components/test_access_component.py ssss [ 20%] tests/services/components/test_internal_notes_component.py [ 20%] tests/services/components/test_metadata_component.py [ 21%] tests/services/components/test_pids_component.py [ 26%] tests/services/components/test_relations_component.py [ 26%] tests/services/components/test_signal_component.py [ 27%] tests/services/components/test_verified_component.py [ 28%] tests/services/files/test_deleted_record_files.py [ 28%] tests/services/files/test_metadata_files.py s [ 29%] tests/services/files/test_revert_of_deleted_files_in_published_record.py . [ 29%] [ 30%] tests/services/files/test_zip_listing_extraction.py [ 31%] tests/services/pids/providers/test_crossref_additional_prefix.py [ 32%] tests/services/pids/providers/test_crossref_pid_provider.py [ 35%] [ 35%] tests/services/pids/providers/test_crossref_prefix_extraction.py .... [ 36%] tests/services/pids/providers/test_crossref_prefix_validation.py [ 37%] tests/services/pids/providers/test_crossref_republish.py [ 38%] tests/services/pids/providers/test_datacite_pid_provider.py [ 40%] [ 40%] tests/services/pids/providers/test_datacite_prefix_validation.py [ 42%] [ 42%] tests/services/pids/providers/test_external_pid_provider.py [ 43%] tests/services/pids/providers/test_oai_invenio_pid_provider.py [ 44%] tests/services/pids/test_parent_child_consistency.py [ 45%] tests/services/pids/test_pids_service.py [ 51%] tests/services/pids/test_pids_tasks.py [ 54%] tests/services/schemas/test_access.py ........... [ 56%] tests/services/schemas/test_additional_description.py ........s [ 58%] tests/services/schemas/test_additional_title.py ........ss [ 60%] tests/services/schemas/test_creator_contributor.py [ 64%] [ 64%] tests/services/schemas/test_dates.py .......... [ 67%] tests/services/schemas/test_formats.py [ 68%] tests/services/schemas/test_funding.py [ 70%] tests/services/schemas/test_identifier.py [ 71%] tests/services/schemas/test_languages.py [ 72%] tests/services/schemas/test_location.py [ 75%] tests/services/schemas/test_metadata.py [ 76%] tests/services/schemas/test_pids.py ....... [ 78%] tests/services/schemas/test_publication_date.py ss....... [ 80%] tests/services/schemas/test_rdm_record_schema.py [ 81%] tests/services/schemas/test_reference.py [ 83%] tests/services/schemas/test_related_identifier.py [ 85%] tests/services/schemas/test_resource_type.py ..... [ 86%] tests/services/schemas/test_rights.py [ 89%] tests/services/schemas/test_sizes.py [ 91%] tests/services/schemas/test_utils.py .. [ 91%] tests/services/schemas/test_version.py [ 93%] tests/services/schemas/test_vocabulary.py .... [ 94%] tests/services/test_collections_tasks.py [ 94%] tests/services/test_deletion_policy.py [ 96%] tests/services/test_generators.py [ 97%] tests/services/test_oai_service.py [ 99%] tests/services/test_permissions_policy.py [100%] =============================== warnings summary =============================== invenio_rdm_records/services/facets.py:72 warn( result = self._write_client.setex( self.init_app(app) /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_records/api.py:302: SAWarning: nested transaction already deassociated from connection with db.session.begin_nested(): /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_db/uow.py:189: SAWarning: nested transaction already deassociated from connection self.session.commit() tests/resources/test_serialized_links.py::test_draft_links /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/pytest_invenio/fixtures.py:617: SAWarning: nested transaction already deassociated from connection session.rollback() tests/secret_links/test_sharing.py::test_permission_levels tests/secret_links/test_sharing.py::test_read_restricted_record_with_secret_link tests/services/pids/providers/test_crossref_additional_prefix.py::test_crossref_republish_with_additional_prefix tests/services/pids/providers/test_crossref_republish.py::test_republish_crossref_additional_prefix tests/services/pids/providers/test_crossref_republish.py::test_republish_crossref_main_prefix tests/services/pids/test_pids_service.py::test_pids_records_updates_external_to_managed tests/services/pids/test_pids_tasks.py::test_register_restricted_pid tests/services/pids/test_pids_tasks.py::test_update_pid tests/services/pids/test_pids_tasks.py::test_update_pid_crossref /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_records/api.py:410: SAWarning: nested transaction already deassociated from connection with db.session.begin_nested(): tests/secret_links/test_sharing.py::test_read_restricted_record_with_secret_link /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/secret_links/test_sharing.py:196: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/services/files/test_revert_of_deleted_files_in_published_record.py::test_revert_of_deleted_files_in_published_record /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_files_rest/models.py:714: SAWarning: Object of type not in session, add operation along 'Bucket.objects' will not proceed (This warning originated from the Session 'autoflush' process, which was invoked automatically in response to a user-initiated operation. Consider using ``no_autoflush`` context manager if this warning happened while initializing objects.) return db.session.query(cls).filter_by(id=file_id).one_or_none() tests/services/files/test_revert_of_deleted_files_in_published_record.py::test_revert_of_deleted_files_in_published_record /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_records/api.py:463: SAWarning: nested transaction already deassociated from connection with db.session.begin_nested(): tests/services/files/test_revert_of_deleted_files_in_published_record.py::test_revert_of_deleted_files_in_published_record /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_records/api.py:522: SAWarning: nested transaction already deassociated from connection with db.session.begin_nested(): tests/services/pids/test_pids_tasks.py::test_register_pid_crossref tests/services/pids/test_pids_tasks.py::test_update_pid_crossref tests/services/pids/test_pids_tasks.py::test_full_record_register_crossref /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/flask_resources/serializers/base.py:56: RemovedInMarshmallow4Warning: The `context` parameter is deprecated and will be removed in marshmallow 4.0. Use `contextvars.ContextVar` to pass context instead self.object_schema = object_schema_cls( tests/services/pids/test_pids_tasks.py::test_register_pid_crossref tests/services/pids/test_pids_tasks.py::test_update_pid_crossref tests/services/pids/test_pids_tasks.py::test_full_record_register_crossref warn( tests/services/pids/test_pids_tasks.py::test_register_pid_crossref tests/services/pids/test_pids_tasks.py::test_update_pid_crossref tests/services/pids/test_pids_tasks.py::test_full_record_register_crossref /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/flask_resources/parsers/schema.py:61: RemovedInMarshmallow4Warning: The `context` parameter is deprecated and will be removed in marshmallow 4.0. Use `contextvars.ContextVar` to pass context instead super().__init__(**kwargs) tests/services/test_collections_tasks.py::test_update_collections_size /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_collections/models.py:187: LegacyAPIWarning: The Query.get() method is considered legacy as of the 1.x series of SQLAlchemy and becomes a legacy construct in 2.0. The method is now available as Session.get() (deprecated since: 2.0) (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9) return cls.query.get(id_) tests/services/test_deletion_policy.py::test_grace_period_policy /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/services/test_deletion_policy.py:33: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/services/test_deletion_policy.py::test_deletion_policy_fallback_to_request /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/services/test_deletion_policy.py:91: SAWarning: nested transaction already deassociated from connection db.session.commit() ================================ tests coverage ================================ _______________ coverage: platform linux, python 3.14.2-final-0 ________________ Name Stmts Miss Cover Missing invenio_rdm_records/__init__.py 3 0 100% invenio_rdm_records/access_requests_ui/__init__.py 0 0 100% invenio_rdm_records/access_requests_ui/views.py 31 31 0% 6-60 invenio_rdm_records/administration/__init__.py 0 0 100% invenio_rdm_records/administration/views/__init__.py 0 0 100% invenio_rdm_records/administration/views/oai.py 52 0 100% invenio_rdm_records/alembic/0cf260eb8e97_create_table_for_secret_links.py 13 13 0% 6-42 invenio_rdm_records/alembic/4a15e8671f4d_create_rdm_records_tables.py 30 30 0% 6-292 invenio_rdm_records/alembic/8ed1a438601c_migrate_secret_links.py 8 8 0% 6-25 invenio_rdm_records/alembic/9e0ac518b9df_create_records_communities_m2m_table.py 11 11 0% 6-50 invenio_rdm_records/alembic/88d1463de5c0_create_parent_record_table.py 30 30 0% 6-141 invenio_rdm_records/alembic/912251a56a49_change_datetime_types.py 23 23 0% 7-82 invenio_rdm_records/alembic/2186256e8d9b_add_deletion_status_to_rdmrecords.py 31 31 0% 6-76 invenio_rdm_records/alembic/1746626978_drop_rdmrecordquota_user_id_unique_.py 9 9 0% 6-27 invenio_rdm_records/alembic/1777274324_merge_pidrelations_tables_removal.py 6 6 0% 8-18 invenio_rdm_records/alembic/1777278349_column_defaults_and_files_indices.py 65 65 0% 7-321 invenio_rdm_records/alembic/1780576627_create_record_id_index_in_rdm_parents_community.py 10 10 0% 6-31 invenio_rdm_records/alembic/__init__.py 0 0 100% invenio_rdm_records/alembic/a2a6819f14f1_create_files_and_media_files_versioning_.py 26 26 0% 6-171 invenio_rdm_records/alembic/a6bfa06b1a6d_add_origin_and_description_to_secret_links.py 12 12 0% 6-31 invenio_rdm_records/alembic/a3957490361d_remove_pidrelations_tables.py 14 14 0% 6-28 invenio_rdm_records/alembic/b822ba22c688_create_rdm_records_branch.py 8 8 0% 7-20 invenio_rdm_records/alembic/cfcb8cb78708_create_access_request_tokens_table.py 13 13 0% 6-47 invenio_rdm_records/alembic/faf0cefa79a0_create_record_quota_tables.py 13 13 0% 6-62 invenio_rdm_records/alembic/ff9bec971d30_add_indexes.py 31 31 0% 6-132 invenio_rdm_records/alembic/ff860d48fb4b_create_media_files_table.py 28 28 0% 6-180 invenio_rdm_records/alembic/ffd725001655_add_field_to_record_consent_to_share_.py 10 10 0% 6-31 invenio_rdm_records/auditlog/__init__.py 0 0 100% invenio_rdm_records/auditlog/actions.py 36 0 100% invenio_rdm_records/auditlog/context.py 15 9 40% 16-20, 28-35 invenio_rdm_records/checks/__init__.py 0 0 100% invenio_rdm_records/checks/requests.py 72 72 0% 6-155 invenio_rdm_records/cli.py 187 187 0% 8-445 invenio_rdm_records/collections/__init__.py 0 0 100% invenio_rdm_records/collections/tasks.py 16 2 88% 26-27 invenio_rdm_records/config.py 210 0 100% invenio_rdm_records/contrib/__init__.py 0 0 100% invenio_rdm_records/contrib/codemeta/__init__.py 2 0 100% invenio_rdm_records/contrib/codemeta/custom_fields.py 10 0 100% invenio_rdm_records/contrib/codemeta/processors.py 15 12 20% 13-30 invenio_rdm_records/contrib/imprint/__init__.py 2 0 100% invenio_rdm_records/contrib/imprint/custom_fields.py 15 2 87% 27, 45 invenio_rdm_records/contrib/imprint/processors.py 56 41 27% 22-39, 54-91 invenio_rdm_records/contrib/journal/__init__.py 3 0 100% invenio_rdm_records/contrib/journal/custom_fields.py 15 2 87% 27, 45 invenio_rdm_records/contrib/journal/processors.py 107 81 24% 21-44, 52-84, 99-120, 135-152, 160-184 invenio_rdm_records/contrib/journal/sort.py 2 0 100% invenio_rdm_records/contrib/meeting/__init__.py 3 0 100% invenio_rdm_records/contrib/meeting/custom_fields.py 17 2 88% 35, 60 invenio_rdm_records/contrib/meeting/processors.py 31 21 32% 14-34, 49-60 invenio_rdm_records/contrib/meeting/sort.py 2 0 100% invenio_rdm_records/contrib/thesis/__init__.py 2 2 0% 6-12 invenio_rdm_records/contrib/thesis/custom_fields.py 14 14 0% 13-59 invenio_rdm_records/ext.py 122 5 96% 139, 314-315, 334-335 invenio_rdm_records/fixtures/__init__.py 25 25 0% 7-75 invenio_rdm_records/fixtures/communities.py 12 12 0% 6-27 invenio_rdm_records/fixtures/demo.py 112 112 0% 7-351 invenio_rdm_records/fixtures/fixture.py 28 28 0% 6-60 invenio_rdm_records/fixtures/records.py 5 5 0% 7-17 invenio_rdm_records/fixtures/tasks.py 118 118 0% 8-234 invenio_rdm_records/fixtures/users.py 44 44 0% 7-79 invenio_rdm_records/fixtures/vocabularies.py 212 212 0% 10-432 invenio_rdm_records/jobs/__init__.py 0 0 100% invenio_rdm_records/jobs/jobs.py 4 0 100% invenio_rdm_records/notifications/__init__.py 0 0 100% invenio_rdm_records/notifications/builders.py 151 12 92% 75, 108, 140, 173, 207, 252, 285, 320, 358, 403, 438, 563 invenio_rdm_records/notifications/vcs.py 54 54 0% 10-164 invenio_rdm_records/oai.py 59 59 0% 7-153 invenio_rdm_records/oaiserver/__init__.py 0 0 100% invenio_rdm_records/oaiserver/resources/__init__.py 0 0 100% invenio_rdm_records/oaiserver/resources/config.py 19 0 100% invenio_rdm_records/oaiserver/resources/resources.py 46 14 70% 50-55, 61-65, 72-76, 84-89, 95-99, 105-109 invenio_rdm_records/oaiserver/services/__init__.py 0 0 100% invenio_rdm_records/oaiserver/services/config.py 28 0 100% invenio_rdm_records/oaiserver/services/errors.py 17 3 82% 24, 37, 45 invenio_rdm_records/oaiserver/services/permissions.py 9 0 100% invenio_rdm_records/oaiserver/services/results.py 59 22 63% 33, 72-78, 82, 86, 91, 96-107, 112, 123-134 invenio_rdm_records/oaiserver/services/schema.py 18 0 100% invenio_rdm_records/oaiserver/services/services.py 115 30 74% 37-41, 45-49, 86, 107, 131, 143-146, 155-181, 222-224, 228-246 invenio_rdm_records/oaiserver/services/uow.py 14 3 79% 28-29, 33 invenio_rdm_records/proxies.py 18 0 100% invenio_rdm_records/records/__init__.py 2 0 100% invenio_rdm_records/records/api.py 147 9 94% 311, 366, 380-390, 586, 611-612 invenio_rdm_records/records/dumpers/__init__.py 8 0 100% invenio_rdm_records/records/dumpers/access.py 22 8 64% 36-37, 41-47 invenio_rdm_records/records/dumpers/combined_subjects.py 21 0 100% invenio_rdm_records/records/dumpers/edtf.py 50 4 92% 55-57, 122-123 invenio_rdm_records/records/dumpers/locations.py 24 15 38% 31-42, 49-52 invenio_rdm_records/records/dumpers/pids.py 17 13 24% 22-28, 32-39 invenio_rdm_records/records/dumpers/statistics.py 21 2 90% 44-45 invenio_rdm_records/records/dumpers/subject_hierarchy.py 31 16 48% 67-84, 89-93 invenio_rdm_records/records/jsonschemas/__init__.py 0 0 100% invenio_rdm_records/records/mappings/__init__.py 0 0 100% invenio_rdm_records/records/mappings/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/mappings/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/mappings/v7/__init__.py 0 0 100% invenio_rdm_records/records/models.py 96 1 99% 185 invenio_rdm_records/records/processors/base.py 8 3 62% 12, 16, 21 invenio_rdm_records/records/processors/tiles.py 74 53 28% 23, 43, 48, 53-55, 59-78, 88-138, 148-179 invenio_rdm_records/records/stats/__init__.py 2 0 100% invenio_rdm_records/records/stats/api.py 25 3 88% 21, 28, 44 invenio_rdm_records/records/stats/templates/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/v7/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/v7/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/v7/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/v7/__init__.py 0 0 100% invenio_rdm_records/records/systemfields/__init__.py 8 0 100% invenio_rdm_records/records/systemfields/access/__init__.py 8 0 100% invenio_rdm_records/records/systemfields/access/access_settings.py 10 1 90% 28 invenio_rdm_records/records/systemfields/access/embargo.py 62 22 65% 19, 33, 38, 46-52, 56-58, 74-79, 85-88, 96, 106, 117 invenio_rdm_records/records/systemfields/access/field/__init__.py 3 0 100% invenio_rdm_records/records/systemfields/access/field/parent.py 112 22 80% 66, 86, 101-106, 140-141, 146-147, 152-153, 157-158, 171, 206-213, 226 invenio_rdm_records/records/systemfields/access/field/record.py 103 11 89% 87-91, 122-123, 140-143, 147-149 invenio_rdm_records/records/systemfields/access/grants.py 122 32 74% 43-45, 48-50, 53, 89-90, 96, 106-115, 123-126, 139-147, 186, 205-209, 223, 228, 238, 242, 258, 271-272 invenio_rdm_records/records/systemfields/access/links.py 62 13 79% 28, 40, 46, 51, 57, 61, 65, 76, 92-93, 97-100 invenio_rdm_records/records/systemfields/access/owners.py 50 15 70% 28, 31-33, 36, 49, 60, 63, 73, 77-80, 84, 88, 92 invenio_rdm_records/records/systemfields/access/protection.py 44 9 80% 39-40, 58-59, 69, 76-79, 83 invenio_rdm_records/records/systemfields/deletion_status.py 61 6 90% 36, 45, 54, 58, 67, 75 invenio_rdm_records/records/systemfields/draft_status.py 25 2 92% 92-93 invenio_rdm_records/records/systemfields/has_draftcheck.py 21 0 100% invenio_rdm_records/records/systemfields/is_verified.py 12 1 92% 21 invenio_rdm_records/records/systemfields/statistics.py 27 2 93% 32-33 invenio_rdm_records/records/systemfields/tombstone.py 126 17 87% 41, 74, 80, 131, 138-141, 154, 156, 162, 171, 177, 216-219, 225-226 invenio_rdm_records/requests/__init__.py 8 0 100% invenio_rdm_records/requests/access/__init__.py 4 0 100% invenio_rdm_records/requests/access/models.py 49 14 71% 63, 67, 82, 87, 92, 116-135 invenio_rdm_records/requests/access/permissions.py 4 0 100% invenio_rdm_records/requests/access/requests.py 123 63 49% 48-54, 62-70, 78-84, 92-101, 109-114, 122-136, 144-195, 210-239, 244-260, 339-347, 351-358 invenio_rdm_records/requests/access/tasks.py 8 8 0% 7-21 invenio_rdm_records/requests/base.py 7 0 100% invenio_rdm_records/requests/community_inclusion.py 53 19 64% 39-42, 52-88, 130 invenio_rdm_records/requests/community_submission.py 92 32 65% 53, 61-62, 82, 117-134, 150-164, 179-199, 250 invenio_rdm_records/requests/decorators.py 18 0 100% invenio_rdm_records/requests/entity_resolvers.py 91 23 75% 61, 69, 103, 107-120, 136-137, 147, 157, 161, 165-166, 170, 174, 198, 202, 206 invenio_rdm_records/requests/file_modification.py 46 15 67% 23-34, 38, 56-62, 102-103, 114 invenio_rdm_records/requests/quota_increase.py 42 14 67% 22-33, 41-50, 83-84, 95 invenio_rdm_records/requests/record_deletion.py 72 34 53% 32-45, 49, 62-71, 79-111, 119-125, 173 invenio_rdm_records/requests/subcommunities.py 7 0 100% invenio_rdm_records/requests/user_moderation/__init__.py 2 0 100% invenio_rdm_records/requests/user_moderation/actions.py 31 21 32% 29-53, 70-77, 92-95 invenio_rdm_records/requests/user_moderation/tasks.py 33 18 45% 22-33, 39-50, 56-62, 68-72 invenio_rdm_records/requests/user_moderation/utils.py 20 16 20% 15-44 invenio_rdm_records/resources/__init__.py 4 0 100% invenio_rdm_records/resources/args.py 8 0 100% invenio_rdm_records/resources/config.py 137 6 96% 71-73, 81-83 invenio_rdm_records/resources/deserializers/__init__.py 2 0 100% invenio_rdm_records/resources/deserializers/errors.py 1 0 100% invenio_rdm_records/resources/deserializers/rocrate/__init__.py 38 0 100% invenio_rdm_records/resources/deserializers/rocrate/schema.py 73 1 99% 136 invenio_rdm_records/resources/errors.py 23 3 87% 22, 45, 50 invenio_rdm_records/resources/iiif.py 165 69 58% 142-143, 151-155, 172-173, 189, 198, 207-210, 219-223, 232-236, 259-308, 325, 339-341, 350, 354-369, 384-398 invenio_rdm_records/resources/resources.py 347 89 74% 47, 107-111, 122-129, 148-153, 168, 177-183, 190-196, 206-213, 220-237, 244-252, 259-267, 274-280, 289-294, 346-353, 360-367, 373-383, 389-394, 422-429, 436-449, 455-465, 473-483, 489-495, 523-531, 562-568, 574-579, 583, 590-596, 601-606, 613-617, 644-650, 675-683, 691-699, 704-709, 717-722, 825-831, 841-849 invenio_rdm_records/resources/serializers/__init__.py 17 0 100% invenio_rdm_records/resources/serializers/bibtex/__init__.py 9 1 89% 28 invenio_rdm_records/resources/serializers/bibtex/schema.py 166 106 36% 83, 87-90, 94-116, 120-121, 130, 137, 144, 153-158, 165, 172, 179, 186, 190-194, 199-210, 229-236, 243-248, 252-257, 262, 288-314, 318-330, 333-338 invenio_rdm_records/resources/serializers/bibtex/schema_formats.py 27 0 100% invenio_rdm_records/resources/serializers/cff/__init__.py 8 2 75% 18-19 invenio_rdm_records/resources/serializers/cff/schema.py 148 113 24% 17-45, 50-57, 94-108, 112-127, 131-133, 137-138, 149-162, 166-176, 183-190, 199-208, 216-232, 239-243, 247-253 invenio_rdm_records/resources/serializers/codemeta/__init__.py 7 1 86% 19 invenio_rdm_records/resources/serializers/codemeta/schema.py 34 22 35% 29-50, 54-64 invenio_rdm_records/resources/serializers/crossref/__init__.py 26 1 96% 39 invenio_rdm_records/resources/serializers/csl/__init__.py 63 13 79% 69, 91-93, 140-157, 164 invenio_rdm_records/resources/serializers/csl/schema.py 75 13 83% 64, 79, 83-84, 89-99, 112-113, 121-122 invenio_rdm_records/resources/serializers/csv/__init__.py 4 0 100% invenio_rdm_records/resources/serializers/datacite/__init__.py 19 3 84% 20, 37-38 invenio_rdm_records/resources/serializers/datacite/schema.py 600 266 56% 116-117, 131, 162, 205-206, 210-219, 226-255, 259, 263, 269-281, 285-318, 322-327, 332-369, 373-472, 476-529, 533-554, 558-594, 599-659, 697, 756, 763, 768-773, 785, 943-947, 975-1008, 1031-1032, 1063-1065, 1069, 1114-1115 invenio_rdm_records/resources/serializers/datapackage/__init__.py 6 0 100% invenio_rdm_records/resources/serializers/datapackage/schema.py 65 46 29% 30-35, 39-53, 57-66, 70-84 invenio_rdm_records/resources/serializers/dcat/__init__.py 105 84 20% 36-37, 47-54, 58-94, 98-143, 147-151, 155-197, 201-221 invenio_rdm_records/resources/serializers/dcat/schema.py 45 36 20% 22-52, 56-93 invenio_rdm_records/resources/serializers/dublincore/__init__.py 12 1 92% 20 invenio_rdm_records/resources/serializers/dublincore/schema.py 115 80 30% 59-69, 73-81, 85-115, 119-139, 143-154, 158-178, 182-187, 191-203, 207-212, 216-217 invenio_rdm_records/resources/serializers/errors.py 2 0 100% invenio_rdm_records/resources/serializers/geojson/__init__.py 6 0 100% invenio_rdm_records/resources/serializers/geojson/schema.py 12 7 42% 19-36 invenio_rdm_records/resources/serializers/iiif/__init__.py 15 0 100% invenio_rdm_records/resources/serializers/iiif/schema.py 76 17 78% 23, 35, 132-150, 200-203, 208, 218-219 invenio_rdm_records/resources/serializers/marcxml/__init__.py 13 0 100% invenio_rdm_records/resources/serializers/marcxml/schema.py 298 98 67% 95-100, 126-144, 152-153, 157-164, 172-173, 180-184, 211-216, 227-228, 236-237, 241-244, 254-255, 271, 286, 300-302, 314-315, 337-355, 361-363, 374, 378, 394-405, 416-424, 433, 448-449, 459-460, 469, 478, 490-493, 500-501 invenio_rdm_records/resources/serializers/schemaorg/__init__.py 7 0 100% invenio_rdm_records/resources/serializers/schemaorg/schema.py 270 187 31% 34-54, 73-80, 91-92, 99, 113-148, 207-210, 214-224, 228-232, 236-237, 241-253, 257, 261, 270-278, 286-290, 294, 299-303, 310-316, 323-336, 347-405, 409-412, 416-419, 423-429, 433-434, 438-445, 449-454, 457, 462-475, 479-494, 504-507, 516, 520-524 invenio_rdm_records/resources/serializers/schemas.py 51 38 25% 18-19, 23-27, 31-56, 60-61, 65-69, 73, 79-82, 86 invenio_rdm_records/resources/serializers/signposting/__init__.py 21 11 48% 18, 28-37 invenio_rdm_records/resources/serializers/signposting/schema.py 107 18 83% 38-44, 59, 136-140, 178, 191-195, 229-230, 238 invenio_rdm_records/resources/serializers/ui/__init__.py 6 0 100% invenio_rdm_records/resources/serializers/ui/fields.py 55 29 47% 24, 29, 34, 44, 57-59, 64-119, 124-127, 132, 145-152 invenio_rdm_records/resources/serializers/ui/schema.py 254 135 47% 42, 58-89, 97-102, 107-114, 210-323, 348-349, 354-361, 443-458, 463-470, 475-478 invenio_rdm_records/resources/serializers/utils.py 29 9 69% 32, 54, 62-69 invenio_rdm_records/resources/stats/__init__.py 2 0 100% invenio_rdm_records/resources/stats/event_builders.py 50 22 56% 38-39, 94-120, 129-137, 142-145, 153-155 invenio_rdm_records/secret_links/__init__.py 3 0 100% invenio_rdm_records/secret_links/errors.py 6 1 83% 20 invenio_rdm_records/secret_links/models.py 84 3 96% 86, 117, 121 invenio_rdm_records/secret_links/permissions.py 4 0 100% invenio_rdm_records/secret_links/serializers.py 41 1 98% 71 invenio_rdm_records/secret_links/signals.py 6 0 100% invenio_rdm_records/services/__init__.py 8 0 100% invenio_rdm_records/services/access/__init__.py 2 0 100% invenio_rdm_records/services/access/service.py 379 185 51% 61, 99, 104, 121, 142, 149-151, 163-186, 207, 221-222, 266-267, 288-295, 319-364, 380-410, 423-432, 436-439, 465, 473, 484, 489, 529-547, 566-631, 640-657, 667-706, 710-732, 736-745, 755-808, 821-855, 863-921, 938-971, 1077-1078 invenio_rdm_records/services/communities/__init__.py 2 0 100% invenio_rdm_records/services/communities/components.py 24 10 58% 40-47, 53-60 invenio_rdm_records/services/communities/moderation.py 40 9 78% 19, 23, 27, 43-50, 58 invenio_rdm_records/services/communities/service.py 192 148 23% 54, 59, 64, 69, 73-90, 95-131, 136-207, 211-247, 252-292, 305-316, 328-355, 369-389, 401-431, 442-492, 503-547 invenio_rdm_records/services/community_inclusion/__init__.py 2 0 100% invenio_rdm_records/services/community_inclusion/service.py 28 5 82% 41, 55, 62-79 invenio_rdm_records/services/community_records/__init__.py 2 0 100% invenio_rdm_records/services/community_records/service.py 51 20 61% 30, 79-80, 101-106, 111-145 invenio_rdm_records/services/components/__init__.py 14 0 100% invenio_rdm_records/services/components/access.py 36 5 86% 32-34, 46-47 invenio_rdm_records/services/components/custom_fields.py 5 0 100% invenio_rdm_records/services/components/files.py 23 3 87% 53-55 invenio_rdm_records/services/components/internal_notes.py 34 1 97% 63 invenio_rdm_records/services/components/metadata.py 22 0 100% invenio_rdm_records/services/components/pids.py 148 13 91% 69-71, 74-84, 135-138, 310 invenio_rdm_records/services/components/record_deletion.py 34 5 85% 60, 75-76, 80-81 invenio_rdm_records/services/components/record_files.py 8 2 75% 20-21 invenio_rdm_records/services/components/review.py 34 9 74% 34-45, 52-53, 72-76 invenio_rdm_records/services/components/signal.py 6 0 100% invenio_rdm_records/services/components/vcs.py 15 15 0% 6-34 invenio_rdm_records/services/components/verified.py 48 3 94% 38, 44, 61 invenio_rdm_records/services/config.py 263 3 99% 297, 317-318 invenio_rdm_records/services/customizations.py 31 0 100% invenio_rdm_records/services/decorators.py 13 1 92% 23 invenio_rdm_records/services/dummy.py 10 3 70% 12, 28, 32 invenio_rdm_records/services/errors.py 68 15 78% 35-36, 44, 49, 98, 103, 152-153, 158, 170, 175, 187, 192-198 invenio_rdm_records/services/facets.py 22 1 95% 95 invenio_rdm_records/services/files/__init__.py 2 0 100% invenio_rdm_records/services/files/service.py 14 0 100% invenio_rdm_records/services/generators.py 215 28 87% 58, 71-76, 92, 108, 136, 169, 173, 184, 205, 228, 244, 257, 285, 298, 324, 344, 350, 386, 402, 410-413, 421, 429 invenio_rdm_records/services/github/__init__.py 0 0 100% invenio_rdm_records/services/github/metadata.py 83 83 0% 6-180 invenio_rdm_records/services/github/release.py 116 116 0% 7-247 invenio_rdm_records/services/github/utils.py 4 4 0% 6-19 invenio_rdm_records/services/iiif/__init__.py 2 0 100% invenio_rdm_records/services/iiif/converter.py 63 45 29% 11, 15-17, 27, 32, 40, 57-69, 75-99, 103-115 invenio_rdm_records/services/iiif/service.py 74 51 31% 19-21, 26, 30-32, 51-52, 59-60, 64, 72-78, 81-112, 123-130, 147-172 invenio_rdm_records/services/iiif/storage.py 69 40 42% 29-34, 38, 42, 46, 65-71, 75-88, 95, 100-114, 118, 131, 135-148 invenio_rdm_records/services/iiif/tasks.py 31 23 26% 17-30, 40-56 invenio_rdm_records/services/permissions.py 99 0 100% invenio_rdm_records/services/pids/__init__.py 3 0 100% invenio_rdm_records/services/pids/errors.py 8 1 88% 27 invenio_rdm_records/services/pids/manager.py 162 16 90% 32-33, 79, 171, 198-199, 217, 221, 236, 262, 309-310, 338-341 invenio_rdm_records/services/pids/providers/__init__.py 6 0 100% invenio_rdm_records/services/pids/providers/base.py 82 8 90% 37, 42, 81, 100-101, 106, 119, 221 invenio_rdm_records/services/pids/providers/crossref.py 140 43 69% 39, 65-76, 89, 97, 121, 150-162, 165-169, 176-186, 225, 229, 241, 247-252, 266-271, 289-294, 339-344, 350-356 invenio_rdm_records/services/pids/providers/datacite.py 152 31 80% 57, 65, 87, 184, 190, 216, 218, 222, 229-235, 238, 246-248, 262-268, 311-314, 318-324 invenio_rdm_records/services/pids/providers/external.py 48 4 92% 32-35, 70 invenio_rdm_records/services/pids/providers/oai.py 15 0 100% invenio_rdm_records/services/pids/service.py 103 20 81% 73-82, 85, 89-90, 122-128, 140-147, 269 invenio_rdm_records/services/pids/tasks.py 6 0 100% invenio_rdm_records/services/queryparser.py 5 3 40% 11-13 invenio_rdm_records/services/request_policies.py 133 40 70% 27, 31, 99-100, 106-107, 111-115, 126-128, 132, 143-149, 156-170, 185-186, 190, 227, 238, 261-268, 277-283, 299-305 invenio_rdm_records/services/requests/__init__.py 2 0 100% invenio_rdm_records/services/requests/service.py 14 7 50% 21, 34-45 invenio_rdm_records/services/result_items.py 100 34 66% 19-21, 44-58, 62-66, 74-77, 81, 85, 90-102, 108-114, 142, 150-152, 160, 189, 210-213 invenio_rdm_records/services/results.py 57 21 63% 29, 33, 37, 41, 54, 58, 62-71, 75, 92, 119-120, 124-133, 137 invenio_rdm_records/services/review/__init__.py 3 0 100% invenio_rdm_records/services/review/links.py 10 2 80% 16, 25 invenio_rdm_records/services/review/policy.py 4 1 75% 27 invenio_rdm_records/services/review/service.py 112 19 83% 76, 79, 85, 116-117, 124-134, 182, 200, 218, 227, 261-262 invenio_rdm_records/services/schemas/__init__.py 4 0 100% invenio_rdm_records/services/schemas/access.py 41 1 98% 77 invenio_rdm_records/services/schemas/community_records.py 21 12 43% 29-48 invenio_rdm_records/services/schemas/fields.py 21 0 100% invenio_rdm_records/services/schemas/files.py 52 0 100% invenio_rdm_records/services/schemas/metadata.py 179 10 94% 122-123, 140, 207-211, 248, 252 invenio_rdm_records/services/schemas/parent/__init__.py 28 2 93% 24-25 invenio_rdm_records/services/schemas/parent/access.py 44 0 100% invenio_rdm_records/services/schemas/parent/communities.py 9 0 100% invenio_rdm_records/services/schemas/pids.py 6 0 100% invenio_rdm_records/services/schemas/quota.py 6 0 100% invenio_rdm_records/services/schemas/record.py 70 2 97% 40, 111 invenio_rdm_records/services/schemas/record_communities.py 24 12 50% 32-51 invenio_rdm_records/services/schemas/review.py 12 0 100% invenio_rdm_records/services/schemas/stats.py 10 0 100% invenio_rdm_records/services/schemas/tombstone.py 21 0 100% invenio_rdm_records/services/schemas/utils.py 17 17 0% 7-34 invenio_rdm_records/services/schemas/versions.py 4 0 100% invenio_rdm_records/services/search_params.py 45 21 53% 23, 50-53, 57-75, 103-107 invenio_rdm_records/services/services.py 325 170 48% 111, 124-157, 163-169, 181-182, 204, 229, 237, 243, 259-308, 313-352, 357-384, 396-401, 408, 423, 426, 434, 440, 454-467, 479-492, 504-508, 525, 573-595, 631-632, 637, 676, 678-684, 699-700, 727-732, 753-757, 769-800, 814-840, 845-893, 897-902, 909-923 invenio_rdm_records/services/signals/__init__.py 2 0 100% invenio_rdm_records/services/signals/signals.py 4 0 100% invenio_rdm_records/services/sort.py 8 2 75% 23-24 invenio_rdm_records/services/stats/__init__.py 2 2 0% 6-8 invenio_rdm_records/services/stats/permissions.py 16 16 0% 6-52 invenio_rdm_records/services/storage/service.py 94 65 31% 36-50, 56-59, 63-69, 73-81, 85, 93-97, 102, 106, 110-120, 128-136, 143-165, 169-199, 203-204, 208-218 invenio_rdm_records/services/tasks.py 54 33 39% 41-54, 60-90 invenio_rdm_records/services/vcs/__init__.py 0 0 100% invenio_rdm_records/services/vcs/metadata.py 83 83 0% 6-183 invenio_rdm_records/services/vcs/release.py 199 199 0% 7-467 invenio_rdm_records/services/vcs/utils.py 4 4 0% 6-19 invenio_rdm_records/tokens/__init__.py 3 0 100% invenio_rdm_records/tokens/errors.py 18 0 100% invenio_rdm_records/tokens/permissions.py 5 0 100% invenio_rdm_records/tokens/resource_access.py 41 28 32% 36-90 invenio_rdm_records/tokens/scopes.py 4 0 100% invenio_rdm_records/utils.py 90 29 68% 30-50, 72, 110-115, 125-142, 148-149 invenio_rdm_records/views.py 71 16 77% 76-77, 118-124, 129-150, 166-175 invenio_rdm_records/webpack.py 2 2 0% 9-11 TOTAL 13619 5538 59% ========== 480 passed, 11 skipped, 506 warnings in 318.03s (0:05:18) =========== Container docker_services_cli-rabbitmq-1 Stopping Container docker_services_cli-redis-1 Stopping Container docker_services_cli-postgresql-1 Stopping Container docker_services_cli-opensearch-1 Stopping 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-postgresql-1 Stopped Container docker_services_cli-postgresql-1 Removing Container docker_services_cli-postgresql-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 === Part 3 === postgresql Pulling rabbitmq Pulling opensearch 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-opensearch-1 Creating Container docker_services_cli-rabbitmq-1 Creating Container docker_services_cli-redis-1 Creating Container docker_services_cli-postgresql-1 Creating Container docker_services_cli-opensearch-1 Created Container docker_services_cli-redis-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-opensearch-1 Starting Container docker_services_cli-redis-1 Starting Container docker_services_cli-rabbitmq-1 Starting Container docker_services_cli-postgresql-1 Started Container docker_services_cli-rabbitmq-1 Started Container docker_services_cli-redis-1 Started Container docker_services_cli-opensearch-1 Started ============================= test session starts ============================== platform linux -- Python 3.14.2, pytest-8.4.2, pluggy-1.6.0 rootdir: /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched configfile: setup.cfg plugins: flask-1.3.0, black-0.6.0, github-actions-annotate-failures-0.4.1, mock-3.15.1, pycodestyle-2.5.0, cov-7.1.0, invenio-4.0.1, pydocstyle-2.4.0, isort-4.0.0, Faker-40.23.0 collected 160 items tests/services/test_rdm_service.py [ 12%] tests/services/test_record_deletion.py [ 15%] tests/services/test_record_deletion_request.py [ 22%] tests/services/test_service_access.py [ 35%] tests/services/test_service_collection_records.py [ 40%] tests/services/test_service_communities.py [ 43%] tests/services/test_service_community_records.py [ 50%] tests/services/test_service_record_communities.py [ 56%] tests/services/test_service_review.py [ 78%] [ 78%] tests/services/test_service_tasks.py [ 81%] tests/services/test_sort.py [ 83%] tests/test_alembic.py [ 85%] tests/test_invenio_rdm_records.py [ 87%] tests/tokens/test_feature_flag.py [ 89%] tests/tokens/test_resource_access.py [100%] =============================== warnings summary =============================== invenio_rdm_records/services/facets.py:72 warn( result = self._write_client.setex( /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_records/api.py:302: SAWarning: nested transaction already deassociated from connection with db.session.begin_nested(): /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_db/uow.py:189: SAWarning: nested transaction already deassociated from connection self.session.commit() tests/services/test_rdm_service.py::test_publish_public_record_versions_no_or_external_doi_managed_doi tests/services/test_rdm_service.py::test_publish_public_record_versions_managed_doi_external_doi tests/services/test_rdm_service.py::test_publish_public_record_versions_managed_doi_no_doi tests/services/test_service_review.py::test_publish_when_review_exists /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_db/uow.py:200: SAWarning: nested transaction already deassociated from connection self.session.rollback() /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/invenio_records/api.py:410: SAWarning: nested transaction already deassociated from connection with db.session.begin_nested(): self.init_app(app) tests/services/test_record_deletion_request.py::test_request_deletion_request_only /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/services/test_record_deletion_request.py:73: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/services/test_record_deletion_request.py::test_request_deletion_duplicate_prevention /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/services/test_record_deletion_request.py:103: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/services/test_record_deletion_request.py::test_request_deletion_invalid_reason /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/services/test_record_deletion_request.py:133: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/services/test_service_community_records.py::test_remove_record_of_other_community /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/tests/services/test_service_community_records.py:91: SAWarning: nested transaction already deassociated from connection db.session.commit() tests/services/test_sort.py::test_sort_by_versions /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/pytest_invenio/fixtures.py:617: SAWarning: nested transaction already deassociated from connection session.rollback() tests/test_alembic.py::test_alembic util.warn_deprecated( tests/test_alembic.py::test_alembic inspector = Inspector.from_engine(ctx.connection.engine) tests/test_alembic.py::test_alembic current_date = datetime.utcnow() tests/test_alembic.py::test_alembic super().alter_column( tests/test_alembic.py::test_alembic insp = Inspector.from_engine(ctx.connection.engine) tests/test_alembic.py::test_alembic insp = Inspector.from_engine(ctx.connection.engine) tests/tokens/test_resource_access.py::test_rat_validation_failed /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/jwt/api_jwt.py:147: InsecureKeyLengthWarning: The HMAC key is 10 bytes long, which is below the minimum recommended length of 32 bytes for SHA256. See RFC 7518 Section 3.2 return self._jws.encode( tests/tokens/test_resource_access.py::test_rat_validation_failed /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/jwt/api_jwt.py:368: InsecureKeyLengthWarning: The HMAC key is 10 bytes long, which is below the minimum recommended length of 32 bytes for SHA256. See RFC 7518 Section 3.2 decoded = self.decode_complete( /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/jwt/api_jwt.py:147: InsecureKeyLengthWarning: The HMAC key is 9 bytes long, which is below the minimum recommended length of 32 bytes for SHA256. See RFC 7518 Section 3.2 return self._jws.encode( /home/runner/work/rdm-14-tests/rdm-14-tests/workdir/tests/invenio-rdm-records/patched/.venv/lib/python3.14/site-packages/jwt/api_jwt.py:368: InsecureKeyLengthWarning: The HMAC key is 9 bytes long, which is below the minimum recommended length of 32 bytes for SHA256. See RFC 7518 Section 3.2 decoded = self.decode_complete( ================================ tests coverage ================================ _______________ coverage: platform linux, python 3.14.2-final-0 ________________ Name Stmts Miss Cover Missing invenio_rdm_records/__init__.py 3 0 100% invenio_rdm_records/access_requests_ui/__init__.py 0 0 100% invenio_rdm_records/access_requests_ui/views.py 31 31 0% 6-60 invenio_rdm_records/administration/__init__.py 0 0 100% invenio_rdm_records/administration/views/__init__.py 0 0 100% invenio_rdm_records/administration/views/oai.py 52 0 100% invenio_rdm_records/alembic/0cf260eb8e97_create_table_for_secret_links.py 13 0 100% invenio_rdm_records/alembic/4a15e8671f4d_create_rdm_records_tables.py 30 0 100% invenio_rdm_records/alembic/8ed1a438601c_migrate_secret_links.py 8 0 100% invenio_rdm_records/alembic/9e0ac518b9df_create_records_communities_m2m_table.py 11 0 100% invenio_rdm_records/alembic/88d1463de5c0_create_parent_record_table.py 30 0 100% invenio_rdm_records/alembic/912251a56a49_change_datetime_types.py 23 0 100% invenio_rdm_records/alembic/2186256e8d9b_add_deletion_status_to_rdmrecords.py 31 7 77% 25-37 invenio_rdm_records/alembic/1746626978_drop_rdmrecordquota_user_id_unique_.py 9 0 100% invenio_rdm_records/alembic/1777274324_merge_pidrelations_tables_removal.py 6 0 100% invenio_rdm_records/alembic/1777278349_column_defaults_and_files_indices.py 65 0 100% invenio_rdm_records/alembic/1780576627_create_record_id_index_in_rdm_parents_community.py 10 0 100% invenio_rdm_records/alembic/__init__.py 0 0 100% invenio_rdm_records/alembic/a2a6819f14f1_create_files_and_media_files_versioning_.py 26 0 100% invenio_rdm_records/alembic/a6bfa06b1a6d_add_origin_and_description_to_secret_links.py 12 0 100% invenio_rdm_records/alembic/a3957490361d_remove_pidrelations_tables.py 14 1 93% 22 invenio_rdm_records/alembic/b822ba22c688_create_rdm_records_branch.py 8 0 100% invenio_rdm_records/alembic/cfcb8cb78708_create_access_request_tokens_table.py 13 0 100% invenio_rdm_records/alembic/faf0cefa79a0_create_record_quota_tables.py 13 0 100% invenio_rdm_records/alembic/ff9bec971d30_add_indexes.py 31 0 100% invenio_rdm_records/alembic/ff860d48fb4b_create_media_files_table.py 28 0 100% invenio_rdm_records/alembic/ffd725001655_add_field_to_record_consent_to_share_.py 10 0 100% invenio_rdm_records/auditlog/__init__.py 0 0 100% invenio_rdm_records/auditlog/actions.py 36 0 100% invenio_rdm_records/auditlog/context.py 15 9 40% 16-20, 28-35 invenio_rdm_records/checks/__init__.py 0 0 100% invenio_rdm_records/checks/requests.py 72 72 0% 6-155 invenio_rdm_records/cli.py 187 187 0% 8-445 invenio_rdm_records/collections/__init__.py 0 0 100% invenio_rdm_records/collections/tasks.py 16 16 0% 6-27 invenio_rdm_records/config.py 210 1 99% 76 invenio_rdm_records/contrib/__init__.py 0 0 100% invenio_rdm_records/contrib/codemeta/__init__.py 2 0 100% invenio_rdm_records/contrib/codemeta/custom_fields.py 10 0 100% invenio_rdm_records/contrib/codemeta/processors.py 15 12 20% 13-30 invenio_rdm_records/contrib/imprint/__init__.py 2 0 100% invenio_rdm_records/contrib/imprint/custom_fields.py 15 2 87% 27, 45 invenio_rdm_records/contrib/imprint/processors.py 56 46 18% 22-39, 47-91 invenio_rdm_records/contrib/journal/__init__.py 3 0 100% invenio_rdm_records/contrib/journal/custom_fields.py 15 2 87% 27, 45 invenio_rdm_records/contrib/journal/processors.py 107 86 20% 21-44, 52-84, 92-120, 135-152, 160-184 invenio_rdm_records/contrib/journal/sort.py 2 0 100% invenio_rdm_records/contrib/meeting/__init__.py 3 0 100% invenio_rdm_records/contrib/meeting/custom_fields.py 17 2 88% 35, 60 invenio_rdm_records/contrib/meeting/processors.py 31 21 32% 14-34, 49-60 invenio_rdm_records/contrib/meeting/sort.py 2 0 100% invenio_rdm_records/contrib/thesis/__init__.py 2 2 0% 6-12 invenio_rdm_records/contrib/thesis/custom_fields.py 14 14 0% 13-59 invenio_rdm_records/ext.py 122 1 99% 139 invenio_rdm_records/fixtures/__init__.py 25 25 0% 7-75 invenio_rdm_records/fixtures/communities.py 12 12 0% 6-27 invenio_rdm_records/fixtures/demo.py 112 112 0% 7-351 invenio_rdm_records/fixtures/fixture.py 28 28 0% 6-60 invenio_rdm_records/fixtures/records.py 5 5 0% 7-17 invenio_rdm_records/fixtures/tasks.py 118 118 0% 8-234 invenio_rdm_records/fixtures/users.py 44 44 0% 7-79 invenio_rdm_records/fixtures/vocabularies.py 212 212 0% 10-432 invenio_rdm_records/jobs/__init__.py 0 0 100% invenio_rdm_records/jobs/jobs.py 4 0 100% invenio_rdm_records/notifications/__init__.py 0 0 100% invenio_rdm_records/notifications/builders.py 151 11 93% 75, 108, 140, 173, 207, 252, 285, 320, 358, 403, 563 invenio_rdm_records/notifications/vcs.py 54 54 0% 10-164 invenio_rdm_records/oai.py 59 59 0% 7-153 invenio_rdm_records/oaiserver/__init__.py 0 0 100% invenio_rdm_records/oaiserver/resources/__init__.py 0 0 100% invenio_rdm_records/oaiserver/resources/config.py 19 0 100% invenio_rdm_records/oaiserver/resources/resources.py 46 14 70% 50-55, 61-65, 72-76, 84-89, 95-99, 105-109 invenio_rdm_records/oaiserver/services/__init__.py 0 0 100% invenio_rdm_records/oaiserver/services/config.py 28 0 100% invenio_rdm_records/oaiserver/services/errors.py 17 6 65% 15-16, 24, 37, 45, 55 invenio_rdm_records/oaiserver/services/permissions.py 9 0 100% invenio_rdm_records/oaiserver/services/results.py 59 35 41% 18-22, 27, 32-44, 48-49, 72-78, 82, 86, 91, 96-107, 112, 123-134 invenio_rdm_records/oaiserver/services/schema.py 18 0 100% invenio_rdm_records/oaiserver/services/services.py 115 72 37% 37-41, 45-49, 63, 68, 75-76, 80-89, 94-107, 119-134, 143-146, 155-181, 193-208, 218-224, 228-246, 257-261 invenio_rdm_records/oaiserver/services/uow.py 14 6 57% 15-16, 20, 28-29, 33 invenio_rdm_records/proxies.py 18 0 100% invenio_rdm_records/records/__init__.py 2 0 100% invenio_rdm_records/records/api.py 147 6 96% 311, 366, 380-390 invenio_rdm_records/records/dumpers/__init__.py 8 0 100% invenio_rdm_records/records/dumpers/access.py 22 8 64% 36-37, 41-47 invenio_rdm_records/records/dumpers/combined_subjects.py 21 5 76% 44-48 invenio_rdm_records/records/dumpers/edtf.py 50 7 86% 55-57, 105-107, 122-123 invenio_rdm_records/records/dumpers/locations.py 24 15 38% 31-42, 49-52 invenio_rdm_records/records/dumpers/pids.py 17 13 24% 22-28, 32-39 invenio_rdm_records/records/dumpers/statistics.py 21 2 90% 44-45 invenio_rdm_records/records/dumpers/subject_hierarchy.py 31 19 39% 67-84, 87-93, 96 invenio_rdm_records/records/jsonschemas/__init__.py 0 0 100% invenio_rdm_records/records/mappings/__init__.py 0 0 100% invenio_rdm_records/records/mappings/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/mappings/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/mappings/v7/__init__.py 0 0 100% invenio_rdm_records/records/models.py 96 1 99% 185 invenio_rdm_records/records/processors/base.py 8 3 62% 12, 16, 21 invenio_rdm_records/records/processors/tiles.py 74 53 28% 23, 43, 48, 53-55, 59-78, 88-138, 148-179 invenio_rdm_records/records/stats/__init__.py 2 0 100% invenio_rdm_records/records/stats/api.py 25 3 88% 21, 28, 44 invenio_rdm_records/records/stats/templates/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_file_download/v7/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/aggregations/aggr_record_view/v7/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/file_download/v7/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/os-v1/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/os-v2/__init__.py 0 0 100% invenio_rdm_records/records/stats/templates/events/record_view/v7/__init__.py 0 0 100% invenio_rdm_records/records/systemfields/__init__.py 8 0 100% invenio_rdm_records/records/systemfields/access/__init__.py 8 0 100% invenio_rdm_records/records/systemfields/access/access_settings.py 10 1 90% 28 invenio_rdm_records/records/systemfields/access/embargo.py 62 14 77% 19, 33, 56-58, 74-79, 86, 96, 100, 106, 117 invenio_rdm_records/records/systemfields/access/field/__init__.py 3 0 100% invenio_rdm_records/records/systemfields/access/field/parent.py 112 24 79% 66, 86, 101-106, 140-141, 146-147, 150-153, 157-158, 171, 206-213, 226 invenio_rdm_records/records/systemfields/access/field/record.py 103 7 93% 67, 122-123, 141, 147-149, 185 invenio_rdm_records/records/systemfields/access/grants.py 122 32 74% 43-45, 48-50, 53, 89-90, 96, 106-115, 123-126, 139-147, 186, 205-209, 223, 228, 238, 242, 258, 271-272 invenio_rdm_records/records/systemfields/access/links.py 62 35 44% 17-28, 32, 36-42, 46, 50-53, 57, 61, 65, 76, 80-84, 88, 92-93, 97-100, 111-119 invenio_rdm_records/records/systemfields/access/owners.py 50 15 70% 28, 31-33, 36, 49, 60, 63, 73, 77-80, 84, 88, 92 invenio_rdm_records/records/systemfields/access/protection.py 44 7 84% 39-40, 58-59, 69, 77, 83 invenio_rdm_records/records/systemfields/deletion_status.py 61 6 90% 36, 45, 54, 58, 67, 75 invenio_rdm_records/records/systemfields/draft_status.py 25 2 92% 92-93 invenio_rdm_records/records/systemfields/has_draftcheck.py 21 0 100% invenio_rdm_records/records/systemfields/is_verified.py 12 1 92% 21 invenio_rdm_records/records/systemfields/statistics.py 27 2 93% 32-33 invenio_rdm_records/records/systemfields/tombstone.py 126 12 90% 41, 80, 131, 138-141, 162, 171, 177, 219, 225-226 invenio_rdm_records/requests/__init__.py 8 0 100% invenio_rdm_records/requests/access/__init__.py 4 0 100% invenio_rdm_records/requests/access/models.py 49 14 71% 63, 67, 82, 87, 92, 116-135 invenio_rdm_records/requests/access/permissions.py 4 0 100% invenio_rdm_records/requests/access/requests.py 123 63 49% 48-54, 62-70, 78-84, 92-101, 109-114, 122-136, 144-195, 210-239, 244-260, 339-347, 351-358 invenio_rdm_records/requests/access/tasks.py 8 8 0% 7-21 invenio_rdm_records/requests/base.py 7 0 100% invenio_rdm_records/requests/community_inclusion.py 53 16 70% 52-88, 130 invenio_rdm_records/requests/community_submission.py 92 11 88% 82, 130-132, 160-162, 195-197, 250 invenio_rdm_records/requests/decorators.py 18 0 100% invenio_rdm_records/requests/entity_resolvers.py 91 11 88% 61, 69, 157, 161, 165-166, 170, 174, 198, 202, 206 invenio_rdm_records/requests/file_modification.py 46 15 67% 23-34, 38, 56-62, 102-103, 114 invenio_rdm_records/requests/quota_increase.py 42 14 67% 22-33, 41-50, 83-84, 95 invenio_rdm_records/requests/record_deletion.py 72 8 89% 71, 95-98, 105, 119-125, 173 invenio_rdm_records/requests/subcommunities.py 7 0 100% invenio_rdm_records/requests/user_moderation/__init__.py 2 0 100% invenio_rdm_records/requests/user_moderation/actions.py 31 21 32% 29-53, 70-77, 92-95 invenio_rdm_records/requests/user_moderation/tasks.py 33 18 45% 22-33, 39-50, 56-62, 68-72 invenio_rdm_records/requests/user_moderation/utils.py 20 16 20% 15-44 invenio_rdm_records/resources/__init__.py 4 0 100% invenio_rdm_records/resources/args.py 8 0 100% invenio_rdm_records/resources/config.py 137 6 96% 71-73, 81-83 invenio_rdm_records/resources/deserializers/__init__.py 2 0 100% invenio_rdm_records/resources/deserializers/errors.py 1 0 100% invenio_rdm_records/resources/deserializers/rocrate/__init__.py 38 28 26% 23-32, 36-60 invenio_rdm_records/resources/deserializers/rocrate/schema.py 73 50 32% 16-18, 42-45, 58-59, 70-112, 118-127, 133-136 invenio_rdm_records/resources/errors.py 23 8 65% 22, 37-52 invenio_rdm_records/resources/iiif.py 165 69 58% 142-143, 151-155, 172-173, 189, 198, 207-210, 219-223, 232-236, 259-308, 325, 339-341, 350, 354-369, 384-398 invenio_rdm_records/resources/resources.py 347 123 65% 43-54, 107-111, 122-129, 138-170, 177-183, 190-196, 206-213, 220-237, 244-252, 259-267, 274-280, 289-294, 301-308, 314-319, 326-336, 346-353, 360-367, 373-383, 389-394, 422-429, 436-449, 455-465, 473-483, 489-495, 523-531, 562-568, 574-579, 583, 590-596, 601-606, 613-617, 644-650, 658-667, 675-683, 691-699, 704-709, 717-722, 747-755, 760-766, 774-780, 788-796, 825-831, 841-849 invenio_rdm_records/resources/serializers/__init__.py 17 0 100% invenio_rdm_records/resources/serializers/bibtex/__init__.py 9 1 89% 28 invenio_rdm_records/resources/serializers/bibtex/schema.py 166 106 36% 83, 87-90, 94-116, 120-121, 130, 137, 144, 153-158, 165, 172, 179, 186, 190-194, 199-210, 229-236, 243-248, 252-257, 262, 288-314, 318-330, 333-338 invenio_rdm_records/resources/serializers/bibtex/schema_formats.py 27 0 100% invenio_rdm_records/resources/serializers/cff/__init__.py 8 2 75% 18-19 invenio_rdm_records/resources/serializers/cff/schema.py 148 113 24% 17-45, 50-57, 94-108, 112-127, 131-133, 137-138, 149-162, 166-176, 183-190, 199-208, 216-232, 239-243, 247-253 invenio_rdm_records/resources/serializers/codemeta/__init__.py 7 1 86% 19 invenio_rdm_records/resources/serializers/codemeta/schema.py 34 22 35% 29-50, 54-64 invenio_rdm_records/resources/serializers/crossref/__init__.py 26 16 38% 39, 58-106 invenio_rdm_records/resources/serializers/csl/__init__.py 63 13 79% 69, 91-93, 140-157, 164 invenio_rdm_records/resources/serializers/csl/schema.py 75 13 83% 64, 79, 83-84, 89-99, 112-113, 121-122 invenio_rdm_records/resources/serializers/csv/__init__.py 4 0 100% invenio_rdm_records/resources/serializers/datacite/__init__.py 19 3 84% 20, 37-38 invenio_rdm_records/resources/serializers/datacite/schema.py 600 391 35% 52-53, 76-86, 97-138, 160-167, 205-206, 210-219, 226-255, 259, 263, 269-281, 285-318, 322-327, 332-369, 373-472, 476-529, 533-554, 558-594, 599-659, 697, 717, 722-738, 756, 763, 768-773, 783-795, 804-808, 817, 829, 850-854, 870-901, 928, 943-947, 962-1010, 1019-1036, 1044-1055, 1063-1065, 1069, 1103-1140 invenio_rdm_records/resources/serializers/datapackage/__init__.py 6 0 100% invenio_rdm_records/resources/serializers/datapackage/schema.py 65 46 29% 30-35, 39-53, 57-66, 70-84 invenio_rdm_records/resources/serializers/dcat/__init__.py 105 84 20% 36-37, 47-54, 58-94, 98-143, 147-151, 155-197, 201-221 invenio_rdm_records/resources/serializers/dcat/schema.py 45 36 20% 22-52, 56-93 invenio_rdm_records/resources/serializers/dublincore/__init__.py 12 1 92% 20 invenio_rdm_records/resources/serializers/dublincore/schema.py 115 80 30% 59-69, 73-81, 85-115, 119-139, 143-154, 158-178, 182-187, 191-203, 207-212, 216-217 invenio_rdm_records/resources/serializers/errors.py 2 0 100% invenio_rdm_records/resources/serializers/geojson/__init__.py 6 0 100% invenio_rdm_records/resources/serializers/geojson/schema.py 12 7 42% 19-36 invenio_rdm_records/resources/serializers/iiif/__init__.py 15 0 100% invenio_rdm_records/resources/serializers/iiif/schema.py 76 17 78% 23, 35, 132-150, 200-203, 208, 218-219 invenio_rdm_records/resources/serializers/marcxml/__init__.py 13 1 92% 38 invenio_rdm_records/resources/serializers/marcxml/schema.py 298 233 22% 57-83, 90-114, 118-119, 123-144, 148-153, 157-164, 168-173, 177-184, 201-218, 222-246, 250-265, 269-274, 282-304, 308-315, 319-320, 324-325, 329-330, 335-363, 367-380, 384-407, 414-426, 433, 443-451, 455-462, 466-471, 475-480, 484-493, 497-531 invenio_rdm_records/resources/serializers/schemaorg/__init__.py 7 0 100% invenio_rdm_records/resources/serializers/schemaorg/schema.py 270 187 31% 34-54, 73-80, 91-92, 99, 113-148, 207-210, 214-224, 228-232, 236-237, 241-253, 257, 261, 270-278, 286-290, 294, 299-303, 310-316, 323-336, 347-405, 409-412, 416-419, 423-429, 433-434, 438-445, 449-454, 457, 462-475, 479-494, 504-507, 516, 520-524 invenio_rdm_records/resources/serializers/schemas.py 51 38 25% 18-19, 23-27, 31-56, 60-61, 65-69, 73, 79-82, 86 invenio_rdm_records/resources/serializers/signposting/__init__.py 21 11 48% 18, 28-37 invenio_rdm_records/resources/serializers/signposting/schema.py 107 66 38% 36-53, 57-63, 68-77, 81-95, 104-113, 124-144, 148-165, 178, 191-195, 208, 224-225, 229-230, 238, 259, 263, 281-293 invenio_rdm_records/resources/serializers/ui/__init__.py 6 0 100% invenio_rdm_records/resources/serializers/ui/fields.py 55 29 47% 24, 29, 34, 44, 57-59, 64-119, 124-127, 132, 145-152 invenio_rdm_records/resources/serializers/ui/schema.py 254 137 46% 39-42, 58-89, 97-102, 107-114, 210-323, 348-349, 354-361, 443-458, 463-470, 475-478 invenio_rdm_records/resources/serializers/utils.py 29 17 41% 32, 43-54, 62-69 invenio_rdm_records/resources/stats/__init__.py 2 2 0% 6-14 invenio_rdm_records/resources/stats/event_builders.py 50 50 0% 14-155 invenio_rdm_records/secret_links/__init__.py 3 0 100% invenio_rdm_records/secret_links/errors.py 6 1 83% 20 invenio_rdm_records/secret_links/models.py 84 43 49% 59-60, 64-73, 78, 83-86, 91-94, 99-104, 116-140, 149-156, 167-178 invenio_rdm_records/secret_links/permissions.py 4 0 100% invenio_rdm_records/secret_links/serializers.py 41 25 39% 39-51, 63-76, 85-95, 107-111, 124 invenio_rdm_records/secret_links/signals.py 6 0 100% invenio_rdm_records/services/__init__.py 8 0 100% invenio_rdm_records/services/access/__init__.py 2 0 100% invenio_rdm_records/services/access/service.py 379 200 47% 57, 61, 84, 99, 104, 138-191, 196-246, 260-267, 282-295, 313-364, 374-410, 427-432, 436-439, 473, 484, 529-547, 566-631, 654, 667-706, 710-732, 736-745, 755-808, 821-855, 863-921, 938-971, 1077-1078 invenio_rdm_records/services/communities/__init__.py 2 0 100% invenio_rdm_records/services/communities/components.py 24 0 100% invenio_rdm_records/services/communities/moderation.py 40 8 80% 19, 23, 27, 43-50 invenio_rdm_records/services/communities/service.py 192 60 69% 69, 86, 100, 106, 175, 190-203, 224-232, 305-316, 328-355, 369-389, 479, 503-547 invenio_rdm_records/services/community_inclusion/__init__.py 2 0 100% invenio_rdm_records/services/community_inclusion/service.py 28 2 93% 41, 55 invenio_rdm_records/services/community_records/__init__.py 2 0 100% invenio_rdm_records/services/community_records/service.py 51 4 92% 79-80, 137-138 invenio_rdm_records/services/components/__init__.py 14 0 100% invenio_rdm_records/services/components/access.py 36 5 86% 32-34, 46-47 invenio_rdm_records/services/components/custom_fields.py 5 0 100% invenio_rdm_records/services/components/files.py 23 3 87% 53-55 invenio_rdm_records/services/components/internal_notes.py 34 10 71% 22, 49-58, 62-63 invenio_rdm_records/services/components/metadata.py 22 0 100% invenio_rdm_records/services/components/pids.py 148 2 99% 107, 310 invenio_rdm_records/services/components/record_deletion.py 34 1 97% 60 invenio_rdm_records/services/components/record_files.py 8 0 100% invenio_rdm_records/services/components/review.py 34 0 100% invenio_rdm_records/services/components/signal.py 6 6 0% 6-17 invenio_rdm_records/services/components/vcs.py 15 15 0% 6-34 invenio_rdm_records/services/components/verified.py 48 8 83% 38, 44, 60-67 invenio_rdm_records/services/config.py 263 3 99% 297, 317-318 invenio_rdm_records/services/customizations.py 31 0 100% invenio_rdm_records/services/decorators.py 13 1 92% 23 invenio_rdm_records/services/dummy.py 10 3 70% 12, 28, 32 invenio_rdm_records/services/errors.py 68 8 88% 49, 98, 103, 175, 187, 192-198 invenio_rdm_records/services/facets.py 22 1 95% 95 invenio_rdm_records/services/files/__init__.py 2 0 100% invenio_rdm_records/services/files/service.py 14 3 79% 20-24 invenio_rdm_records/services/generators.py 215 35 84% 58, 71-76, 92, 108, 134-139, 143-144, 148-149, 169, 173, 184, 205, 244, 257, 266, 285, 298, 308, 324, 350, 386, 402, 410-413, 421, 429 invenio_rdm_records/services/github/__init__.py 0 0 100% invenio_rdm_records/services/github/metadata.py 83 83 0% 6-180 invenio_rdm_records/services/github/release.py 116 116 0% 7-247 invenio_rdm_records/services/github/utils.py 4 4 0% 6-19 invenio_rdm_records/services/iiif/__init__.py 2 0 100% invenio_rdm_records/services/iiif/converter.py 63 45 29% 11, 15-17, 27, 32, 40, 57-69, 75-99, 103-115 invenio_rdm_records/services/iiif/service.py 74 51 31% 19-21, 26, 30-32, 51-52, 59-60, 64, 72-78, 81-112, 123-130, 147-172 invenio_rdm_records/services/iiif/storage.py 69 40 42% 29-34, 38, 42, 46, 65-71, 75-88, 95, 100-114, 118, 131, 135-148 invenio_rdm_records/services/iiif/tasks.py 31 23 26% 17-30, 40-56 invenio_rdm_records/services/permissions.py 99 0 100% invenio_rdm_records/services/pids/__init__.py 3 0 100% invenio_rdm_records/services/pids/errors.py 8 2 75% 17, 27 invenio_rdm_records/services/pids/manager.py 162 19 88% 32-33, 62, 79, 115, 126, 164, 171, 198-199, 217, 221, 236, 262, 283, 309-310, 323-324 invenio_rdm_records/services/pids/providers/__init__.py 6 0 100% invenio_rdm_records/services/pids/providers/base.py 82 21 74% 37, 42, 67, 81, 100-101, 106, 119, 128, 155-160, 166-169, 203-213 invenio_rdm_records/services/pids/providers/crossref.py 140 100 29% 39, 45, 49-50, 57-78, 86-111, 120-186, 220, 225, 229, 239-252, 262-271, 280-300, 310-344, 350-356 invenio_rdm_records/services/pids/providers/datacite.py 152 46 70% 57, 65, 70, 77, 87, 97-105, 138-155, 184, 186, 190, 197-203, 229-235, 238, 246-248, 259, 262-268, 291-293, 297, 313-314 invenio_rdm_records/services/pids/providers/external.py 48 13 73% 32-35, 42-50, 70, 81-85, 90, 101, 110-112 invenio_rdm_records/services/pids/providers/oai.py 15 1 93% 44 invenio_rdm_records/services/pids/service.py 103 22 79% 81-82, 85, 89-90, 122-128, 140-147, 247-255, 269 invenio_rdm_records/services/pids/tasks.py 6 0 100% invenio_rdm_records/services/queryparser.py 5 3 40% 11-13 invenio_rdm_records/services/request_policies.py 133 40 70% 27, 31, 99-100, 106-107, 111-115, 126-128, 132, 143-149, 156-170, 185-186, 190, 227, 238, 261-268, 277-283, 299-305 invenio_rdm_records/services/requests/__init__.py 2 0 100% invenio_rdm_records/services/requests/service.py 14 7 50% 21, 34-45 invenio_rdm_records/services/result_items.py 100 41 59% 19-21, 29-34, 39, 44-58, 62-66, 74-77, 81, 85, 90-102, 108-114, 142, 150-152, 160, 189, 210-213 invenio_rdm_records/services/results.py 57 20 65% 29, 33, 37, 41, 54, 58, 62-71, 75, 119-120, 124-133, 137 invenio_rdm_records/services/review/__init__.py 3 0 100% invenio_rdm_records/services/review/links.py 10 1 90% 16 invenio_rdm_records/services/review/policy.py 4 0 100% invenio_rdm_records/services/review/service.py 112 7 94% 58, 76, 85, 182, 200, 218, 246 invenio_rdm_records/services/schemas/__init__.py 4 0 100% invenio_rdm_records/services/schemas/access.py 41 4 90% 37, 46, 63, 77 invenio_rdm_records/services/schemas/community_records.py 21 2 90% 44, 48 invenio_rdm_records/services/schemas/fields.py 21 8 62% 23-26, 39-42 invenio_rdm_records/services/schemas/files.py 52 0 100% invenio_rdm_records/services/schemas/metadata.py 179 41 77% 72-78, 117-118, 122-123, 138, 140, 152-161, 187, 207-211, 234, 239, 244-252, 274, 282-289, 304, 338-344 invenio_rdm_records/services/schemas/parent/__init__.py 28 2 93% 24-25 invenio_rdm_records/services/schemas/parent/access.py 44 0 100% invenio_rdm_records/services/schemas/parent/communities.py 9 0 100% invenio_rdm_records/services/schemas/pids.py 6 0 100% invenio_rdm_records/services/schemas/quota.py 6 0 100% invenio_rdm_records/services/schemas/record.py 70 2 97% 40, 111 invenio_rdm_records/services/schemas/record_communities.py 24 3 88% 34, 47, 51 invenio_rdm_records/services/schemas/review.py 12 0 100% invenio_rdm_records/services/schemas/stats.py 10 0 100% invenio_rdm_records/services/schemas/tombstone.py 21 0 100% invenio_rdm_records/services/schemas/utils.py 17 17 0% 7-34 invenio_rdm_records/services/schemas/versions.py 4 0 100% invenio_rdm_records/services/search_params.py 45 5 89% 103-107 invenio_rdm_records/services/services.py 325 117 64% 111, 135, 181-182, 204, 229, 237, 243, 313-352, 357-384, 396-401, 426, 434, 504-508, 520-528, 594, 608, 631-632, 637, 678-684, 697-700, 732, 753-757, 769-800, 814-840, 845-893, 897-902, 909-923 invenio_rdm_records/services/signals/__init__.py 2 0 100% invenio_rdm_records/services/signals/signals.py 4 0 100% invenio_rdm_records/services/sort.py 8 0 100% invenio_rdm_records/services/stats/__init__.py 2 2 0% 6-8 invenio_rdm_records/services/stats/permissions.py 16 16 0% 6-52 invenio_rdm_records/services/storage/service.py 94 65 31% 36-50, 56-59, 63-69, 73-81, 85, 93-97, 102, 106, 110-120, 128-136, 143-165, 169-199, 203-204, 208-218 invenio_rdm_records/services/tasks.py 54 24 56% 51-53, 60-90, 96 invenio_rdm_records/services/vcs/__init__.py 0 0 100% invenio_rdm_records/services/vcs/metadata.py 83 83 0% 6-183 invenio_rdm_records/services/vcs/release.py 199 199 0% 7-467 invenio_rdm_records/services/vcs/utils.py 4 4 0% 6-19 invenio_rdm_records/tokens/__init__.py 3 0 100% invenio_rdm_records/tokens/errors.py 18 0 100% invenio_rdm_records/tokens/permissions.py 5 0 100% invenio_rdm_records/tokens/resource_access.py 41 4 90% 41-42, 75, 86 invenio_rdm_records/tokens/scopes.py 4 0 100% invenio_rdm_records/utils.py 90 30 67% 30-50, 72, 94-95, 97-98, 101-115, 136-139, 142, 148-149 invenio_rdm_records/views.py 71 16 77% 76-77, 118-124, 129-150, 166-175 invenio_rdm_records/webpack.py 2 2 0% 9-11 TOTAL 13619 5638 59% ================ 160 passed, 618 warnings in 200.10s (0:03:20) ================= Container docker_services_cli-redis-1 Stopping Container docker_services_cli-opensearch-1 Stopping Container docker_services_cli-rabbitmq-1 Stopping Container docker_services_cli-postgresql-1 Stopping 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-postgresql-1 Stopped Container docker_services_cli-postgresql-1 Removing Container docker_services_cli-postgresql-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