Ejemplo n.º 1
0
 def test_generate_report(self, workflow, default_options):
     user_args = default_options.copy()
     results = [
         tasks.Result(workflow_ocr.GenerateOCRFileTask, {}),
         tasks.Result(workflow_ocr.GenerateOCRFileTask, {}),
     ]
     report = workflow.generate_report(results=results, **user_args)
     assert "Completed generating OCR 2 files" in report
Ejemplo n.º 2
0
def test_generate_report_creates_a_report(unconfigured_workflow):
    workflow, user_options = unconfigured_workflow
    job_args = {}
    results = [
        tasks.Result(workflow_hathiprep.GenerateChecksumTask,
                     data={"package_id": "123"}),
        tasks.Result(workflow_hathiprep.MakeYamlTask,
                     data={"package_id": "123"}),
    ]
    message = workflow.generate_report(results, **job_args)
    assert "Report" in message
Ejemplo n.º 3
0
def test_generate_report(unconfigured_workflow):
    workflow, user_options = unconfigured_workflow
    job_args = {}
    results = [
        tasks.Result(wf.TransformPackageTask, data=[]),
        tasks.Result(workflow_get_marc.MarcGeneratorTask, data=[]),
        tasks.Result(wf.MakeYamlTask, data=[]),
        tasks.Result(wf.GenerateChecksumTask, data=[]),
    ]
    message = workflow.generate_report(results, **job_args)
    assert isinstance(message, str)
    assert message.startswith("Results") and \
           "1 objects transformed" in message and \
           "1 marc.xml files generated" in message
Ejemplo n.º 4
0
def test_discover_task_metadata(monkeypatch, unconfigured_workflow):
    workflow, user_options = unconfigured_workflow
    additional_data = {
        'title_pages': {
            '99423682912205899': "99423682912205899_0001.tif"
        }
    }
    initial_results = [
        tasks.Result(
            wf.FindPackageTask,
            data=[Mock(metadata={
                PackageMetadata.ID: "99423682912205899",
            })])
    ]
    user_options["Source"] = "./some_real_source_folder"
    user_options["Destination"] = "./some_real_folder/",

    with monkeypatch.context() as mp:
        new_task_md = workflow.discover_task_metadata(
            initial_results=initial_results,
            additional_data=additional_data,
            **user_options)
    assert \
        len(new_task_md) == 1 and \
        new_task_md[0]['title_page'] == "99423682912205899_0001.tif" and \
        new_task_md[0]['server_url'] == "http://fake.com" and \
        new_task_md[0]['identifier_type'] == user_options['Identifier type']
 def test_generate_report(self, workflow, default_options):
     ResultsValues = workflow_make_checksum.ResultsValues
     user_args = default_options.copy()
     results = [
         tasks.Result(
             workflow_make_checksum.checksum_tasks.MakeChecksumTask,
             {ResultsValues.CHECKSUM_FILE: "checksum.md5"})
     ]
     report = workflow.generate_report(results=results, **user_args)
     assert "Checksum values for" in report
Ejemplo n.º 6
0
def test_generate_report_success(unconfigured_workflow):
    workflow, user_options = unconfigured_workflow
    report = workflow.generate_report(results=[
        tasks.Result(None, data={
            "success": True,
            "identifier": "097"
        })
    ])

    assert "Success" in report
Ejemplo n.º 7
0
 def test_generate_report_failure(self, workflow, default_options):
     user_args = default_options.copy()
     ResultValues = workflow_verify_checksums.ResultValues
     results = [
         tasks.Result(
             workflow_verify_checksums.ChecksumTask, {
                 ResultValues.CHECKSUM_REPORT_FILE: "checksum.md5",
                 ResultValues.FILENAME: "file1.jp2",
                 ResultValues.VALID: False,
             }),
         tasks.Result(
             workflow_verify_checksums.ChecksumTask, {
                 ResultValues.CHECKSUM_REPORT_FILE: "checksum.md5",
                 ResultValues.FILENAME: "file2.jp2",
                 ResultValues.VALID: False,
             }),
     ]
     report = workflow.generate_report(results=results, **user_args)
     assert "2 files failed checksum validation." in report
 def test_completion_task(self, workflow, default_options):
     user_args = default_options.copy()
     task_builder = Mock()
     ResultsValues = workflow_make_checksum.ResultsValues
     results = [
         tasks.Result(
             workflow_make_checksum.checksum_tasks.MakeChecksumTask,
             {ResultsValues.CHECKSUM_FILE: "checksum.md5"})
     ]
     workflow.completion_task(task_builder, results, **user_args)
     assert task_builder.add_subtask.called is True
Ejemplo n.º 9
0
 def test_generate_report_on_success(self, workflow, default_options):
     user_options = default_options.copy()
     user_options["Input"] = os.path.join("some", "valid", "path")
     user_options['Profile'] = 'HathiTrust JPEG 2000'
     ResultValues = workflow_validate_metadata.ResultValues
     results = [
         tasks.Result(workflow_validate_metadata.ValidateImageMetadataTask,
                      {ResultValues.VALID: True})
     ]
     report = workflow.generate_report(results, **user_options)
     assert isinstance(report, str)
     assert "Total files checked: 1" in report
Ejemplo n.º 10
0
def test_generate_report_failure(unconfigured_workflow):
    workflow, user_options = unconfigured_workflow
    report = workflow.generate_report(results=[
        tasks.Result(None,
                     data={
                         "success": False,
                         "identifier": "097",
                         "output": "Something bad happened"
                     })
    ])

    assert "Warning" in report
Ejemplo n.º 11
0
 def test_generator_report_success(self, workflow, default_options):
     result_enums = workflow_verify_checksums.ResultValues
     results = [
         tasks.Result(
             workflow_verify_checksums.ValidateChecksumTask, {
                 result_enums.VALID: True,
                 result_enums.CHECKSUM_REPORT_FILE: "SomeFile.md5",
                 result_enums.FILENAME: "somefile.txt"
             })
     ]
     report = workflow.generate_report(results=results)
     assert isinstance(report, str)
     assert "passed checksum validation" in report
Ejemplo n.º 12
0
 def test_generate_report_on_failure(self, workflow, default_options):
     user_options = default_options.copy()
     user_options["Input"] = os.path.join("some", "valid", "path")
     user_options['Profile'] = 'HathiTrust JPEG 2000'
     ResultValues = workflow_validate_metadata.ResultValues
     results = [
         tasks.Result(
             workflow_validate_metadata.ValidateImageMetadataTask, {
                 ResultValues.VALID: False,
                 ResultValues.FILENAME: "MyFailingFile.jp2",
                 ResultValues.REPORT: "spam.txt"
             })
     ]
     report = workflow.generate_report(results, **user_options)
     assert isinstance(report, str)
     assert "MyFailingFile.jp2" in report
Ejemplo n.º 13
0
def test_get_additional_info(qtbot, monkeypatch):
    workflow = wf.CaptureOneBatchToHathiComplete()
    mock_package = MagicMock()
    mock_data = {
        "ID": "99423682912205899",
        "ITEM_NAME": "",
        "TITLE_PAGE": "99423682912205899_0001.tif",
        "PATH": "/some/random/path/"
    }

    def mock_get_item(obj, key):
        return mock_data.get(key.name, str(key))

    mock_package.metadata.__getitem__ = mock_get_item
    mock_package.__len__ = lambda x: 1

    pretask_result = tasks.Result(source=wf.FindPackageTask,
                                  data=[mock_package])

    def patched_package_browser(packages, parent):
        patched_browser = \
            speedwagon.workflows.title_page_selection.PackageBrowser(
                packages, parent
            )

        patched_browser.exec = Mock()
        patched_browser.result = Mock(return_value=patched_browser.Accepted)
        data = MagicMock()
        data.metadata = MagicMock()

        data.metadata.__getitem__ = \
            lambda _, k: mock_data.get(k.name, str(k))

        patched_browser.data = Mock(return_value=[data])
        return patched_browser

    with monkeypatch.context() as mp:
        mp.setattr(wf, "PackageBrowser", patched_package_browser)

        extra_data = workflow.get_additional_info(
            parent=None, options={}, pretask_results=[pretask_result])

    assert extra_data['title_pages']['99423682912205899'] == \
           "99423682912205899_0001.tif"

    assert isinstance(extra_data, dict)
Ejemplo n.º 14
0
    def test_discover_task_metadata(self, workflow, default_options):
        user_options = default_options.copy()
        user_options["Language"] = "English"
        user_options["Path"] = os.path.join("some", "path")

        initial_results = [
            tasks.Result(workflow_ocr.FindImagesTask, ["spam.jp2"])
        ]
        additional_data = {}
        tasks_generated = workflow.discover_task_metadata(
            initial_results=initial_results,
            additional_data=additional_data,
            **user_options)
        assert len(tasks_generated) == 1
        task = tasks_generated[0]
        assert task['lang_code'] == "eng" and \
               task['source_file_path'] == "spam.jp2" and \
               task["output_file_name"] == "spam.txt"
Ejemplo n.º 15
0
def test_generate_report_creates_a_report(unconfigured_workflow):
    workflow, user_options = unconfigured_workflow
    job_args = {}
    results = [
        tasks.Result(workflow_completeness.HathiCheckMissingPackageFilesTask,
                     data=[]),
        tasks.Result(workflow_completeness.HathiManifestGenerationTask,
                     data="Manifest"),
        tasks.Result(workflow_completeness.HathiCheckMissingComponentsTask,
                     data=[]),
        tasks.Result(workflow_completeness.ValidateChecksumsTask, data=[]),
        tasks.Result(workflow_completeness.ValidateMarcTask, data=[]),
        tasks.Result(workflow_completeness.ValidateYMLTask, data=[]),
        tasks.Result(workflow_completeness.ValidateExtraSubdirectoriesTask,
                     data=[]),
        tasks.Result(workflow_completeness.PackageNamingConventionTask,
                     data=[]),
    ]
    message = workflow.generate_report(results, **job_args)
    assert "Report" in message
Ejemplo n.º 16
0
    def test_discover_task_metadata(self, workflow, default_options):
        initial_results = [
            tasks.Result(
                source=workflow_verify_checksums.ReadChecksumReportTask,
                data=[{
                    'expected_hash': 'something',
                    'filename': "somefile.txt",
                    'path': os.path.join("some", "path"),
                    'source_report': "checksums.md5"
                }])
        ]
        additional_data = {}
        user_args = default_options.copy()

        job_metadata = workflow.discover_task_metadata(
            initial_results=initial_results,
            additional_data=additional_data,
            **user_args)
        assert len(job_metadata) == 1
    def test_completion_task(self, monkeypatch, workflow, default_options):
        user_args = default_options.copy()
        task_builder = Mock()
        ResultsValues = workflow_make_checksum.ResultsValues
        results = [
            tasks.Result(
                workflow_make_checksum.checksum_tasks.MakeChecksumTask,
                {ResultsValues.CHECKSUM_FILE: "checksum.md5"})
        ]

        MakeCheckSumReportTask = Mock()

        monkeypatch.setattr(workflow_make_checksum.checksum_tasks,
                            "MakeCheckSumReportTask", MakeCheckSumReportTask)

        workflow.completion_task(task_builder, results, **user_args)
        assert task_builder.add_subtask.called is True
        assert MakeCheckSumReportTask.called is True

        MakeCheckSumReportTask.assert_called_with("checksum.md5", ANY)
Ejemplo n.º 18
0
    def test_discover_task_metadata(self, workflow, default_options):
        user_options = default_options.copy()
        user_options["Input"] = os.path.join("some", "valid", "path")
        user_options['Profile'] = 'HathiTrust JPEG 2000'

        initial_results = [
            tasks.Result(workflow_validate_metadata.LocateImagesTask,
                         ["spam.jp2"])
        ]
        additional_data = {}
        tasks_generated = workflow.discover_task_metadata(
            initial_results=initial_results,
            additional_data=additional_data,
            **user_options)
        JobValues = workflow_validate_metadata.JobValues
        assert len(tasks_generated) == 1
        assert tasks_generated[0] == {
            JobValues.ITEM_FILENAME.value: "spam.jp2",
            JobValues.PROFILE_NAME.value: user_options["Profile"]
        }