Skip to content

Commit d8a8753

Browse files
committed
try to parametrize tests
1 parent f5db5f7 commit d8a8753

File tree

1 file changed

+17
-47
lines changed

1 file changed

+17
-47
lines changed

pandas/tests/series/test_io.py

Lines changed: 17 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44
from datetime import datetime
55
import collections
66
import pytest
7+
import gzip
8+
import bz2
9+
import lzma
710

811
import numpy as np
912
import pandas as pd
1013

11-
from pandas import Series, DataFrame, compat
14+
from pandas import Series, DataFrame
1215

1316
from pandas.compat import StringIO, u
1417
from pandas.util.testing import (assert_series_equal, assert_almost_equal,
@@ -139,67 +142,34 @@ def test_to_csv_path_is_none(self):
139142
csv_str = s.to_csv(path=None)
140143
assert isinstance(csv_str, str)
141144

142-
def test_to_csv_compression_gzip(self):
145+
@pytest.mark.parametrize('compression, open_func', [
146+
('gzip', gzip.open),
147+
('bz2', bz2.BZ2File),
148+
(pytest.param('xz', lzma.open, marks=td.skip_if_no_lzma)),
149+
])
150+
def test_to_csv_compression(self, compression, open_func):
143151

144152
s = Series([0.123456, 0.234567, 0.567567], index=['A', 'B', 'C'],
145153
name='X')
146154

147155
with ensure_clean() as filename:
148156

149-
s.to_csv(filename, compression="gzip", header=True)
157+
s.to_csv(filename, compression=compression, header=True)
150158

151159
# test the round trip - to_csv -> read_csv
152-
rs = pd.read_csv(filename, compression="gzip", index_col=0,
160+
rs = pd.read_csv(filename, compression=compression, index_col=0,
153161
squeeze=True)
154162
assert_series_equal(s, rs)
155163

156-
# explicitly make sure file is gziped
157-
import gzip
158-
f = gzip.open(filename, 'rb')
164+
# explicitly make sure file is compressed
165+
f = open_func(filename, 'rb')
159166
text = f.read().decode('utf8')
160-
f.close()
161-
assert s.name in text
162-
163-
def test_to_csv_compression_bz2(self):
164-
165-
s = Series([0.123456, 0.234567, 0.567567], index=['A', 'B', 'C'],
166-
name='X')
167-
168-
with ensure_clean() as filename:
169-
170-
s.to_csv(filename, compression="bz2", header=True)
171-
172-
# test the round trip - to_csv -> read_csv
173-
rs = pd.read_csv(filename, compression="bz2", index_col=0,
174-
squeeze=True)
175-
assert_series_equal(s, rs)
176-
177-
# explicitly make sure file is bz2ed
178-
import bz2
179-
f = bz2.BZ2File(filename, 'rb')
180-
text = f.read().decode('utf8')
181-
f.close()
182167
assert s.name in text
183168

184-
@td.skip_if_no_lzma
185-
def test_to_csv_compression_xz(self):
186-
187-
s = Series([0.123456, 0.234567, 0.567567], index=['A', 'B', 'C'],
188-
name='X')
189-
190-
with ensure_clean() as filename:
191-
192-
s.to_csv(filename, compression="xz", header=True)
193-
194-
# test the round trip - to_csv -> read_csv
195-
rs = pd.read_csv(filename, compression="xz", index_col=0,
196-
squeeze=True)
197-
assert_series_equal(s, rs)
169+
f = open_func(filename, 'rb')
170+
assert_series_equal(s, pd.read_csv(f, index_col=0,
171+
squeeze=True))
198172

199-
# explicitly make sure file is xzipped
200-
lzma = compat.import_lzma()
201-
f = lzma.open(filename, 'rb')
202-
assert_series_equal(s, pd.read_csv(f, index_col=0, squeeze=True))
203173
f.close()
204174

205175

0 commit comments

Comments
 (0)