Skip to content

Commit f43a218

Browse files
committed
reaching 100% test coverage
1 parent 3f53535 commit f43a218

File tree

4 files changed

+71
-19
lines changed

4 files changed

+71
-19
lines changed

doc/source/index.rst

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,6 @@ After that, you can start get and save data in the loaded format.
8181
0.0.4 0.0.7 0.0.6 0.0.6 0.0.8
8282
0.0.3 0.0.6 0.0.5 0.0.5 0.0.7
8383
0.0.2 0.0.3-0.0.5 0.0.2-0.0.4 0.0.4 0.0.5-0.0.6
84-
0.0.2 0.0.3-0.0.5 0.0.2-0.0.4 0.0.4 0.0.5-0.0.6
85-
0.0.2 0.0.3-0.0.5 0.0.2-0.0.4 0.0.4 0.0.5-0.0.6
86-
0.0.2 0.0.3-0.0.5 0.0.2-0.0.4 0.0.4 0.0.5-0.0.6
8784
0.0.1 0.0.2 0.0.1 0.0.3 0.0.4
8885
============= =========== ============ ============ ============
8986

pyexcel_io/__init__.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,10 @@
4444
DEFAULT_SHEET_NAME
4545
)
4646

47+
# Please also register here
48+
TEXT_STREAM_TYPES = [FILE_FORMAT_CSV, FILE_FORMAT_TSV]
4749

50+
# Please also register here
4851
BINARY_STREAM_TYPES = [FILE_FORMAT_CSVZ, FILE_FORMAT_TSVZ,
4952
FILE_FORMAT_ODS, FILE_FORMAT_XLS,
5053
FILE_FORMAT_XLSX, FILE_FORMAT_XLSM]
@@ -194,7 +197,7 @@ def get_writer(filename, file_type=None, **keywords):
194197

195198

196199
def get_io(file_type):
197-
if file_type in [FILE_FORMAT_CSV, FILE_FORMAT_TSV]:
200+
if file_type in TEXT_STREAM_TYPES:
198201
return StringIO()
199202
elif file_type in BINARY_STREAM_TYPES:
200203
return BytesIO()
@@ -203,7 +206,7 @@ def get_io(file_type):
203206

204207

205208
def validate_io(file_type, io):
206-
if file_type in [FILE_FORMAT_CSV, FILE_FORMAT_TSV]:
209+
if file_type in TEXT_STREAM_TYPES:
207210
return isinstance(io, StringIO)
208211
elif file_type in BINARY_STREAM_TYPES:
209212
return isinstance(io, BytesIO)
@@ -242,7 +245,7 @@ def save_data(afile, data, file_type=None, **keywords):
242245
else:
243246
single_sheet_in_book = False
244247

245-
if isstream(afile):
248+
if isstream(afile) and file_type is None:
246249
file_type = FILE_FORMAT_CSV
247250

248251
store_data(afile, to_store,

tests/test_base.py

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,25 @@ class TestSheetWriterBase:
142142
@raises(TypeError)
143143
def test_abstractness(self):
144144
SheetWriterBase("test")
145+
146+
def test_sheet_writer_base(self):
147+
class D(SheetWriterBase):
148+
def close(self):
149+
SheetWriterBase.close(self)
150+
pass
151+
152+
def set_size(self, size):
153+
SheetWriterBase.set_size(self, size)
154+
pass
155+
156+
def write_array(self, table):
157+
SheetWriterBase.write_array(self, table)
158+
pass
159+
160+
d = D()
161+
d.set_size(10)
162+
d.write_array([11,11])
163+
d.close()
145164

146165
class TestSheetWriter:
147166
@raises(TypeError)
@@ -150,20 +169,10 @@ def test_abstractness(self):
150169

151170
def test_inheritance(self):
152171
class D(SheetWriter):
153-
def set_sheet_name(self, name):
154-
SheetWriter.set_sheet_name(self, name)
155-
pass
156-
157-
def set_size(self, size):
158-
SheetWriter.set_size(self, size)
159-
pass
160-
161172
def write_row(self, row):
162173
SheetWriter.write_row(self, row)
163174
pass
164175

165-
D('t','e','s').set_sheet_name("test")
166-
D('t','e','s').set_size(10)
167176
D('t','e','s').write_row([11,11])
168177

169178
def test_writer(self):

tests/test_io.py

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import sys
2-
from pyexcel_io import load_data, StringIO, get_writer, get_io, BytesIO
2+
from pyexcel_io import load_data, StringIO, get_writer, get_io, BytesIO, BINARY_STREAM_TYPES, save_data, get_data
33
from nose.tools import raises
44

55
PY2 = sys.version_info[0] == 2
@@ -30,19 +30,37 @@ def test_load_xls_data_from_memory():
3030
io = BytesIO()
3131
load_data(io, file_type="xls")
3232

33+
34+
@raises(NotImplementedError)
35+
def test_load_unknown_data():
36+
load_data("test.unknown")
37+
38+
39+
@raises(NotImplementedError)
40+
def test_load_unknown_data_from_memory():
41+
io = BytesIO()
42+
load_data(io, file_type="unknown")
43+
44+
3345
@raises(IOError)
3446
def test_load_xlsm_data_from_memory():
3547
if not PY2:
3648
io = StringIO()
3749
get_writer(io, file_type="xlsm")
3850
else:
3951
raise IOError("pass it")
40-
52+
53+
4154
@raises(NotImplementedError)
4255
def test_write_xlsx_data():
4356
get_writer("test.xlsx")
4457

4558

59+
@raises(NotImplementedError)
60+
def test_write_unknown_data():
61+
get_writer("test.unknown")
62+
63+
4664
@raises(IOError)
4765
def test_writer_xlsm_data_from_memory():
4866
if not PY2:
@@ -51,12 +69,37 @@ def test_writer_xlsm_data_from_memory():
5169
else:
5270
raise IOError("pass it")
5371

72+
5473
@raises(NotImplementedError)
5574
def test_writer_xlsm_data_from_memory2():
5675
io = BytesIO()
5776
get_writer(io, file_type="xlsm")
5877

5978

79+
@raises(NotImplementedError)
80+
def test_writer_unknown_data_from_memory2():
81+
io = BytesIO()
82+
# mock it
83+
BINARY_STREAM_TYPES.append('unknown1')
84+
get_writer(io, file_type="unknown1")
85+
86+
6087
def test_get_io():
6188
io = get_io("hello")
62-
assert io == None
89+
assert io == None
90+
91+
92+
def test_binary_file_content():
93+
data = [['1','2','3']]
94+
io = get_io("csvz")
95+
save_data(io, data, 'csvz')
96+
result = get_data(io.getvalue(), 'csvz')
97+
assert result == data
98+
99+
100+
def test_text_file_content():
101+
data = [['1','2','3']]
102+
io = get_io("csv")
103+
save_data(io, data, 'csv')
104+
result = get_data(io.getvalue(), 'csv')
105+
assert result == data

0 commit comments

Comments
 (0)