36 class GuessFieldTC(TestCase): |
36 class GuessFieldTC(TestCase): |
37 |
37 |
38 def test_state_fields(self): |
38 def test_state_fields(self): |
39 title_field = guess_field(schema['State'], schema['name']) |
39 title_field = guess_field(schema['State'], schema['name']) |
40 self.assertIsInstance(title_field, StringField) |
40 self.assertIsInstance(title_field, StringField) |
41 self.assertEquals(title_field.required, True) |
41 self.assertEqual(title_field.required, True) |
42 |
42 |
43 # synopsis_field = guess_field(schema['State'], schema['synopsis']) |
43 # synopsis_field = guess_field(schema['State'], schema['synopsis']) |
44 # self.assertIsInstance(synopsis_field, StringField) |
44 # self.assertIsInstance(synopsis_field, StringField) |
45 # self.assertIsInstance(synopsis_field.widget, TextArea) |
45 # self.assertIsInstance(synopsis_field.widget, TextArea) |
46 # self.assertEquals(synopsis_field.required, False) |
46 # self.assertEqual(synopsis_field.required, False) |
47 # self.assertEquals(synopsis_field.help, 'an abstract for this state') |
47 # self.assertEqual(synopsis_field.help, 'an abstract for this state') |
48 |
48 |
49 description_field = guess_field(schema['State'], schema['description']) |
49 description_field = guess_field(schema['State'], schema['description']) |
50 self.assertIsInstance(description_field, RichTextField) |
50 self.assertIsInstance(description_field, RichTextField) |
51 self.assertEquals(description_field.required, False) |
51 self.assertEqual(description_field.required, False) |
52 self.assertEquals(description_field.format_field, None) |
52 self.assertEqual(description_field.format_field, None) |
53 |
53 |
54 # description_format_field = guess_field(schema['State'], schema['description_format']) |
54 # description_format_field = guess_field(schema['State'], schema['description_format']) |
55 # self.assertEquals(description_format_field, None) |
55 # self.assertEqual(description_format_field, None) |
56 |
56 |
57 description_format_field = guess_field(schema['State'], schema['description_format']) |
57 description_format_field = guess_field(schema['State'], schema['description_format']) |
58 self.assertEquals(description_format_field.internationalizable, True) |
58 self.assertEqual(description_format_field.internationalizable, True) |
59 self.assertEquals(description_format_field.sort, True) |
59 self.assertEqual(description_format_field.sort, True) |
60 |
60 |
61 # wikiid_field = guess_field(schema['State'], schema['wikiid']) |
61 # wikiid_field = guess_field(schema['State'], schema['wikiid']) |
62 # self.assertIsInstance(wikiid_field, StringField) |
62 # self.assertIsInstance(wikiid_field, StringField) |
63 # self.assertEquals(wikiid_field.required, False) |
63 # self.assertEqual(wikiid_field.required, False) |
64 |
64 |
65 |
65 |
66 def test_cwuser_fields(self): |
66 def test_cwuser_fields(self): |
67 upassword_field = guess_field(schema['CWUser'], schema['upassword']) |
67 upassword_field = guess_field(schema['CWUser'], schema['upassword']) |
68 self.assertIsInstance(upassword_field, StringField) |
68 self.assertIsInstance(upassword_field, StringField) |
69 self.assertIsInstance(upassword_field.widget, PasswordInput) |
69 self.assertIsInstance(upassword_field.widget, PasswordInput) |
70 self.assertEquals(upassword_field.required, True) |
70 self.assertEqual(upassword_field.required, True) |
71 |
71 |
72 last_login_time_field = guess_field(schema['CWUser'], schema['last_login_time']) |
72 last_login_time_field = guess_field(schema['CWUser'], schema['last_login_time']) |
73 self.assertIsInstance(last_login_time_field, DateTimeField) |
73 self.assertIsInstance(last_login_time_field, DateTimeField) |
74 self.assertEquals(last_login_time_field.required, False) |
74 self.assertEqual(last_login_time_field.required, False) |
75 |
75 |
76 in_group_field = guess_field(schema['CWUser'], schema['in_group']) |
76 in_group_field = guess_field(schema['CWUser'], schema['in_group']) |
77 self.assertIsInstance(in_group_field, RelationField) |
77 self.assertIsInstance(in_group_field, RelationField) |
78 self.assertEquals(in_group_field.required, True) |
78 self.assertEqual(in_group_field.required, True) |
79 self.assertEquals(in_group_field.role, 'subject') |
79 self.assertEqual(in_group_field.role, 'subject') |
80 self.assertEquals(in_group_field.help, 'groups grant permissions to the user') |
80 self.assertEqual(in_group_field.help, 'groups grant permissions to the user') |
81 |
81 |
82 owned_by_field = guess_field(schema['CWUser'], schema['owned_by'], 'object') |
82 owned_by_field = guess_field(schema['CWUser'], schema['owned_by'], 'object') |
83 self.assertIsInstance(owned_by_field, RelationField) |
83 self.assertIsInstance(owned_by_field, RelationField) |
84 self.assertEquals(owned_by_field.required, False) |
84 self.assertEqual(owned_by_field.required, False) |
85 self.assertEquals(owned_by_field.role, 'object') |
85 self.assertEqual(owned_by_field.role, 'object') |
86 |
86 |
87 |
87 |
88 def test_file_fields(self): |
88 def test_file_fields(self): |
89 # data_format_field = guess_field(schema['File'], schema['data_format']) |
89 # data_format_field = guess_field(schema['File'], schema['data_format']) |
90 # self.assertEquals(data_format_field, None) |
90 # self.assertEqual(data_format_field, None) |
91 # data_encoding_field = guess_field(schema['File'], schema['data_encoding']) |
91 # data_encoding_field = guess_field(schema['File'], schema['data_encoding']) |
92 # self.assertEquals(data_encoding_field, None) |
92 # self.assertEqual(data_encoding_field, None) |
93 # data_name_field = guess_field(schema['File'], schema['data_name']) |
93 # data_name_field = guess_field(schema['File'], schema['data_name']) |
94 # self.assertEquals(data_name_field, None) |
94 # self.assertEqual(data_name_field, None) |
95 |
95 |
96 data_field = guess_field(schema['File'], schema['data']) |
96 data_field = guess_field(schema['File'], schema['data']) |
97 self.assertIsInstance(data_field, FileField) |
97 self.assertIsInstance(data_field, FileField) |
98 self.assertEquals(data_field.required, True) |
98 self.assertEqual(data_field.required, True) |
99 self.assertIsInstance(data_field.format_field, StringField) |
99 self.assertIsInstance(data_field.format_field, StringField) |
100 self.assertIsInstance(data_field.encoding_field, StringField) |
100 self.assertIsInstance(data_field.encoding_field, StringField) |
101 self.assertIsInstance(data_field.name_field, StringField) |
101 self.assertIsInstance(data_field.name_field, StringField) |
102 |
102 |
103 def test_constraints_priority(self): |
103 def test_constraints_priority(self): |
104 salesterm_field = guess_field(schema['Salesterm'], schema['reason']) |
104 salesterm_field = guess_field(schema['Salesterm'], schema['reason']) |
105 constraints = schema['reason'].rdef('Salesterm', 'String').constraints |
105 constraints = schema['reason'].rdef('Salesterm', 'String').constraints |
106 self.assertEquals([c.__class__ for c in constraints], |
106 self.assertEqual([c.__class__ for c in constraints], |
107 [SizeConstraint, StaticVocabularyConstraint]) |
107 [SizeConstraint, StaticVocabularyConstraint]) |
108 self.assertIsInstance(salesterm_field, StringField) |
108 self.assertIsInstance(salesterm_field, StringField) |
109 self.assertIsInstance(salesterm_field.widget, Select) |
109 self.assertIsInstance(salesterm_field.widget, Select) |
110 |
110 |
111 |
111 |
112 def test_bool_field_base(self): |
112 def test_bool_field_base(self): |
113 field = guess_field(schema['CWAttribute'], schema['indexed']) |
113 field = guess_field(schema['CWAttribute'], schema['indexed']) |
114 self.assertIsInstance(field, BooleanField) |
114 self.assertIsInstance(field, BooleanField) |
115 self.assertEquals(field.required, False) |
115 self.assertEqual(field.required, False) |
116 self.assertIsInstance(field.widget, Radio) |
116 self.assertIsInstance(field.widget, Radio) |
117 self.assertEquals(field.vocabulary(mock(_cw=mock(_=unicode))), |
117 self.assertEqual(field.vocabulary(mock(_cw=mock(_=unicode))), |
118 [(u'yes', '1'), (u'no', '')]) |
118 [(u'yes', '1'), (u'no', '')]) |
119 |
119 |
120 def test_bool_field_explicit_choices(self): |
120 def test_bool_field_explicit_choices(self): |
121 field = guess_field(schema['CWAttribute'], schema['indexed'], |
121 field = guess_field(schema['CWAttribute'], schema['indexed'], |
122 choices=[(u'maybe', '1'), (u'no', '')]) |
122 choices=[(u'maybe', '1'), (u'no', '')]) |
123 self.assertIsInstance(field.widget, Radio) |
123 self.assertIsInstance(field.widget, Radio) |
124 self.assertEquals(field.vocabulary(mock(req=mock(_=unicode))), |
124 self.assertEqual(field.vocabulary(mock(req=mock(_=unicode))), |
125 [(u'maybe', '1'), (u'no', '')]) |
125 [(u'maybe', '1'), (u'no', '')]) |
126 |
126 |
127 |
127 |
128 class MoreFieldsTC(CubicWebTC): |
128 class MoreFieldsTC(CubicWebTC): |
129 def test_rtf_format_field(self): |
129 def test_rtf_format_field(self): |
131 req.use_fckeditor = lambda: False |
131 req.use_fckeditor = lambda: False |
132 e = self.vreg['etypes'].etype_class('State')(req) |
132 e = self.vreg['etypes'].etype_class('State')(req) |
133 form = EntityFieldsForm(req, entity=e) |
133 form = EntityFieldsForm(req, entity=e) |
134 description_field = guess_field(schema['State'], schema['description']) |
134 description_field = guess_field(schema['State'], schema['description']) |
135 description_format_field = description_field.get_format_field(form) |
135 description_format_field = description_field.get_format_field(form) |
136 self.assertEquals(description_format_field.internationalizable, True) |
136 self.assertEqual(description_format_field.internationalizable, True) |
137 self.assertEquals(description_format_field.sort, True) |
137 self.assertEqual(description_format_field.sort, True) |
138 # unlike below, initial is bound to form.form_field_format |
138 # unlike below, initial is bound to form.form_field_format |
139 self.assertEquals(description_format_field.value(form), 'text/html') |
139 self.assertEqual(description_format_field.value(form), 'text/html') |
140 self.execute('INSERT CWProperty X: X pkey "ui.default-text-format", X value "text/rest", X for_user U WHERE U login "admin"') |
140 self.execute('INSERT CWProperty X: X pkey "ui.default-text-format", X value "text/rest", X for_user U WHERE U login "admin"') |
141 self.commit() |
141 self.commit() |
142 self.assertEquals(description_format_field.value(form), 'text/rest') |
142 self.assertEqual(description_format_field.value(form), 'text/rest') |
143 |
143 |
144 |
144 |
145 class UtilsTC(TestCase): |
145 class UtilsTC(TestCase): |
146 def test_vocab_sort(self): |
146 def test_vocab_sort(self): |
147 self.assertEquals(vocab_sort([('Z', 1), ('A', 2), |
147 self.assertEqual(vocab_sort([('Z', 1), ('A', 2), |
148 ('Group 1', None), ('Y', 3), ('B', 4), |
148 ('Group 1', None), ('Y', 3), ('B', 4), |
149 ('Group 2', None), ('X', 5), ('C', 6)]), |
149 ('Group 2', None), ('X', 5), ('C', 6)]), |
150 [('A', 2), ('Z', 1), |
150 [('A', 2), ('Z', 1), |
151 ('Group 1', None), ('B', 4), ('Y', 3), |
151 ('Group 1', None), ('B', 4), ('Y', 3), |
152 ('Group 2', None), ('C', 6), ('X', 5)] |
152 ('Group 2', None), ('C', 6), ('X', 5)] |