def test_execute(write_external_value_mock, write_dump_information_mock): script_dir = os.path.dirname(__file__) dump_file_path = os.path.join(script_dir, "testdata/gnd_dump.xml.gz") gnd_converter = GndDumpConverter(True) def download_dump_mock(file_prefix): dump_file = open(dump_file_path, "rb") return dump_file, None, None gnd_converter.download_dump = download_dump_mock gnd_converter.execute(ResultWriter(StringIO(), StringIO())) number_of_dumps = len(gnd_converter.FILE_PREFIXES) assert write_external_value_mock.call_count == 11 * number_of_dumps assert write_dump_information_mock.call_count == number_of_dumps
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_download_dump_error(download_file_mock): with pytest.raises(DownloadError): gnd_converter = GndDumpConverter() gnd_converter.download_dump("foobar")