def patched_wrapper(download_file_mock):
        expected_size = 42
        expected_prefix = "foobar"

        gnd_converter = GndDumpConverter()
        def get_dump_url_mock(file_prefix, fallback=False):
            assert expected_prefix == file_prefix
            if fallback:
                return fallback_url
            else:
                return dump_url
        gnd_converter.get_dump_url = get_dump_url_mock
        def download_file_mock_func(url, destination_file,
                               is_quiet=False, progress_message=""):
            if url == "200":
                return expected_size
            else:
                raise DownloadError(int(url))
        download_file_mock.side_effect = download_file_mock_func

        actual_file, actual_url, actual_size = gnd_converter.download_dump(expected_prefix)

        assert expected_size == actual_size
def test_get_dump_url(prefix, date, fallback, expected_url):
    gnd_converter = GndDumpConverter()
    actual_url = gnd_converter.get_dump_url(prefix, date=date, fallback=fallback)

    assert expected_url == actual_url