Skip to content

TST: use more context managers #39785

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 13, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 67 additions & 57 deletions pandas/tests/io/excel/test_writers.py
Original file line number Diff line number Diff line change
Expand Up @@ -342,8 +342,8 @@ def test_excel_sheet_by_name_raise(self, path, engine):
gt = DataFrame(np.random.randn(10, 2))
gt.to_excel(path)

xl = ExcelFile(path)
df = pd.read_excel(xl, sheet_name=0, index_col=0)
with ExcelFile(path) as xl:
df = pd.read_excel(xl, sheet_name=0, index_col=0)

tm.assert_frame_equal(gt, df)

Expand Down Expand Up @@ -419,8 +419,8 @@ def test_mixed(self, frame, path):
mixed_frame["foo"] = "bar"

mixed_frame.to_excel(path, "test1")
reader = ExcelFile(path)
recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
tm.assert_frame_equal(mixed_frame, recons)

def test_ts_frame(self, tsframe, path):
Expand All @@ -431,9 +431,8 @@ def test_ts_frame(self, tsframe, path):
df.index = index

df.to_excel(path, "test1")
reader = ExcelFile(path)

recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
tm.assert_frame_equal(df, recons)

def test_basics_with_nan(self, frame, path):
Expand All @@ -451,8 +450,8 @@ def test_int_types(self, np_type, path):
df = DataFrame(np.random.randint(-10, 10, size=(10, 2)), dtype=np_type)
df.to_excel(path, "test1")

reader = ExcelFile(path)
recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=0)

int_frame = df.astype(np.int64)
tm.assert_frame_equal(int_frame, recons)
Expand All @@ -475,8 +474,10 @@ def test_float_types(self, np_type, path):
df = DataFrame(np.random.random_sample(10), dtype=np_type)
df.to_excel(path, "test1")

reader = ExcelFile(path)
recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(np_type)
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(
np_type
)

tm.assert_frame_equal(df, recons)

Expand All @@ -486,17 +487,19 @@ def test_bool_types(self, np_type, path):
df = DataFrame([1, 0, True, False], dtype=np_type)
df.to_excel(path, "test1")

reader = ExcelFile(path)
recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(np_type)
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(
np_type
)

tm.assert_frame_equal(df, recons)

def test_inf_roundtrip(self, path):
df = DataFrame([(1, np.inf), (2, 3), (5, -np.inf)])
df.to_excel(path, "test1")

reader = ExcelFile(path)
recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=0)

tm.assert_frame_equal(df, recons)

Expand All @@ -518,11 +521,11 @@ def test_sheets(self, frame, tsframe, path):
with ExcelWriter(path) as writer:
frame.to_excel(writer, "test1")
tsframe.to_excel(writer, "test2")
reader = ExcelFile(path)
recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
tm.assert_frame_equal(frame, recons)
recons = pd.read_excel(reader, sheet_name="test2", index_col=0)
tm.assert_frame_equal(tsframe, recons)
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
tm.assert_frame_equal(frame, recons)
recons = pd.read_excel(reader, sheet_name="test2", index_col=0)
tm.assert_frame_equal(tsframe, recons)
assert 2 == len(reader.sheet_names)
assert "test1" == reader.sheet_names[0]
assert "test2" == reader.sheet_names[1]
Expand All @@ -539,8 +542,8 @@ def test_colaliases(self, frame, path):
# column aliases
col_aliases = Index(["AA", "X", "Y", "Z"])
frame.to_excel(path, "test1", header=col_aliases)
reader = ExcelFile(path)
rs = pd.read_excel(reader, sheet_name="test1", index_col=0)
with ExcelFile(path) as reader:
rs = pd.read_excel(reader, sheet_name="test1", index_col=0)
xp = frame.copy()
xp.columns = col_aliases
tm.assert_frame_equal(xp, rs)
Expand All @@ -557,8 +560,10 @@ def test_roundtrip_indexlabels(self, merge_cells, frame, path):
# test index_label
df = DataFrame(np.random.randn(10, 2)) >= 0
df.to_excel(path, "test1", index_label=["test"], merge_cells=merge_cells)
reader = ExcelFile(path)
recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(np.int64)
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(
np.int64
)
df.index.names = ["test"]
assert df.index.names == recons.index.names

Expand All @@ -569,15 +574,19 @@ def test_roundtrip_indexlabels(self, merge_cells, frame, path):
index_label=["test", "dummy", "dummy2"],
merge_cells=merge_cells,
)
reader = ExcelFile(path)
recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(np.int64)
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(
np.int64
)
df.index.names = ["test"]
assert df.index.names == recons.index.names

df = DataFrame(np.random.randn(10, 2)) >= 0
df.to_excel(path, "test1", index_label="test", merge_cells=merge_cells)
reader = ExcelFile(path)
recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(np.int64)
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=0).astype(
np.int64
)
df.index.names = ["test"]
tm.assert_frame_equal(df, recons.astype(bool))

Expand All @@ -592,8 +601,8 @@ def test_roundtrip_indexlabels(self, merge_cells, frame, path):
df = frame.copy()
df = df.set_index(["A", "B"])

reader = ExcelFile(path)
recons = pd.read_excel(reader, sheet_name="test1", index_col=[0, 1])
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=[0, 1])
tm.assert_frame_equal(df, recons)

def test_excel_roundtrip_indexname(self, merge_cells, path):
Expand All @@ -602,8 +611,8 @@ def test_excel_roundtrip_indexname(self, merge_cells, path):

df.to_excel(path, merge_cells=merge_cells)

xf = ExcelFile(path)
result = pd.read_excel(xf, sheet_name=xf.sheet_names[0], index_col=0)
with ExcelFile(path) as xf:
result = pd.read_excel(xf, sheet_name=xf.sheet_names[0], index_col=0)

tm.assert_frame_equal(result, df)
assert result.index.name == "foo"
Expand All @@ -620,8 +629,8 @@ def test_excel_roundtrip_datetime(self, merge_cells, tsframe, path):
tsf.index = [x.date() for x in tsframe.index]
tsf.to_excel(path, "test1", merge_cells=merge_cells)

reader = ExcelFile(path)
recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=0)

tm.assert_frame_equal(tsframe, recons)

Expand Down Expand Up @@ -680,9 +689,8 @@ def test_to_excel_interval_no_labels(self, path):
expected["new"] = pd.cut(expected[0], 10).astype(str)

df.to_excel(path, "test1")
reader = ExcelFile(path)

recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
tm.assert_frame_equal(expected, recons)

def test_to_excel_interval_labels(self, path):
Expand All @@ -698,9 +706,8 @@ def test_to_excel_interval_labels(self, path):
expected["new"] = pd.Series(list(intervals))

df.to_excel(path, "test1")
reader = ExcelFile(path)

recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
tm.assert_frame_equal(expected, recons)

def test_to_excel_timedelta(self, path):
Expand All @@ -718,18 +725,17 @@ def test_to_excel_timedelta(self, path):
)

df.to_excel(path, "test1")
reader = ExcelFile(path)

recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=0)
tm.assert_frame_equal(expected, recons)

def test_to_excel_periodindex(self, tsframe, path):
xp = tsframe.resample("M", kind="period").mean()

xp.to_excel(path, "sht1")

reader = ExcelFile(path)
rs = pd.read_excel(reader, sheet_name="sht1", index_col=0)
with ExcelFile(path) as reader:
rs = pd.read_excel(reader, sheet_name="sht1", index_col=0)
tm.assert_frame_equal(xp, rs.to_period("M"))

def test_to_excel_multiindex(self, merge_cells, frame, path):
Expand All @@ -742,8 +748,8 @@ def test_to_excel_multiindex(self, merge_cells, frame, path):

# round trip
frame.to_excel(path, "test1", merge_cells=merge_cells)
reader = ExcelFile(path)
df = pd.read_excel(reader, sheet_name="test1", index_col=[0, 1])
with ExcelFile(path) as reader:
df = pd.read_excel(reader, sheet_name="test1", index_col=[0, 1])
tm.assert_frame_equal(frame, df)

# GH13511
Expand Down Expand Up @@ -771,8 +777,10 @@ def test_to_excel_multiindex_cols(self, merge_cells, frame, path):

# round trip
frame.to_excel(path, "test1", merge_cells=merge_cells)
reader = ExcelFile(path)
df = pd.read_excel(reader, sheet_name="test1", header=header, index_col=[0, 1])
with ExcelFile(path) as reader:
df = pd.read_excel(
reader, sheet_name="test1", header=header, index_col=[0, 1]
)
if not merge_cells:
fm = frame.columns.format(sparsify=False, adjoin=False, names=False)
frame.columns = [".".join(map(str, q)) for q in zip(*fm)]
Expand All @@ -785,8 +793,8 @@ def test_to_excel_multiindex_dates(self, merge_cells, tsframe, path):

tsframe.index.names = ["time", "foo"]
tsframe.to_excel(path, "test1", merge_cells=merge_cells)
reader = ExcelFile(path)
recons = pd.read_excel(reader, sheet_name="test1", index_col=[0, 1])
with ExcelFile(path) as reader:
recons = pd.read_excel(reader, sheet_name="test1", index_col=[0, 1])

tm.assert_frame_equal(tsframe, recons)
assert recons.index.names == ("time", "foo")
Expand All @@ -806,8 +814,8 @@ def test_to_excel_multiindex_no_write_index(self, path):
frame2.to_excel(path, "test1", index=False)

# Read it back in.
reader = ExcelFile(path)
frame3 = pd.read_excel(reader, sheet_name="test1")
with ExcelFile(path) as reader:
frame3 = pd.read_excel(reader, sheet_name="test1")

# Test that it is the same as the initial frame.
tm.assert_frame_equal(frame1, frame3)
Expand All @@ -820,8 +828,8 @@ def test_to_excel_float_format(self, path):
)
df.to_excel(path, "test1", float_format="%.2f")

reader = ExcelFile(path)
result = pd.read_excel(reader, sheet_name="test1", index_col=0)
with ExcelFile(path) as reader:
result = pd.read_excel(reader, sheet_name="test1", index_col=0)

expected = DataFrame(
[[0.12, 0.23, 0.57], [12.32, 123123.20, 321321.20]],
Expand Down Expand Up @@ -979,8 +987,10 @@ def test_excel_010_hemstring(
def roundtrip(data, header=True, parser_hdr=0, index=True):
data.to_excel(path, header=header, merge_cells=merge_cells, index=index)

xf = ExcelFile(path)
return pd.read_excel(xf, sheet_name=xf.sheet_names[0], header=parser_hdr)
with ExcelFile(path) as xf:
return pd.read_excel(
xf, sheet_name=xf.sheet_names[0], header=parser_hdr
)

# Basic test.
parser_header = 0 if use_headers else None
Expand Down
6 changes: 3 additions & 3 deletions pandas/tests/io/formats/test_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,9 +162,9 @@ def test_info_verbose_with_counts_spacing(
):
"""Test header column, spacer, first line and last line in verbose mode."""
frame = DataFrame(np.random.randn(3, size))
buf = StringIO()
frame.info(verbose=True, show_counts=True, buf=buf)
all_lines = buf.getvalue().splitlines()
with StringIO() as buf:
frame.info(verbose=True, show_counts=True, buf=buf)
all_lines = buf.getvalue().splitlines()
# Here table would contain only header, separator and table lines
# dframe repr, index summary, memory usage and dtypes are excluded
table = all_lines[3:-2]
Expand Down
5 changes: 2 additions & 3 deletions pandas/tests/io/generate_legacy_storage_files.py
Original file line number Diff line number Diff line change
Expand Up @@ -327,9 +327,8 @@ def write_legacy_pickles(output_dir):

pth = f"{platform_name()}.pickle"

fh = open(os.path.join(output_dir, pth), "wb")
pickle.dump(create_pickle_data(), fh, pickle.DEFAULT_PROTOCOL)
fh.close()
with open(os.path.join(output_dir, pth), "wb") as fh:
pickle.dump(create_pickle_data(), fh, pickle.DEFAULT_PROTOCOL)

print(f"created pickle file: {pth}")

Expand Down
6 changes: 3 additions & 3 deletions pandas/tests/io/parser/test_c_parser_only.py
Original file line number Diff line number Diff line change
Expand Up @@ -305,9 +305,9 @@ def test_grow_boundary_at_cap(c_parser_only):
parser = c_parser_only

def test_empty_header_read(count):
s = StringIO("," * count)
expected = DataFrame(columns=[f"Unnamed: {i}" for i in range(count + 1)])
df = parser.read_csv(s)
with StringIO("," * count) as s:
expected = DataFrame(columns=[f"Unnamed: {i}" for i in range(count + 1)])
df = parser.read_csv(s)
tm.assert_frame_equal(df, expected)

for cnt in range(1, 101):
Expand Down
3 changes: 2 additions & 1 deletion pandas/tests/io/parser/test_network.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,8 @@ def test_read_csv_handles_boto_s3_object(self, s3_resource, tips_file):
Bucket="pandas-test", Key="tips.csv"
)

result = read_csv(BytesIO(s3_object["Body"].read()), encoding="utf8")
with BytesIO(s3_object["Body"].read()) as buffer:
result = read_csv(buffer, encoding="utf8")
assert isinstance(result, DataFrame)
assert not result.empty

Expand Down
Loading