|
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() |