def test_output_input_same_is_invalid(tmpdir): temp_dir = tmpdir / "temp" temp_dir.mkdir() with pytest.raises(ValueError) as e: workflow = HathiLimitedToDLWorkflow() workflow.validate_user_options(Input=temp_dir.realpath(), Output=temp_dir.realpath()) assert "Input cannot be the same as Output" in str(e.value)
def test_output_must_exist(tmpdir): temp_dir = tmpdir / "temp" temp_dir.mkdir() with pytest.raises(ValueError) as e: workflow = HathiLimitedToDLWorkflow() workflow.validate_user_options(Input=temp_dir.realpath(), Output="./invalid_folder/") assert "Output does not exist" in str(e.value)
def test_create_new_task(self): workflow = HathiLimitedToDLWorkflow() task_builder = Mock() args = { "task_builder": task_builder, "package": Mock(), "destination": Mock() } workflow.create_new_task(**args) assert task_builder.add_subtask.called is True
def test_no_missing_required(missing, tmpdir): temp_dir = tmpdir / "temp" temp_dir.mkdir() user_args = { "Input": temp_dir.realpath(), "Output": temp_dir.realpath() } with pytest.raises(ValueError) as e: workflow = HathiLimitedToDLWorkflow() user_args[missing] = "" workflow.validate_user_options(**user_args) assert f"Missing required value for {missing}" in str(e.value)
def test_report(self): results = [ Mock(), Mock(), ] report = HathiLimitedToDLWorkflow.generate_report( results=results, Output="dummy" ) assert "All done. Converted 2 packages." in report
def test_discover_task_metadata(self, monkeypatch): workflow = HathiLimitedToDLWorkflow() user_args = { "Input": "source", "Output": "dest" } def locate_packages(_, path): return [ Mock() ] monkeypatch.setattr( packager.packages.HathiLimitedView, "locate_packages", locate_packages ) task_metadata = workflow.discover_task_metadata( initial_results=[], additional_data=[], **user_args ) assert task_metadata[0]["destination"] == user_args['Output'] and \ 'package' in task_metadata[0]
def test_hathi_limited_to_dl_compound_has_options(index, label): workflow = HathiLimitedToDLWorkflow() user_options = workflow.user_options() assert len(user_options) > 0 assert user_options[index].label_text == label