def test_table_form(): """Base tests : values and behavior. FIXME : this needs more tests. """ request = TestRequest() form = TableForm(content, request) form.tableFields = Fields(*fields.values()) form.actions = Actions(Action(u'Do not use')) assert verifyObject(ITableForm, form) # We make sure getItems return the right amount of items. # This is used by ``updateLines`` to create widgets for all lines. Those # are have a line prefix: assert len(form.getItems()) == 3 # We can proceed. form.update() form.updateForm() assert len(form.lines) == len(form.lineWidgets) == 3 assert [line.prefix for line in form.lines] == [ 'form.line-0', 'form.line-1', 'form.line-2'] html = form.render() # The result should contain HTML base tags assert '<html>' in html html = etree.fromstring(html) # table headers assert [elt.text for elt in html.findall('.//table/thead//th')] == [ None, 'age', 'name']
def test_batching(): """Base batching test. The Batcher is tested in ``dolmen.batch``. We simply need to make sure we have plugged it correctly and that it gets the right values out of the form. """ request = TestRequest() form = TableForm(content, request) # The table can generate a batch out-of-the-box. # However, that capability has to be activated. form = TableForm(content, request) form.createBatch = True # @ testing conf. # To be able to compute the URL, we need to define a publication root directlyProvides(form, IPublicationRoot) # Now, we can test it: form.batchSize = 1 form.update() form.updateForm() assert form.batcher.size == 1 assert form.batcher.url == 'http://localhost'