1
- odf = pytest . importorskip ( "odf" )
1
+ from collections import OrderedDict
2
2
3
+ import numpy as np
4
+ import pytest
3
5
4
- def test_get_sheet (self ):
6
+ import pandas as pd
7
+ import pandas .util .testing as tm
8
+
9
+ pytest .importorskip ("odf" )
10
+
11
+
12
+ def test_get_sheet (datapath ):
5
13
from pandas .io .excel ._odfreader import ODFReader
6
14
7
- pth = os . path . join ( self . dirpath , ' datatypes.ods' )
15
+ pth = datapath ( "io" , "data" , " datatypes.ods" )
8
16
book = ODFReader (pth )
9
17
10
18
assert len (book .sheet_names ) == 1
11
19
assert book .sheet_names == ['Sheet1' ]
12
20
13
- def test_get_sheet_raises (self ):
21
+
22
+ def test_get_sheet_raises (datapath ):
14
23
from pandas .io .excel ._odfreader import ODFReader
15
24
16
- pth = os . path . join ( self . dirpath , 'datatypes.ods' )
25
+ pth = datapath ( "io" , "data" , 'datatypes.ods' )
17
26
book = ODFReader (pth )
18
27
19
28
with pytest .raises (ValueError ):
@@ -25,11 +34,12 @@ def test_get_sheet_raises(self):
25
34
with pytest .raises (IndexError ):
26
35
book .get_sheet_by_index (- 33 )
27
36
28
- def test_read_types (self ):
29
- sheet = self .get_exceldf (
30
- 'datatypes' , '.ods' , header = None , engine = 'odf' )
31
37
32
- expected = DataFrame (
38
+ def test_read_types (datapath ):
39
+ path = datapath ("io" , "data" , "datatypes.ods" )
40
+ sheet = pd .read_excel (path , header = None , engine = 'odf' )
41
+
42
+ expected = pd .DataFrame (
33
43
[[1.0 ],
34
44
[1.25 ],
35
45
['a' ],
@@ -43,32 +53,34 @@ def test_read_types(self):
43
53
['UBERON:0002101' ]])
44
54
tm .assert_equal (sheet , expected )
45
55
46
- def test_read_invalid_types_raises (self ):
56
+
57
+ def test_read_invalid_types_raises (datapath ):
47
58
# the invalid_value_type.ods required manually editing
48
59
# of the included content.xml file
60
+ path = datapath ("io" , "data" , "invalid_value_type.ods" )
49
61
with pytest .raises (ValueError ,
50
62
match = "Unrecognized type awesome_new_type" ):
51
- self .get_exceldf (
52
- 'invalid_value_type' , '.ods' , header = None , engine = 'odf' )
63
+ pd .read_excel (path , header = None , engine = 'odf' )
53
64
54
- def test_read_lower_diagonal (self ):
65
+
66
+ def test_read_lower_diagonal (datapath ):
55
67
# Make sure we can parse:
56
68
# 1
57
69
# 2 3
58
70
# 4 5 6
59
71
# 7 8 9 10
60
-
61
- sheet = self .get_exceldf (
62
- 'lowerdiagonal' , '.ods' , 'Sheet1' ,
63
- index_col = None , header = None , engine = 'odf' )
72
+ path = datapath ("io" , "data" , "lowerdiagonal.ods" )
73
+ sheet = pd .read_excel (path , 'Sheet1' ,
74
+ index_col = None , header = None , engine = 'odf' )
64
75
65
76
assert sheet .shape == (4 , 4 )
66
77
67
- def test_read_headers (self ):
68
- sheet = self .get_exceldf (
69
- 'headers' , '.ods' , 'Sheet1' , index_col = 0 , engine = 'odf' )
70
78
71
- expected = DataFrame .from_dict (OrderedDict ([
79
+ def test_read_headers (datapath ):
80
+ path = datapath ("io" , "data" , "headers.ods" )
81
+ sheet = pd .read_excel (path , 'Sheet1' , index_col = 0 , engine = 'odf' )
82
+
83
+ expected = pd .DataFrame .from_dict (OrderedDict ([
72
84
("Header" , ["Row 1" , "Row 2" ]),
73
85
("Column 1" , [1.0 , 2.0 ]),
74
86
("Column 2" , [3.0 , 4.0 ]),
@@ -84,18 +96,19 @@ def test_read_headers(self):
84
96
for value in sheet [name ]:
85
97
assert pd .isnull (value )
86
98
87
- def test_read_writer_table (self ):
99
+
100
+ def test_read_writer_table (datapath ):
88
101
# Also test reading tables from an text OpenDocument file
89
102
# (.odt)
90
103
91
- table = self . get_exceldf (
92
- 'writertable' , '.odt' , 'Table1' , index_col = 0 , engine = 'odf' )
104
+ path = datapath ( "io" , "data" , "writertable.odt" )
105
+ table = pd . read_excel ( path , 'Table1' , index_col = 0 , engine = 'odf' )
93
106
94
107
assert table .shape == (3 , 3 )
95
- expected = DataFrame .from_dict (OrderedDict ([
108
+ expected = pd . DataFrame .from_dict (OrderedDict ([
96
109
("Header" , ["Row 1" , "Row 2" , "Row 3" ]),
97
110
("Column 1" , [1.0 , 2.0 , 3.0 ]),
98
- ("Unnamed: 2" , [nan , nan , nan ]),
111
+ ("Unnamed: 2" , [np . nan , np . nan , np . nan ]),
99
112
("Column 3" , [7.0 , 8.0 , 9.0 ])]))
100
113
expected .set_index ("Header" , inplace = True )
101
114
columns = ["Column 1" , "Column 3" ]
@@ -105,18 +118,20 @@ def test_read_writer_table(self):
105
118
for i in range (3 ):
106
119
assert pd .isnull (table ["Unnamed: 2" ][i ])
107
120
108
- def test_blank_row_repeat (self ):
109
- table = self .get_exceldf (
110
- 'blank-row-repeat' , '.ods' , 'Value' , engine = 'odf' )
121
+
122
+ def test_blank_row_repeat (datapath ):
123
+ path = datapath ("io" , "data" , "blank-row-repeat.ods" )
124
+ table = pd .read_excel (path , 'Value' , engine = 'odf' )
111
125
112
126
assert table .shape == (14 , 2 )
113
127
assert table ['value' ][7 ] == 9.0
114
128
assert pd .isnull (table ['value' ][8 ])
115
129
assert not pd .isnull (table ['value' ][11 ])
116
130
117
- def test_runlengthencoding (self ):
118
- sheet = self .get_exceldf (
119
- 'runlengthencoding' , '.ods' , 'Sheet1' , header = None , engine = 'odf' )
131
+
132
+ def test_runlengthencoding (datapath ):
133
+ path = datapath ("io" , "data" , "runlengthencoding.ods" )
134
+ sheet = pd .read_excel (path , 'Sheet1' , header = None , engine = 'odf' )
120
135
assert sheet .shape == (5 , 3 )
121
136
# check by column, not by row.
122
137
assert list (sheet [0 ]) == [1.0 , 1.0 , 2.0 , 2.0 , 2.0 ]
0 commit comments