def test_verbose_produces_output(self, capsys, tmpdir): r = airbase.AirbaseRequest(verbose=False, preload_csv_links=True) r.download_to_directory(str(tmpdir)) output = capsys.readouterr() assert len(output.out) == 0 assert len(output.err) == 0 r = airbase.AirbaseRequest(verbose=True, preload_csv_links=True) r.download_to_directory(str(tmpdir)) output = capsys.readouterr() assert len(output.out) == 0 assert len(output.err) > 0
def test_download_metadata(self, tmpdir): r = airbase.AirbaseRequest() with pytest.raises(NotADirectoryError): r.download_metadata("does/not/exist.tsv") r.download_metadata(str(tmpdir / "meta.tsv")) assert os.path.exists(str(tmpdir / "meta.tsv"))
def test_download_file(self, tmpdir): r = airbase.AirbaseRequest() fpath = str(tmpdir / "test.csv") r.download_to_file(fpath) assert os.path.exists(fpath) # make sure header written with open(fpath) as h: lines = h.readlines() header = lines[0].strip() header_expected = resources.CSV_RESPONSE.split("\n")[0] assert header == header_expected # make sure header only there once is_header = [l.strip() == header_expected for l in lines] assert sum(is_header) == 1
def test_download_metadata_curdir(self, tmpdir, monkeypatch): r = airbase.AirbaseRequest() monkeypatch.chdir(str(tmpdir)) r.download_metadata("meta.tsv") assert os.path.exists("meta.tsv")
def test_download_file_curdir(self, tmpdir, monkeypatch): monkeypatch.chdir(str(tmpdir)) r = airbase.AirbaseRequest() r.download_to_file("test.csv") assert os.path.exists("test.csv")
def test_download_file_directory_must_exist(self): r = airbase.AirbaseRequest() with pytest.raises(NotADirectoryError): r.download_to_file("does/not/exist.csv")
def test_download_to_directory_files_written(self, tmpdir): r = airbase.AirbaseRequest() r.download_to_directory(str(tmpdir)) assert len(glob.glob(str(tmpdir / "*.csv"))) > 0
def test_preload_csv_links(self): r = airbase.AirbaseRequest(preload_csv_links=False) assert r._csv_links == [] r = airbase.AirbaseRequest(preload_csv_links=True) assert len(r._csv_links) > 0