Skip to content

Commit 2402abe

Browse files
committed
BUG: Fix StataReaders being left open in tests
1 parent f62cc29 commit 2402abe

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

pandas/tests/io/test_stata.py

+20-20
Original file line numberDiff line numberDiff line change
@@ -600,9 +600,8 @@ def test_value_labels_old_format(self, datapath):
600600
# Test that value_labels() returns an empty dict if the file format
601601
# predates supporting value labels.
602602
dpath = datapath("io", "data", "stata", "S4_EDUC1.dta")
603-
reader = StataReader(dpath)
604-
assert reader.value_labels() == {}
605-
reader.close()
603+
with StataReader(dpath) as reader:
604+
assert reader.value_labels() == {}
606605

607606
def test_date_export_formats(self):
608607
columns = ["tc", "td", "tw", "tm", "tq", "th", "ty"]
@@ -1820,9 +1819,9 @@ def test_utf8_writer(self, version):
18201819
data["β"].replace(value_labels["β"]).astype("category").cat.as_ordered()
18211820
)
18221821
tm.assert_frame_equal(data, reread_encoded)
1823-
reader = StataReader(path)
1824-
assert reader.data_label == data_label
1825-
assert reader.variable_labels() == variable_labels
1822+
with StataReader(path) as reader:
1823+
assert reader.data_label == data_label
1824+
assert reader.variable_labels() == variable_labels
18261825

18271826
data.to_stata(path, version=version, write_index=False)
18281827
reread_to_stata = read_stata(path)
@@ -1945,11 +1944,11 @@ def test_chunked_categorical(version):
19451944
df.index.name = "index"
19461945
with tm.ensure_clean() as path:
19471946
df.to_stata(path, version=version)
1948-
reader = StataReader(path, chunksize=2, order_categoricals=False)
1949-
for i, block in enumerate(reader):
1950-
block = block.set_index("index")
1951-
assert "cats" in block
1952-
tm.assert_series_equal(block.cats, df.cats.iloc[2 * i : 2 * (i + 1)])
1947+
with StataReader(path, chunksize=2, order_categoricals=False) as reader:
1948+
for i, block in enumerate(reader):
1949+
block = block.set_index("index")
1950+
assert "cats" in block
1951+
tm.assert_series_equal(block.cats, df.cats.iloc[2 * i : 2 * (i + 1)])
19531952

19541953

19551954
def test_chunked_categorical_partial(datapath):
@@ -1975,7 +1974,8 @@ def test_chunked_categorical_partial(datapath):
19751974
def test_iterator_errors(datapath, chunksize):
19761975
dta_file = datapath("io", "data", "stata", "stata-dta-partially-labeled.dta")
19771976
with pytest.raises(ValueError, match="chunksize must be a positive"):
1978-
StataReader(dta_file, chunksize=chunksize)
1977+
with StataReader(dta_file, chunksize=chunksize):
1978+
pass
19791979

19801980

19811981
def test_iterator_value_labels():
@@ -2077,9 +2077,9 @@ def test_non_categorical_value_labels():
20772077
writer = StataWriter(path, data, value_labels=value_labels)
20782078
writer.write_file()
20792079

2080-
reader = StataReader(path)
2081-
reader_value_labels = reader.value_labels()
2082-
assert reader_value_labels == expected
2080+
with StataReader(path) as reader:
2081+
reader_value_labels = reader.value_labels()
2082+
assert reader_value_labels == expected
20832083

20842084
msg = "Can't create value labels for notY, it wasn't found in the dataset."
20852085
with pytest.raises(KeyError, match=msg):
@@ -2127,9 +2127,9 @@ def test_non_categorical_value_label_name_conversion():
21272127
with tm.assert_produces_warning(InvalidColumnName):
21282128
data.to_stata(path, value_labels=value_labels)
21292129

2130-
reader = StataReader(path)
2131-
reader_value_labels = reader.value_labels()
2132-
assert reader_value_labels == expected
2130+
with StataReader(path) as reader:
2131+
reader_value_labels = reader.value_labels()
2132+
assert reader_value_labels == expected
21332133

21342134

21352135
def test_non_categorical_value_label_convert_categoricals_error():
@@ -2148,8 +2148,8 @@ def test_non_categorical_value_label_convert_categoricals_error():
21482148
with tm.ensure_clean() as path:
21492149
data.to_stata(path, value_labels=value_labels)
21502150

2151-
reader = StataReader(path, convert_categoricals=False)
2152-
reader_value_labels = reader.value_labels()
2151+
with StataReader(path, convert_categoricals=False) as reader:
2152+
reader_value_labels = reader.value_labels()
21532153
assert reader_value_labels == value_labels
21542154

21552155
col = "repeated_labels"

0 commit comments

Comments
 (0)