Skip to content

Commit ed784a8

Browse files
WillAydjreback
authored andcommitted
Replaced open with Context Mgrs in Parser Tests (pandas-dev#21105)
1 parent cc8d33e commit ed784a8

File tree

3 files changed

+19
-25
lines changed

3 files changed

+19
-25
lines changed

pandas/tests/io/parser/common.py

+9-8
Original file line numberDiff line numberDiff line change
@@ -54,20 +54,21 @@ def test_bad_stream_exception(self):
5454
# and C engine will raise UnicodeDecodeError instead of
5555
# c engine raising ParserError and swallowing exception
5656
# that caused read to fail.
57-
handle = open(self.csv_shiftjs, "rb")
5857
codec = codecs.lookup("utf-8")
5958
utf8 = codecs.lookup('utf-8')
60-
# stream must be binary UTF8
61-
stream = codecs.StreamRecoder(
62-
handle, utf8.encode, utf8.decode, codec.streamreader,
63-
codec.streamwriter)
59+
6460
if compat.PY3:
6561
msg = "'utf-8' codec can't decode byte"
6662
else:
6763
msg = "'utf8' codec can't decode byte"
68-
with tm.assert_raises_regex(UnicodeDecodeError, msg):
69-
self.read_csv(stream)
70-
stream.close()
64+
65+
# stream must be binary UTF8
66+
with open(self.csv_shiftjs, "rb") as handle, codecs.StreamRecoder(
67+
handle, utf8.encode, utf8.decode, codec.streamreader,
68+
codec.streamwriter) as stream:
69+
70+
with tm.assert_raises_regex(UnicodeDecodeError, msg):
71+
self.read_csv(stream)
7172

7273
def test_read_csv(self):
7374
if not compat.PY3:

pandas/tests/io/parser/compression.py

+7-8
Original file line numberDiff line numberDiff line change
@@ -110,16 +110,15 @@ def test_read_csv_infer_compression(self):
110110
# see gh-9770
111111
expected = self.read_csv(self.csv1, index_col=0, parse_dates=True)
112112

113-
inputs = [self.csv1, self.csv1 + '.gz',
114-
self.csv1 + '.bz2', open(self.csv1)]
113+
with open(self.csv1) as f:
114+
inputs = [self.csv1, self.csv1 + '.gz',
115+
self.csv1 + '.bz2', f]
115116

116-
for f in inputs:
117-
df = self.read_csv(f, index_col=0, parse_dates=True,
118-
compression='infer')
119-
120-
tm.assert_frame_equal(expected, df)
117+
for inp in inputs:
118+
df = self.read_csv(inp, index_col=0, parse_dates=True,
119+
compression='infer')
121120

122-
inputs[3].close()
121+
tm.assert_frame_equal(expected, df)
123122

124123
def test_read_csv_compressed_utf16_example(self):
125124
# GH18071

pandas/tests/io/parser/test_textreader.py

+3-9
Original file line numberDiff line numberDiff line change
@@ -35,24 +35,18 @@ def setup_method(self, method):
3535
self.xls1 = os.path.join(self.dirpath, 'test.xls')
3636

3737
def test_file_handle(self):
38-
try:
39-
f = open(self.csv1, 'rb')
38+
with open(self.csv1, 'rb') as f:
4039
reader = TextReader(f)
41-
result = reader.read() # noqa
42-
finally:
43-
f.close()
40+
reader.read()
4441

4542
def test_string_filename(self):
4643
reader = TextReader(self.csv1, header=None)
4744
reader.read()
4845

4946
def test_file_handle_mmap(self):
50-
try:
51-
f = open(self.csv1, 'rb')
47+
with open(self.csv1, 'rb') as f:
5248
reader = TextReader(f, memory_map=True, header=None)
5349
reader.read()
54-
finally:
55-
f.close()
5650

5751
def test_StringIO(self):
5852
with open(self.csv1, 'rb') as f:

0 commit comments

Comments
 (0)