1+ from textwrap import dedent
2+ import pyexcel as pe
3+ from pyexcel .ext import text
4+
5+
6+ class TestPresentation :
7+ def test_normal_usage (self ):
8+ content = [
9+ [1 , 2 , 3 ],
10+ [4 , 588 , 6 ],
11+ [7 , 8 , 999 ]
12+ ]
13+ s = pe .Sheet (content )
14+ content = dedent ("""
15+ Sheet Name: pyexcel
16+ - --- ---
17+ 1 2 3
18+ 4 588 6
19+ 7 8 999
20+ - --- ---""" ).strip ('\n ' )
21+ assert str (s ) == content
22+
23+ def test_irregular_usage (self ):
24+ """textable doesn't like empty string """
25+ content = [
26+ [1 , 2 , 3 ],
27+ [4 , 588 , 6 ],
28+ [7 , 8 ] # one empty string
29+ ]
30+ s = pe .Sheet (content )
31+ content = dedent ("""
32+ Sheet Name: pyexcel
33+ - --- -
34+ 1 2 3
35+ 4 588 6
36+ 7 8
37+ - --- -""" ).strip ('\n ' )
38+ assert str (s ) == content
39+
40+
41+ def test_column_series (self ):
42+ content = [
43+ ["Column 1" , "Column 2" , "Column 3" ],
44+ [1 , 2 , 3 ],
45+ [4 , 5 , 6 ],
46+ [7 , 8 , 9 ]
47+ ]
48+ s = pe .Sheet (content , name_columns_by_row = 0 )
49+ content = dedent ("""
50+ Sheet Name: pyexcel
51+ Column 1 Column 2 Column 3
52+ ---------- ---------- ----------
53+ 1 2 3
54+ 4 5 6
55+ 7 8 9""" ).strip ('\n ' )
56+ assert str (s ) == content
57+
58+ def test_data_frame (self ):
59+ content = [
60+ ["" , "Column 1" , "Column 2" , "Column 3" ],
61+ ["Row 1" , 1 , 2 , 3 ],
62+ ["Row 2" , 4 , 5 , 6 ],
63+ ["Row 3" , 7 , 8 , 9 ]
64+ ]
65+ s = pe .Sheet (content , name_rows_by_column = 0 , name_columns_by_row = 0 )
66+ content = dedent ("""
67+ Sheet Name: pyexcel
68+ Column 1 Column 2 Column 3
69+ ----- ---------- ---------- ----------
70+ Row 1 1 2 3
71+ Row 2 4 5 6
72+ Row 3 7 8 9""" ).strip ('\n ' )
73+ assert str (s ) == content
74+
75+ def test_row_series (self ):
76+ content = [
77+ ["Row 1" , 1 , 2 , 3 ],
78+ ["Row 2" , 4 , 5 , 6 ],
79+ ["Row 3" , 7 , 8 , 9 ]
80+ ]
81+ s = pe .Sheet (content , name_rows_by_column = 0 )
82+ content = dedent ("""
83+ Sheet Name: pyexcel
84+ ----- - - -
85+ Row 1 1 2 3
86+ Row 2 4 5 6
87+ Row 3 7 8 9
88+ ----- - - -""" ).strip ('\n ' )
89+ assert str (s ) == content
90+
91+ def test_book_presentation (self ):
92+ data = {
93+ 'Sheet 1' :
94+ [
95+ [1.0 , 2.0 , 3.0 ],
96+ [4.0 , 5.0 , 6.0 ],
97+ [7.0 , 8.0 , 9.0 ]
98+ ],
99+ 'Sheet 2' :
100+ [
101+ ['X' , 'Y' , 'Z' ],
102+ [1.0 , 2.0 , 3.0 ],
103+ [4.0 , 5.0 , 6.0 ]
104+ ],
105+ 'Sheet 3' :
106+ [
107+ ['O' , 'P' , 'Q' ],
108+ [3.0 , 2.0 , 1.0 ],
109+ [4.0 , 3.0 , 2.0 ]
110+ ]
111+ }
112+ book = pe .Book (data )
113+ content = dedent ("""
114+ Sheet Name: Sheet 1
115+ - - -
116+ 1 2 3
117+ 4 5 6
118+ 7 8 9
119+ - - -
120+ Sheet Name: Sheet 2
121+ --- --- ---
122+ X Y Z
123+ 1.0 2.0 3.0
124+ 4.0 5.0 6.0
125+ --- --- ---
126+ Sheet Name: Sheet 3
127+ --- --- ---
128+ O P Q
129+ 3.0 2.0 1.0
130+ 4.0 3.0 2.0
131+ --- --- ---""" ).strip ("\n " )
132+ assert str (book ) == content
133+
0 commit comments