def test_manifest_check_download(tmpdir, n_have, monkeypatch): """Test our manifest downloader.""" monkeypatch.setattr(datasets.utils, '_fetch_file', _fake_zip_fetch) destination = op.join(str(tmpdir), 'empty') manifest_path = op.join(str(tmpdir), 'manifest.txt') with open(manifest_path, 'w') as fid: for fname in _zip_fnames: fid.write('%s\n' % fname) assert n_have in range(len(_zip_fnames) + 1) assert not op.isdir(destination) if n_have > 0: os.makedirs(op.join(destination, 'foo')) assert op.isdir(op.join(destination, 'foo')) for fname in _zip_fnames: assert not op.isfile(op.join(destination, fname)) for fname in _zip_fnames[:n_have]: with open(op.join(destination, fname), 'w'): pass with catch_logging() as log: with use_log_level(True): url = hash_ = '' # we mock the _fetch_file so these are not used _manifest_check_download(manifest_path, destination, url, hash_) log = log.getvalue() n_missing = 3 - n_have assert ('%d file%s missing from' % (n_missing, _pl(n_missing))) in log for want in ('Extracting missing', 'Successfully '): if n_missing > 0: assert want in log else: assert want not in log assert op.isdir(destination) for fname in _zip_fnames: assert op.isfile(op.join(destination, fname))
def test_manifest_check_download(tmpdir, n_have, monkeypatch): """Test our manifest downloader.""" monkeypatch.setattr(datasets.utils, '_fetch_file', _fake_zip_fetch) destination = op.join(str(tmpdir), 'empty') manifest_path = op.join(str(tmpdir), 'manifest.txt') with open(manifest_path, 'w') as fid: for fname in _zip_fnames: fid.write('%s\n' % fname) assert n_have in range(len(_zip_fnames) + 1) assert not op.isdir(destination) if n_have > 0: os.makedirs(op.join(destination, 'foo')) assert op.isdir(op.join(destination, 'foo')) for fname in _zip_fnames: assert not op.isfile(op.join(destination, fname)) for fname in _zip_fnames[:n_have]: with open(op.join(destination, fname), 'w'): pass with catch_logging() as log: with use_log_level(True): url = hash_ = '' # we mock the _fetch_file so these are not used _manifest_check_download(manifest_path, destination, url, hash_) log = log.getvalue() n_missing = 3 - n_have assert ('%d file%s missing from' % (n_missing, _pl(n_missing))) in log for want in ('Extracting missing', 'Successfully '): if n_missing > 0: assert want in log else: assert want not in log assert op.isdir(destination) for fname in _zip_fnames: assert op.isfile(op.join(destination, fname))