mirror of https://github.com/mahmoud/boltons.git
55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
from boltons.tableutils import Table
|
|
|
|
|
|
def test_table_lists():
|
|
data_lists = [['id', 'name'],
|
|
[1, 'John Doe'],
|
|
[2, 'Dale Simmons']]
|
|
t1 = Table(data_lists)
|
|
assert set(t1.headers) == {'id', 'name'}
|
|
assert len(t1) == 2
|
|
assert 'John Doe' in repr(t1)
|
|
|
|
T2_REF_HTML = """<table>
|
|
<tr><th>id</th><td>1</td></tr>
|
|
<tr><th>name</th><td>John Doe</td></tr>
|
|
</table>"""
|
|
|
|
T3_REF_HTML = """<table>
|
|
<thead>
|
|
<tr><th>id</th><th>name</th></tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr><td>1</td><td>John Doe</td></tr>
|
|
<tr><td>2</td><td>Dale Simmons</td></tr>
|
|
<tr><td>3</td><td>Kurt Rose</td></tr>
|
|
<tr><td>4</td><td>None</td></tr>
|
|
</tbody>
|
|
</table>"""
|
|
|
|
|
|
def test_table_dicts():
|
|
data_dicts = [{'id': 1, 'name': 'John Doe'},
|
|
{'id': 2, 'name': 'Dale Simmons'}]
|
|
t2 = Table.from_dict(data_dicts[0])
|
|
t3 = Table.from_dict(data_dicts)
|
|
t3.extend([[3, 'Kurt Rose'], [4]])
|
|
|
|
assert set(t2.headers) == {'id', 'name'}
|
|
assert len(t2) == 1
|
|
# the sorted() stuff handles ordering differences between versions
|
|
# TODO: should maybe change Table to sort the headers of dicts and such?
|
|
assert sorted(t2.to_html()) == sorted(T2_REF_HTML)
|
|
assert sorted(t3.to_html()) == sorted(T3_REF_HTML)
|
|
assert t3.to_text()
|
|
|
|
|
|
def test_table_obj():
|
|
class TestType:
|
|
def __init__(self):
|
|
self.greeting = 'hi'
|
|
|
|
t4 = Table.from_object(TestType())
|
|
assert len(t4) == 1
|
|
assert 'greeting' in t4.headers
|