Skip to content

Commit 99d3540

Browse files
committed
BUG: Fix StataReaders being left open in tests
1 parent 1532991 commit 99d3540

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)
@@ -1922,11 +1921,11 @@ def test_chunked_categorical(version):
19221921
df.index.name = "index"
19231922
with tm.ensure_clean() as path:
19241923
df.to_stata(path, version=version)
1925-
reader = StataReader(path, chunksize=2, order_categoricals=False)
1926-
for i, block in enumerate(reader):
1927-
block = block.set_index("index")
1928-
assert "cats" in block
1929-
tm.assert_series_equal(block.cats, df.cats.iloc[2 * i : 2 * (i + 1)])
1924+
with StataReader(path, chunksize=2, order_categoricals=False) as reader:
1925+
for i, block in enumerate(reader):
1926+
block = block.set_index("index")
1927+
assert "cats" in block
1928+
tm.assert_series_equal(block.cats, df.cats.iloc[2 * i : 2 * (i + 1)])
19301929

19311930

19321931
def test_chunked_categorical_partial(datapath):
@@ -1952,7 +1951,8 @@ def test_chunked_categorical_partial(datapath):
19521951
def test_iterator_errors(datapath, chunksize):
19531952
dta_file = datapath("io", "data", "stata", "stata-dta-partially-labeled.dta")
19541953
with pytest.raises(ValueError, match="chunksize must be a positive"):
1955-
StataReader(dta_file, chunksize=chunksize)
1954+
with StataReader(dta_file, chunksize=chunksize):
1955+
pass
19561956

19571957

19581958
def test_iterator_value_labels():
@@ -2051,9 +2051,9 @@ def test_non_categorical_value_labels():
20512051
writer = StataWriter(path, data, value_labels=value_labels)
20522052
writer.write_file()
20532053

2054-
reader = StataReader(path)
2055-
reader_value_labels = reader.value_labels()
2056-
assert reader_value_labels == expected
2054+
with StataReader(path) as reader:
2055+
reader_value_labels = reader.value_labels()
2056+
assert reader_value_labels == expected
20572057

20582058
msg = "Can't create value labels for notY, it wasn't found in the dataset."
20592059
with pytest.raises(KeyError, match=msg):
@@ -2101,9 +2101,9 @@ def test_non_categorical_value_label_name_conversion():
21012101
with tm.assert_produces_warning(InvalidColumnName):
21022102
data.to_stata(path, value_labels=value_labels)
21032103

2104-
reader = StataReader(path)
2105-
reader_value_labels = reader.value_labels()
2106-
assert reader_value_labels == expected
2104+
with StataReader(path) as reader:
2105+
reader_value_labels = reader.value_labels()
2106+
assert reader_value_labels == expected
21072107

21082108

21092109
def test_non_categorical_value_label_convert_categoricals_error():
@@ -2122,8 +2122,8 @@ def test_non_categorical_value_label_convert_categoricals_error():
21222122
with tm.ensure_clean() as path:
21232123
data.to_stata(path, value_labels=value_labels)
21242124

2125-
reader = StataReader(path, convert_categoricals=False)
2126-
reader_value_labels = reader.value_labels()
2125+
with StataReader(path, convert_categoricals=False) as reader:
2126+
reader_value_labels = reader.value_labels()
21272127
assert reader_value_labels == value_labels
21282128

21292129
col = "repeated_labels"

0 commit comments

Comments
 (0)