Example #1
0
    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})
Example #2
0
    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)
Example #3
0
    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])
Example #4
0
    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])
Example #5
0
    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())
Example #6
0
    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">')
Example #7
0
    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" />"""
        )
Example #8
0
    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())
Example #9
0
    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')