1 """unittests for cw.web.formfields""" |
1 """unittests for cw.web.formfields""" |
2 |
2 |
|
3 from logilab.common.testlib import TestCase, unittest_main |
|
4 |
3 from yams.constraints import StaticVocabularyConstraint, SizeConstraint |
5 from yams.constraints import StaticVocabularyConstraint, SizeConstraint |
4 from logilab.common.testlib import TestCase, unittest_main |
6 |
5 from cubicweb.devtools import TestServerConfiguration |
7 from cubicweb.devtools import TestServerConfiguration |
|
8 from cubicweb.devtools.testlib import EnvBasedTC |
|
9 from cubicweb.web.form import EntityFieldsForm |
6 from cubicweb.web.formwidgets import PasswordInput, TextArea, Select |
10 from cubicweb.web.formwidgets import PasswordInput, TextArea, Select |
7 from cubicweb.web.formfields import * |
11 from cubicweb.web.formfields import * |
8 from cubicweb.entities.wfobjs import State |
12 |
9 from cubicweb.entities.authobjs import CWUser |
|
10 from cubes.file.entities import File |
13 from cubes.file.entities import File |
11 |
14 |
12 config = TestServerConfiguration('data') |
15 config = TestServerConfiguration('data') |
13 config.bootstrap_cubes() |
16 config.bootstrap_cubes() |
14 schema = config.load_schema() |
17 schema = config.load_schema() |
41 description_format_field = guess_field(state_schema, schema['description_format'], skip_meta_attr=False) |
44 description_format_field = guess_field(state_schema, schema['description_format'], skip_meta_attr=False) |
42 self.assertEquals(description_format_field.internationalizable, True) |
45 self.assertEquals(description_format_field.internationalizable, True) |
43 self.assertEquals(description_format_field.sort, True) |
46 self.assertEquals(description_format_field.sort, True) |
44 self.assertEquals(description_format_field.initial(None), 'text/rest') |
47 self.assertEquals(description_format_field.initial(None), 'text/rest') |
45 |
48 |
|
49 |
46 # wikiid_field = guess_field(state_schema, schema['wikiid']) |
50 # wikiid_field = guess_field(state_schema, schema['wikiid']) |
47 # self.assertIsInstance(wikiid_field, StringField) |
51 # self.assertIsInstance(wikiid_field, StringField) |
48 # self.assertEquals(wikiid_field.required, False) |
52 # self.assertEquals(wikiid_field.required, False) |
49 |
53 |
50 |
54 |
51 def test_euser_fields(self): |
55 def test_cwuser_fields(self): |
52 upassword_field = guess_field(cwuser_schema, schema['upassword']) |
56 upassword_field = guess_field(cwuser_schema, schema['upassword']) |
53 self.assertIsInstance(upassword_field, StringField) |
57 self.assertIsInstance(upassword_field, StringField) |
54 self.assertIsInstance(upassword_field.widget, PasswordInput) |
58 self.assertIsInstance(upassword_field.widget, PasswordInput) |
55 self.assertEquals(upassword_field.required, True) |
59 self.assertEquals(upassword_field.required, True) |
56 |
60 |
87 constraints = schema['reason'].rproperty('Salesterm', 'String', 'constraints') |
91 constraints = schema['reason'].rproperty('Salesterm', 'String', 'constraints') |
88 self.assertEquals([c.__class__ for c in constraints], |
92 self.assertEquals([c.__class__ for c in constraints], |
89 [SizeConstraint, StaticVocabularyConstraint]) |
93 [SizeConstraint, StaticVocabularyConstraint]) |
90 self.assertIsInstance(salesterm_field.widget, Select) |
94 self.assertIsInstance(salesterm_field.widget, Select) |
91 |
95 |
|
96 class MoreFieldsTC(EnvBasedTC): |
|
97 def test_rtf_format_field(self): |
|
98 req = self.request() |
|
99 req.use_fckeditor = lambda: False |
|
100 e = self.etype_instance('State') |
|
101 form = EntityFieldsForm(req, entity=e) |
|
102 description_field = guess_field(state_schema, schema['description']) |
|
103 description_format_field = description_field.get_format_field(form) |
|
104 self.assertEquals(description_format_field.internationalizable, True) |
|
105 self.assertEquals(description_format_field.sort, True) |
|
106 # unlike below, initial is bound to form.form_field_format |
|
107 self.assertEquals(description_format_field.initial(form), 'text/html') |
|
108 self.execute('INSERT CWProperty X: X pkey "ui.default-text-format", X value "text/rest", X for_user U WHERE U login "admin"') |
|
109 self.commit() |
|
110 self.assertEquals(description_format_field.initial(form), 'text/rest') |
|
111 |
92 if __name__ == '__main__': |
112 if __name__ == '__main__': |
93 unittest_main() |
113 unittest_main() |