web/test/unittest_formfields.py
changeset 1808 aa09e20dd8c0
parent 1797 c2a80130b06d
child 1836 d3f0c6e868ef
equal deleted inserted replaced
1693:49075f57cf2c 1808:aa09e20dd8c0
       
     1 """unittests for cw.web.formfields"""
       
     2 
       
     3 from logilab.common.testlib import TestCase, unittest_main
       
     4 from cubicweb.devtools import TestServerConfiguration
       
     5 from cubicweb.web.formwidgets import PasswordInput, TextArea
       
     6 from cubicweb.web.formfields import *
       
     7 from cubicweb.entities.wfobjs import State
       
     8 from cubicweb.entities.authobjs import CWUser
       
     9 from cubes.file.entities import File
       
    10 
       
    11 config = TestServerConfiguration('data')
       
    12 config.bootstrap_cubes()
       
    13 schema = config.load_schema()
       
    14 state_schema = schema['State']
       
    15 cwuser_schema = schema['CWUser']
       
    16 file_schema = schema['File']
       
    17 
       
    18 class GuessFieldTC(TestCase):
       
    19 
       
    20     def test_state_fields(self):
       
    21         title_field = guess_field(state_schema, schema['name'])
       
    22         self.assertIsInstance(title_field, StringField)
       
    23         self.assertEquals(title_field.required, True)
       
    24 
       
    25 #         synopsis_field = guess_field(state_schema, schema['synopsis'])
       
    26 #         self.assertIsInstance(synopsis_field, StringField)
       
    27 #         self.assertIsInstance(synopsis_field.widget, TextArea)
       
    28 #         self.assertEquals(synopsis_field.required, False)
       
    29 #         self.assertEquals(synopsis_field.help, 'an abstract for this state')
       
    30 
       
    31         description_field = guess_field(state_schema, schema['description'])
       
    32         self.assertIsInstance(description_field, RichTextField)
       
    33         self.assertEquals(description_field.required, False)
       
    34         self.assertEquals(description_field.format_field, None)
       
    35 
       
    36         description_format_field = guess_field(state_schema, schema['description_format'])
       
    37         self.assertEquals(description_format_field, None)
       
    38 
       
    39         description_format_field = guess_field(state_schema, schema['description_format'], skip_meta_attr=False)
       
    40         self.assertEquals(description_format_field.internationalizable, True)
       
    41         self.assertEquals(description_format_field.sort, True)
       
    42         self.assertEquals(description_format_field.initial(None), 'text/rest')
       
    43 
       
    44 #         wikiid_field = guess_field(state_schema, schema['wikiid'])
       
    45 #         self.assertIsInstance(wikiid_field, StringField)
       
    46 #         self.assertEquals(wikiid_field.required, False)
       
    47 
       
    48 
       
    49     def test_euser_fields(self):
       
    50         upassword_field = guess_field(cwuser_schema, schema['upassword'])
       
    51         self.assertIsInstance(upassword_field, StringField)
       
    52         self.assertIsInstance(upassword_field.widget, PasswordInput)
       
    53         self.assertEquals(upassword_field.required, True)
       
    54 
       
    55         last_login_time_field = guess_field(cwuser_schema, schema['last_login_time'])
       
    56         self.assertIsInstance(last_login_time_field, DateTimeField)
       
    57         self.assertEquals(last_login_time_field.required, False)
       
    58 
       
    59         in_group_field = guess_field(cwuser_schema, schema['in_group'])
       
    60         self.assertIsInstance(in_group_field, RelationField)
       
    61         self.assertEquals(in_group_field.required, True)
       
    62         self.assertEquals(in_group_field.role, 'subject')
       
    63         self.assertEquals(in_group_field.help, 'groups grant permissions to the user')
       
    64 
       
    65         owned_by_field = guess_field(cwuser_schema, schema['owned_by'], 'object')
       
    66         self.assertIsInstance(owned_by_field, RelationField)
       
    67         self.assertEquals(owned_by_field.required, False)
       
    68         self.assertEquals(owned_by_field.role, 'object')
       
    69 
       
    70 
       
    71     def test_file_fields(self):
       
    72         data_format_field = guess_field(file_schema, schema['data_format'])
       
    73         self.assertEquals(data_format_field, None)
       
    74         data_encoding_field = guess_field(file_schema, schema['data_encoding'])
       
    75         self.assertEquals(data_encoding_field, None)
       
    76 
       
    77         data_field = guess_field(file_schema, schema['data'])
       
    78         self.assertIsInstance(data_field, FileField)
       
    79         self.assertEquals(data_field.required, True)
       
    80         self.assertIsInstance(data_field.format_field, StringField)
       
    81         self.assertIsInstance(data_field.encoding_field, StringField)
       
    82 
       
    83 if __name__ == '__main__':
       
    84     unittest_main()