Coverage report: 92%

Files Functions Classes

coverage.py v7.12.0, created at 2026-05-29 18:29 +0000

File function   statements missing excluded   coverage
changes_metadata_manager / __init__.py (no function)   0 0 0   100%
changes_metadata_manager / folder_metadata_builder.py load_kg   3 0 0   100%
changes_metadata_manager / folder_metadata_builder.py extract_id_from_folder_name   6 1 0   83%
changes_metadata_manager / folder_metadata_builder.py extract_metadata_for_stage   26 0 0   100%
changes_metadata_manager / folder_metadata_builder.py validate_metadata   2 0 0   100%
changes_metadata_manager / folder_metadata_builder.py scan_folder_structure   18 3 0   83%
changes_metadata_manager / folder_metadata_builder.py process_all_folders   36 6 0   83%
changes_metadata_manager / folder_metadata_builder.py merge_provenance_files   4 0 0   100%
changes_metadata_manager / folder_metadata_builder.py parse_arguments   0 0 20   100%
changes_metadata_manager / folder_metadata_builder.py main   0 0 4   100%
changes_metadata_manager / folder_metadata_builder.py (no function)   26 0 4   100%
changes_metadata_manager / generate_provenance.py generate_provenance_snapshots   43 1 0   98%
changes_metadata_manager / generate_provenance.py (no function)   6 0 0   100%
changes_metadata_manager / patch / __init__.py (no function)   0 0 0   100%
changes_metadata_manager / patch / license_metadata.py _request_with_retry   9 0 0   100%
changes_metadata_manager / patch / license_metadata.py _create_edit_draft   4 0 0   100%
changes_metadata_manager / patch / license_metadata.py _extract_stage_from_config_path   3 0 0   100%
changes_metadata_manager / patch / license_metadata.py _extract_entity_id_from_config   5 0 0   100%
changes_metadata_manager / patch / license_metadata.py _fetch_record_metadata   6 0 0   100%
changes_metadata_manager / patch / license_metadata.py _current_content_license   15 5 0   67%
changes_metadata_manager / patch / license_metadata.py _has_cc0_disclaimer   4 0 0   100%
changes_metadata_manager / patch / license_metadata.py _rebuild_additional_descriptions   4 0 0   100%
changes_metadata_manager / patch / license_metadata.py patch_drafts   82 5 0   94%
changes_metadata_manager / patch / license_metadata.py (no function)   26 0 7   100%
changes_metadata_manager / zenodo_upload.py _literal_str_representer   3 0 0   100%
changes_metadata_manager / zenodo_upload.py slugify   4 0 0   100%
changes_metadata_manager / zenodo_upload.py _format_slug   1 0 0   100%
changes_metadata_manager / zenodo_upload.py load_creators_lookup   3 0 0   100%
changes_metadata_manager / zenodo_upload.py _format_creator   1 0 0   100%
changes_metadata_manager / zenodo_upload.py _extract_actor_names   7 0 0   100%
changes_metadata_manager / zenodo_upload.py extract_authors_for_entity_stage   6 0 0   100%
changes_metadata_manager / zenodo_upload.py extract_metadata_authors   4 0 0   100%
changes_metadata_manager / zenodo_upload.py build_creators_for_entity_stage   2 0 0   100%
changes_metadata_manager / zenodo_upload.py build_metadata_creators   2 0 0   100%
changes_metadata_manager / zenodo_upload.py merge_creators   12 0 0   100%
changes_metadata_manager / zenodo_upload.py extract_licensed_entity_stages   10 0 0   100%
changes_metadata_manager / zenodo_upload.py group_folders_by_entity   11 1 0   91%
changes_metadata_manager / zenodo_upload.py _extract_license_from_meta   10 0 0   100%
changes_metadata_manager / zenodo_upload.py create_stage_zip   30 1 0   97%
changes_metadata_manager / zenodo_upload.py _get_label   4 1 0   75%
changes_metadata_manager / zenodo_upload.py extract_keeper_info   11 0 0   100%
changes_metadata_manager / zenodo_upload.py extract_entity_title   6 0 0   100%
changes_metadata_manager / zenodo_upload.py extract_acquisition_technique   5 0 0   100%
changes_metadata_manager / zenodo_upload.py extract_devices   9 0 0   100%
changes_metadata_manager / zenodo_upload.py extract_software_for_stage   10 0 0   100%
changes_metadata_manager / zenodo_upload.py extract_license_for_entity_stage   5 0 0   100%
changes_metadata_manager / zenodo_upload.py build_enhanced_description   10 0 0   100%
changes_metadata_manager / zenodo_upload.py build_methods_description   14 0 0   100%
changes_metadata_manager / zenodo_upload.py build_entity_uri   1 0 0   100%
changes_metadata_manager / zenodo_upload.py build_rights   6 0 0   100%
changes_metadata_manager / zenodo_upload.py generate_zenodo_config   25 1 0   96%
changes_metadata_manager / zenodo_upload.py _get_sub_entity_ids   8 8 0   0%
changes_metadata_manager / zenodo_upload.py _init_worker   3 3 0   0%
changes_metadata_manager / zenodo_upload.py _process_entity   23 23 0   0%
changes_metadata_manager / zenodo_upload.py prepare_all   18 18 0   0%
changes_metadata_manager / zenodo_upload.py _extract_doi   3 0 0   100%
changes_metadata_manager / zenodo_upload.py _extract_record_url   3 0 0   100%
changes_metadata_manager / zenodo_upload.py _format_creators_for_table   7 0 0   100%
changes_metadata_manager / zenodo_upload.py _format_licenses_for_table   9 0 0   100%
changes_metadata_manager / zenodo_upload.py _atomic_write_json   4 0 0   100%
changes_metadata_manager / zenodo_upload.py _graceful_shutdown   7 0 0   100%
changes_metadata_manager / zenodo_upload.py _graceful_shutdown.handler   5 5 0   0%
changes_metadata_manager / zenodo_upload.py _write_doi_table   13 0 0   100%
changes_metadata_manager / zenodo_upload.py upload_all   41 2 0   95%
changes_metadata_manager / zenodo_upload.py publish_all_drafts   34 2 0   94%
changes_metadata_manager / zenodo_upload.py sync_status   29 29 0   0%
changes_metadata_manager / zenodo_upload.py _normalize_quotes   1 1 0   0%
changes_metadata_manager / zenodo_upload.py cleanup_duplicates   43 43 0   0%
changes_metadata_manager / zenodo_upload.py parse_arguments   0 0 19   100%
changes_metadata_manager / zenodo_upload.py main   0 0 15   100%
changes_metadata_manager / zenodo_upload.py (no function)   105 0 4   100%
tests / __init__.py (no function)   0 0 0   100%
tests / test_folder_metadata_builder.py load_fixture   3 0 0   100%
tests / test_folder_metadata_builder.py assert_graphs_equal   10 4 0   60%
tests / test_folder_metadata_builder.py real_kg   1 0 0   100%
tests / test_folder_metadata_builder.py test_folder_structure   8 0 0   100%
tests / test_folder_metadata_builder.py TestExtractMetadataForStageExact.test_stage_output_matches_fixture   3 0 0   100%
tests / test_folder_metadata_builder.py TestExtractIdFromFolderName.test_valid_folder_names   1 0 0   100%
tests / test_folder_metadata_builder.py TestExtractIdFromFolderName.test_invalid_folder_names   2 0 0   100%
tests / test_folder_metadata_builder.py TestProcessAllFolders.test_creates_files_in_place   11 0 0   100%
tests / test_folder_metadata_builder.py TestMergeProvenanceFiles.test_merges_all_prov_trig_files   12 0 0   100%
tests / test_folder_metadata_builder.py TestScanFolderStructure.test_scans_folder_structure   20 0 0   100%
tests / test_folder_metadata_builder.py (no function)   31 0 0   100%
tests / test_license_metadata.py TestExtractStageFromConfigPath.test_extracts_raw   1 0 0   100%
tests / test_license_metadata.py TestExtractStageFromConfigPath.test_extracts_dchoo   1 0 0   100%
tests / test_license_metadata.py TestExtractStageFromConfigPath.test_raises_on_invalid   2 0 0   100%
tests / test_license_metadata.py TestExtractEntityIdFromConfig.test_extracts_entity   2 0 0   100%
tests / test_license_metadata.py TestExtractEntityIdFromConfig.test_raises_when_no_match   3 0 0   100%
tests / test_license_metadata.py TestCurrentContentLicense.test_detects_cc0   2 0 0   100%
tests / test_license_metadata.py TestCurrentContentLicense.test_detects_cc_by_nc   2 0 0   100%
tests / test_license_metadata.py TestCurrentContentLicense.test_returns_none_without_content_license   2 0 0   100%
tests / test_license_metadata.py TestCurrentContentLicense.test_returns_none_on_empty   1 0 0   100%
tests / test_license_metadata.py TestHasCc0Disclaimer.test_true_with_disclaimer   2 0 0   100%
tests / test_license_metadata.py TestHasCc0Disclaimer.test_false_without   1 0 0   100%
tests / test_license_metadata.py TestRebuildAdditionalDescriptions.test_adds_disclaimer_for_cc0   3 0 0   100%
tests / test_license_metadata.py TestRebuildAdditionalDescriptions.test_removes_old_disclaimer_when_not_cc0   3 0 0   100%
tests / test_license_metadata.py TestRebuildAdditionalDescriptions.test_preserves_other_descriptions   3 0 0   100%
tests / test_license_metadata.py TestRequestWithRetry.test_returns_immediately_on_success   5 0 0   100%
tests / test_license_metadata.py TestRequestWithRetry.test_retries_on_429   6 0 0   100%
tests / test_license_metadata.py TestRequestWithRetry.test_returns_429_after_all_retries_exhausted   5 0 0   100%
tests / test_license_metadata.py TestCreateEditDraft.test_creates_draft   4 0 0   100%
tests / test_license_metadata.py TestCreateEditDraft.test_ignores_403_already_exists   4 0 0   100%
tests / test_license_metadata.py TestCreateEditDraft.test_raises_on_other_error   6 0 0   100%
tests / test_license_metadata.py TestFetchRecordMetadata.test_tries_draft_first   7 0 0   100%
tests / test_license_metadata.py TestFetchRecordMetadata.test_falls_back_to_published_on_404   7 0 0   100%
tests / test_license_metadata.py TestPatchDrafts._make_drafts_json   3 0 0   100%
tests / test_license_metadata.py TestPatchDrafts._make_config   5 0 0   100%
tests / test_license_metadata.py TestPatchDrafts.test_dry_run_logs_changes   13 0 0   100%
tests / test_license_metadata.py TestPatchDrafts.test_published_record_creates_edit_draft_and_publishes   11 0 0   100%
tests / test_license_metadata.py TestPatchDrafts.test_unpublished_record_skips_edit_draft_and_publish   11 0 0   100%
tests / test_license_metadata.py TestPatchDrafts.test_errors_are_logged   11 0 0   100%
tests / test_license_metadata.py TestPatchDrafts.test_skips_already_correct   9 0 0   100%
tests / test_license_metadata.py (no function)   74 0 0   100%
tests / test_provenance.py test_environment   10 0 0   100%
tests / test_provenance.py test_provenance_generation   23 0 0   100%
tests / test_provenance.py test_input_format_parameter   18 0 0   100%
tests / test_provenance.py test_empty_directory   9 0 0   100%
tests / test_provenance.py (no function)   14 0 2   100%
tests / test_zenodo_upload.py real_kg   1 0 0   100%
tests / test_zenodo_upload.py TestExtractLicensedEntityStages.test_returns_set_of_tuples   3 0 0   100%
tests / test_zenodo_upload.py TestExtractLicensedEntityStages.test_known_licensed_entity   3 0 0   100%
tests / test_zenodo_upload.py TestExtractLicensedEntityStages.test_maps_steps_to_stages   7 0 0   100%
tests / test_zenodo_upload.py TestGroupFoldersByEntity.test_groups_folders_by_entity_id   6 0 0   100%
tests / test_zenodo_upload.py TestGroupFoldersByEntity.test_groups_abc_variants   4 0 0   100%
tests / test_zenodo_upload.py TestGroupFoldersByEntity.test_skips_skip_folders   6 0 0   100%
tests / test_zenodo_upload.py TestSlugify.test_simple_text   1 0 0   100%
tests / test_zenodo_upload.py TestSlugify.test_accented_characters   1 0 0   100%
tests / test_zenodo_upload.py TestSlugify.test_special_characters   1 0 0   100%
tests / test_zenodo_upload.py TestSlugify.test_multiple_spaces   1 0 0   100%
tests / test_zenodo_upload.py TestSlugify.test_leading_trailing_spaces   1 0 0   100%
tests / test_zenodo_upload.py TestExtractLicenseFromMeta.test_returns_license_id_when_present   4 0 0   100%
tests / test_zenodo_upload.py TestExtractLicenseFromMeta.test_returns_none_when_no_license   4 0 0   100%
tests / test_zenodo_upload.py TestExtractLicenseFromMeta.test_picks_defining_step_license   4 0 0   100%
tests / test_zenodo_upload.py TestExtractLicenseFromMeta.test_returns_none_when_defining_step_missing   5 0 0   100%
tests / test_zenodo_upload.py TestCreateStageZip.test_includes_all_files_for_licensed_stage   18 0 0   100%
tests / test_zenodo_upload.py TestCreateStageZip.test_includes_only_metadata_for_unlicensed_stage   17 0 0   100%
tests / test_zenodo_upload.py TestCreateStageZip.test_multiple_folders_grouped_entity_license   17 0 0   100%
tests / test_zenodo_upload.py TestCreateStageZip.test_multiple_folders_unlicensed   16 0 0   100%
tests / test_zenodo_upload.py TestCreateStageZip.test_license_in_later_folder_includes_all_data   20 0 0   100%
tests / test_zenodo_upload.py TestCreateStageZip.test_returns_none_for_missing_stage   11 0 0   100%
tests / test_zenodo_upload.py TestExtractEntityTitle.test_extracts_title_from_kg   2 0 0   100%
tests / test_zenodo_upload.py TestExtractEntityTitle.test_returns_default_for_missing   3 0 0   100%
tests / test_zenodo_upload.py TestExtractEntityTitle.test_takes_first_line   5 0 0   100%
tests / test_zenodo_upload.py TestExtractAuthorsForEntityStage.test_extracts_author_from_kg   2 0 0   100%
tests / test_zenodo_upload.py TestExtractAuthorsForEntityStage.test_accumulates_authors_across_steps   3 0 0   100%
tests / test_zenodo_upload.py TestExtractAuthorsForEntityStage.test_returns_empty_for_missing_entity   2 0 0   100%
tests / test_zenodo_upload.py TestExtractAuthorsForEntityStage.test_extracts_from_synthetic_graph   10 0 0   100%
tests / test_zenodo_upload.py TestExtractMetadataAuthors.test_extracts_step_05_authors   10 0 0   100%
tests / test_zenodo_upload.py TestExtractMetadataAuthors.test_returns_empty_for_missing_entity   3 0 0   100%
tests / test_zenodo_upload.py TestExtractMetadataAuthors.test_extracts_from_real_kg   2 0 0   100%
tests / test_zenodo_upload.py TestLoadCreatorsLookup.test_loads_creators_as_dict   5 0 0   100%
tests / test_zenodo_upload.py TestBuildCreatorsForEntityStage.test_builds_creators_with_researcher_role   3 0 0   100%
tests / test_zenodo_upload.py TestBuildCreatorsForEntityStage.test_ignores_authors_not_in_lookup   3 0 0   100%
tests / test_zenodo_upload.py TestBuildCreatorsForEntityStage.test_sorts_authors_alphabetically   12 0 0   100%
tests / test_zenodo_upload.py TestBuildMetadataCreators.test_builds_creators_with_datacurator_role   11 0 0   100%
tests / test_zenodo_upload.py TestMergeCreators.test_merges_without_duplicates   6 0 0   100%
tests / test_zenodo_upload.py TestMergeCreators.test_deduplicates_by_orcid   5 0 0   100%
tests / test_zenodo_upload.py TestMergeCreators.test_empty_lists   1 0 0   100%
tests / test_zenodo_upload.py TestMergeCreators.test_only_metadata_creators   4 0 0   100%
tests / test_zenodo_upload.py TestBuildEntityUri.test_builds_uri_for_numeric_id   2 0 0   100%
tests / test_zenodo_upload.py TestBuildEntityUri.test_builds_uri_for_string_id   2 0 0   100%
tests / test_zenodo_upload.py TestGenerateZenodoConfig.test_generates_valid_config   4 0 0   100%
tests / test_zenodo_upload.py TestGenerateZenodoConfig.test_adds_entity_uri_as_alternate_identifier   5 0 0   100%
tests / test_zenodo_upload.py TestGenerateZenodoConfig.test_converts_related_identifiers   5 0 0   100%
tests / test_zenodo_upload.py TestGenerateZenodoConfig.test_converts_notes_and_method_to_additional_descriptions   4 0 0   100%
tests / test_zenodo_upload.py TestGenerateZenodoConfig.test_cc0_disclaimer_in_additional_descriptions   4 0 0   100%
tests / test_zenodo_upload.py TestGenerateZenodoConfig.test_converts_locations_to_geojson   4 0 0   100%
tests / test_zenodo_upload.py TestGenerateZenodoConfig.test_includes_community_field   5 0 0   100%
tests / test_zenodo_upload.py TestGenerateZenodoConfig.test_includes_restricted_notice_when_no_license   5 0 0   100%
tests / test_zenodo_upload.py TestGenerateZenodoConfig.test_no_restricted_notice_when_licensed   4 0 0   100%
tests / test_zenodo_upload.py TestGenerateZenodoConfig.test_propagates_funding_field   6 0 0   100%
tests / test_zenodo_upload.py TestExtractLicenseForEntityStage.test_extracts_license_from_kg   6 0 0   100%
tests / test_zenodo_upload.py TestExtractLicenseForEntityStage.test_returns_none_for_missing_license   3 0 0   100%
tests / test_zenodo_upload.py TestExtractLicenseForEntityStage.test_returns_none_for_unknown_license_uri   6 0 0   100%
tests / test_zenodo_upload.py TestExtractLicenseForEntityStage.test_extracts_cc_by   6 0 0   100%
tests / test_zenodo_upload.py TestExtractLicenseForEntityStage.test_picks_defining_step_license   5 0 0   100%
tests / test_zenodo_upload.py TestExtractLicenseForEntityStage.test_picks_defining_step_real_kg   1 0 0   100%
tests / test_zenodo_upload.py TestExtractLicenseForEntityStage.test_raw_returns_defining_step_license   4 0 0   100%
tests / test_zenodo_upload.py TestExtractLicenseForEntityStage.test_returns_none_when_defining_step_missing   4 0 0   100%
tests / test_zenodo_upload.py TestExtractKeeperInfo.test_extracts_keeper_from_kg   3 0 0   100%
tests / test_zenodo_upload.py TestExtractKeeperInfo.test_extracts_non_bologna_keeper   3 0 0   100%
tests / test_zenodo_upload.py TestExtractKeeperInfo.test_returns_none_for_missing_entity   3 0 0   100%
tests / test_zenodo_upload.py TestExtractKeeperInfo.test_extracts_from_synthetic_graph   15 0 0   100%
tests / test_zenodo_upload.py TestExtractKeeperInfo.test_keeper_without_location   10 0 0   100%
tests / test_zenodo_upload.py TestBuildEnhancedDescription.test_raw_stage_description   2 0 0   100%
tests / test_zenodo_upload.py TestBuildEnhancedDescription.test_dcho_stage_description   4 0 0   100%
tests / test_zenodo_upload.py TestBuildEnhancedDescription.test_dchoo_stage_description   3 0 0   100%
tests / test_zenodo_upload.py TestBuildEnhancedDescription.test_description_never_contains_disclaimer   2 0 0   100%
tests / test_zenodo_upload.py TestBuildEnhancedDescription.test_includes_keeper_and_location   2 0 0   100%
tests / test_zenodo_upload.py TestBuildEnhancedDescription.test_includes_keeper_without_location   3 0 0   100%
tests / test_zenodo_upload.py TestBuildEnhancedDescription.test_no_keeper_line_when_none   2 0 0   100%
tests / test_zenodo_upload.py TestBuildEnhancedDescription.test_description_is_single_paragraph   2 0 0   100%
tests / test_zenodo_upload.py TestFormatCreatorsForTable.test_formats_multiple_creators   2 0 0   100%
tests / test_zenodo_upload.py TestFormatCreatorsForTable.test_formats_single_creator   2 0 0   100%
tests / test_zenodo_upload.py TestFormatLicensesForTable.test_formats_cc0_metadata_and_content   2 0 0   100%
tests / test_zenodo_upload.py TestFormatLicensesForTable.test_formats_mixed_licenses   2 0 0   100%
tests / test_zenodo_upload.py TestFormatLicensesForTable.test_formats_metadata_only   2 0 0   100%
tests / test_zenodo_upload.py TestExtractDoi.test_extracts_doi_from_record   2 0 0   100%
tests / test_zenodo_upload.py TestExtractDoi.test_returns_empty_string_on_sandbox   2 0 0   100%
tests / test_zenodo_upload.py TestExtractRecordUrl.test_extracts_url_from_record   2 0 0   100%
tests / test_zenodo_upload.py TestExtractAcquisitionTechnique.test_extracts_photography_from_kg   2 0 0   100%
tests / test_zenodo_upload.py TestExtractAcquisitionTechnique.test_extracts_scanning_from_kg   2 0 0   100%
tests / test_zenodo_upload.py TestExtractAcquisitionTechnique.test_returns_none_for_missing_entity   2 0 0   100%
tests / test_zenodo_upload.py TestExtractAcquisitionTechnique.test_extracts_from_synthetic_graph   4 0 0   100%
tests / test_zenodo_upload.py TestExtractDevices.test_extracts_devices_from_kg   2 0 0   100%
tests / test_zenodo_upload.py TestExtractDevices.test_extracts_scanner_device   2 0 0   100%
tests / test_zenodo_upload.py TestExtractDevices.test_returns_empty_for_missing_entity   2 0 0   100%
tests / test_zenodo_upload.py TestExtractDevices.test_excludes_item_uris   6 0 0   100%
tests / test_zenodo_upload.py TestExtractSoftwareForStage.test_extracts_raw_software   2 0 0   100%
tests / test_zenodo_upload.py TestExtractSoftwareForStage.test_extracts_rawp_software   2 0 0   100%
tests / test_zenodo_upload.py TestExtractSoftwareForStage.test_excludes_metadata_step_software   4 0 0   100%
tests / test_zenodo_upload.py TestExtractSoftwareForStage.test_includes_step_06_software   2 0 0   100%
tests / test_zenodo_upload.py TestExtractSoftwareForStage.test_returns_empty_for_missing_entity   2 0 0   100%
tests / test_zenodo_upload.py TestBuildMethodsDescription.test_includes_workflow_reference   3 0 0   100%
tests / test_zenodo_upload.py TestBuildMethodsDescription.test_includes_technique_and_devices   3 0 0   100%
tests / test_zenodo_upload.py TestBuildMethodsDescription.test_includes_software_for_rawp   3 0 0   100%
tests / test_zenodo_upload.py TestBuildMethodsDescription.test_no_software_for_raw   2 0 0   100%
tests / test_zenodo_upload.py TestBuildMethodsDescription.test_includes_chad_ap_reference   3 0 0   100%
tests / test_zenodo_upload.py TestBuildMethodsDescription.test_scanning_entity   3 0 0   100%
tests / test_zenodo_upload.py _write_config   6 0 0   100%
tests / test_zenodo_upload.py TestAtomicWriteJson.test_writes_json   4 0 0   100%
tests / test_zenodo_upload.py TestAtomicWriteJson.test_overwrites_existing   5 0 0   100%
tests / test_zenodo_upload.py TestWriteDoiTable.test_generates_csv_from_drafts   8 0 0   100%
tests / test_zenodo_upload.py TestWriteDoiTable.test_skips_failed_entries   6 0 0   100%
tests / test_zenodo_upload.py TestUploadAllResume._setup_configs   6 0 0   100%
tests / test_zenodo_upload.py TestUploadAllResume.test_fresh_upload   11 0 0   100%
tests / test_zenodo_upload.py TestUploadAllResume.test_fresh_upload.side_effect   2 0 0   100%
tests / test_zenodo_upload.py TestUploadAllResume.test_resume_skips_completed   13 0 0   100%
tests / test_zenodo_upload.py TestUploadAllResume.test_failure_continues_and_records_error   14 0 0   100%
tests / test_zenodo_upload.py TestUploadAllResume.test_failure_continues_and_records_error.side_effect   4 0 0   100%
tests / test_zenodo_upload.py TestUploadAllResume.test_failed_entry_retried_on_rerun   13 0 0   100%
tests / test_zenodo_upload.py TestUploadAllResume.test_drafts_json_written_after_each_upload   8 0 0   100%
tests / test_zenodo_upload.py TestUploadAllResume.test_drafts_json_written_after_each_upload.counting_upload   1 0 0   100%
tests / test_zenodo_upload.py TestUploadAllResume.test_drafts_json_written_after_each_upload.tracking_write   6 0 0   100%
tests / test_zenodo_upload.py TestUploadAllResume.test_publish_flag_sets_published_status   8 0 0   100%
tests / test_zenodo_upload.py TestPublishAllDraftsResume._make_drafts   12 0 0   100%
tests / test_zenodo_upload.py TestPublishAllDraftsResume.test_publishes_uploaded_drafts   8 0 0   100%
tests / test_zenodo_upload.py TestPublishAllDraftsResume.test_skips_already_published   8 0 0   100%
tests / test_zenodo_upload.py TestPublishAllDraftsResume.test_failure_continues   11 0 0   100%
tests / test_zenodo_upload.py TestPublishAllDraftsResume.test_failure_continues.side_effect   4 0 0   100%
tests / test_zenodo_upload.py TestPublishAllDraftsResume.test_retries_publish_failed   9 0 0   100%
tests / test_zenodo_upload.py TestPublishAllDraftsResume.test_skips_upload_failed_entries   8 0 0   100%
tests / test_zenodo_upload.py (no function)   192 0 0   100%
Total     2097 163 75   92%

No items found using the specified filter.