debian-django-tables2/tests/test_rows.py

52 lines
1.1 KiB
Python

# coding: utf-8
import pytest
import django_tables2 as tables
def test_bound_rows():
class SimpleTable(tables.Table):
name = tables.Column()
data = [
{'name': 'Bradley'},
{'name': 'Chris'},
{'name': 'Davina'},
]
table = SimpleTable(data)
# iteration
records = []
for row in table.rows:
records.append(row.record)
assert records == data
def test_bound_row():
class SimpleTable(tables.Table):
name = tables.Column()
occupation = tables.Column()
age = tables.Column()
record = {'name': 'Bradley', 'age': 20, 'occupation': 'programmer'}
table = SimpleTable([record])
row = table.rows[0]
# integer indexing into a row
assert row[0] == record['name']
assert row[1] == record['occupation']
assert row[2] == record['age']
with pytest.raises(IndexError):
row[3]
# column name indexing into a row
assert row['name'] == record['name']
assert row['occupation'] == record['occupation']
assert row['age'] == record['age']
with pytest.raises(KeyError):
row['gamma']