def test_update(self): from ptah import form request = DummyRequest() tform = DummyForm() def disabled(form): return False res = {} def action1(form): res['action1'] = True def action2(form): # pragma: no cover res['action2'] = True btn1 = form.Button(name='test1', action=action1) btn2 = form.Button(name='test2', action=action2, condition=disabled) tform.buttons = form.Buttons(btn1, btn2) actions = self._makeOne(tform, request) actions.update() self.assertEqual(list(actions.keys()), [btn1.name]) self.assertEqual(actions[btn1.name].name, 'form.buttons.test1') actions.execute() self.assertEqual(res, {}) params = {'form.buttons.test1': 'true', 'form.buttons.test2': 'true'} tform.params = params actions.update() actions.execute() self.assertEqual(res, {'action1': True})
def test_add_duplicate(self): from ptah import form btn1 = form.Button(name='test1', actionName='action') btn2 = form.Button(name='test1', actionName='action') btns = form.Buttons(btn1) self.assertRaises(ValueError, btns.add, btn2)
def test_add(self): from ptah import form btn1 = form.Button(name='test1', actionName='action') btn2 = form.Button(name='test2', actionName='action') btns = form.Buttons(btn1) btns.add(btn2) self.assertEqual(list(btns.keys()), [btn1.name, btn2.name]) self.assertEqual(list(btns.values()), [btn1, btn2])
def test_ctor(self): from ptah import form btn1 = form.Button(name='test1', actionName='action') btn2 = form.Button(name='test2', actionName='action') btns = form.Buttons() self.assertFalse(bool(btns)) btns = form.Buttons(btn1, btn2) self.assertEqual(list(btns.keys()), [btn1.name, btn2.name]) self.assertEqual(list(btns.values()), [btn1, btn2]) btns = form.Buttons(btn1) self.assertEqual(list(btns.keys()), [btn1.name]) btns = form.Buttons(btn2, btns) self.assertEqual(list(btns.keys()), [btn2.name, btn1.name]) self.assertEqual(list(btns.values()), [btn2, btn1])
def test_execute(self): from ptah import form btn = form.Button(name='test', actionName='action') class Test(object): def action(self): return 'Action executed' self.assertRaises(AttributeError, btn, object()) self.assertEqual(btn(Test()), 'Action executed') btn = form.Button(name='test', action=Test.action, actype=form.AC_PRIMARY) self.assertEqual(btn(Test()), 'Action executed') btn = form.Button(name='test') self.assertRaises(TypeError, btn, Test())
def test_ctor(self): from ptah import form btn = form.Button(name='test', actionName='action', actype=form.AC_PRIMARY) self.assertEqual(btn.name, 'test') self.assertEqual(btn.title, 'Test') self.assertEqual(btn.actype, form.AC_PRIMARY) self.assertEqual(repr(btn), '<Button "test" : "Test">')
def test_render(self): from ptah import form btn = form.Button(name='test', actionName='action', actype=form.AC_PRIMARY) params = {} context = object() request = DummyRequest() widget = btn.bind('test.', params, context, request) self.assertEqual( widget.render().strip(), """<input id="test-test" name="test.test" class="btn primary" value="Test" type="submit" />""" )
def test_activated(self): from ptah import form btn = form.Button(name='test', actionName='action', actype=form.AC_PRIMARY) params = {'button.unkown': 'true'} context = object() request = DummyRequest() widget = btn.bind('button.', params, context, request) self.assertFalse(widget.activated()) widget.params = {'button.test': 'true'} self.assertTrue(widget.activated())
def test_bind(self): from ptah import form btn = form.Button(name='test', actionName='action', actype=form.AC_PRIMARY) params = {} context = object() request = DummyRequest() widget = btn.bind('test.', params, context, request) self.assertIsNot(btn, widget) self.assertIs(widget.context, context) self.assertIs(widget.request, request) self.assertIs(widget.params, params) self.assertEqual(widget.id, 'test-test') self.assertEqual(widget.name, 'test.test') self.assertEqual(widget.klass, 'btn primary')