web/test/unittest_form.py
author sylvain.thenault@logilab.fr
Thu, 19 Feb 2009 19:28:44 +0100
branchtls-sprint
changeset 848 f5aca5c5f6ca
parent 847 27c4ebe90d03
child 866 6fdb029663ca
permissions -rw-r--r--
set __errorurl, fix retreiving of field's value
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
845
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
     1
from logilab.common.testlib import TestCase, unittest_main, mock_object
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
     2
847
27c4ebe90d03 prefixed form methods to avoid potential conflicts with field names, button related method, a bit more serious renderer
sylvain.thenault@logilab.fr
parents: 845
diff changeset
     3
from cubicweb.web.form import *
27c4ebe90d03 prefixed form methods to avoid potential conflicts with field names, button related method, a bit more serious renderer
sylvain.thenault@logilab.fr
parents: 845
diff changeset
     4
from cubicweb.web.views.baseforms import ChangeStateForm
845
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
     5
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
     6
class CustomChangeStateForm(ChangeStateForm):
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
     7
    hello = IntField(name='youlou')
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
     8
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
     9
class EntityFieldsFormTC(TestCase):
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    10
847
27c4ebe90d03 prefixed form methods to avoid potential conflicts with field names, button related method, a bit more serious renderer
sylvain.thenault@logilab.fr
parents: 845
diff changeset
    11
    def setUp(self):
27c4ebe90d03 prefixed form methods to avoid potential conflicts with field names, button related method, a bit more serious renderer
sylvain.thenault@logilab.fr
parents: 845
diff changeset
    12
        def next_tabindex(self):
27c4ebe90d03 prefixed form methods to avoid potential conflicts with field names, button related method, a bit more serious renderer
sylvain.thenault@logilab.fr
parents: 845
diff changeset
    13
            self.count += 1
27c4ebe90d03 prefixed form methods to avoid potential conflicts with field names, button related method, a bit more serious renderer
sylvain.thenault@logilab.fr
parents: 845
diff changeset
    14
            return self.count
848
f5aca5c5f6ca set __errorurl, fix retreiving of field's value
sylvain.thenault@logilab.fr
parents: 847
diff changeset
    15
        self.req = mock_object(build_url=lambda *args,**kwargs: 'myurl.com/pouet',
f5aca5c5f6ca set __errorurl, fix retreiving of field's value
sylvain.thenault@logilab.fr
parents: 847
diff changeset
    16
                               url=lambda *args,**kwargs: 'myurl.com/form',
f5aca5c5f6ca set __errorurl, fix retreiving of field's value
sylvain.thenault@logilab.fr
parents: 847
diff changeset
    17
                               _=lambda s,x: x, form={},
847
27c4ebe90d03 prefixed form methods to avoid potential conflicts with field names, button related method, a bit more serious renderer
sylvain.thenault@logilab.fr
parents: 845
diff changeset
    18
                               next_tabindex=next_tabindex, count=0)
848
f5aca5c5f6ca set __errorurl, fix retreiving of field's value
sylvain.thenault@logilab.fr
parents: 847
diff changeset
    19
        self.entity = mock_object(eid=1, has_eid=lambda x: False, id='Entity')
847
27c4ebe90d03 prefixed form methods to avoid potential conflicts with field names, button related method, a bit more serious renderer
sylvain.thenault@logilab.fr
parents: 845
diff changeset
    20
        
845
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    21
    def test(self):
847
27c4ebe90d03 prefixed form methods to avoid potential conflicts with field names, button related method, a bit more serious renderer
sylvain.thenault@logilab.fr
parents: 845
diff changeset
    22
        form = ChangeStateForm(self.req, redirect_path='perdu.com')
27c4ebe90d03 prefixed form methods to avoid potential conflicts with field names, button related method, a bit more serious renderer
sylvain.thenault@logilab.fr
parents: 845
diff changeset
    23
        self.assertEquals(form.form_render(self.entity, state=123),
845
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    24
                          '''''')
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    25
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    26
    def test_form_inheritance(self):
847
27c4ebe90d03 prefixed form methods to avoid potential conflicts with field names, button related method, a bit more serious renderer
sylvain.thenault@logilab.fr
parents: 845
diff changeset
    27
        form = CustomChangeStateForm(self.req, redirect_path='perdu.com')
27c4ebe90d03 prefixed form methods to avoid potential conflicts with field names, button related method, a bit more serious renderer
sylvain.thenault@logilab.fr
parents: 845
diff changeset
    28
        self.assertEquals(form.form_render(self.entity, state=123),
845
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    29
                          '''''')
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    30
        
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    31
        
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    32
if __name__ == '__main__':
6103d0f55a0b simple tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    33
    unittest_main()