1 from logilab.common.testlib import unittest_main |
1 from logilab.common.testlib import unittest_main |
2 from cubicweb.devtools.apptest import EnvBasedTC |
2 from cubicweb.devtools.apptest import EnvBasedTC |
|
3 from cubicweb.devtools.testlib import WebTest |
3 from cubicweb.web.views.editforms import AutomaticEntityForm as AEF |
4 from cubicweb.web.views.editforms import AutomaticEntityForm as AEF |
4 |
5 |
5 def rbc(entity, category): |
6 def rbc(entity, category): |
6 return [(rschema.type, x) for rschema, tschemas, x in AEF.erelations_by_category(entity, category)] |
7 return [(rschema.type, x) for rschema, tschemas, x in AEF.erelations_by_category(entity, category)] |
7 |
8 |
38 ('connait', 'subject'), |
39 ('connait', 'subject'), |
39 ('checked_by', 'object'), |
40 ('checked_by', 'object'), |
40 ]) |
41 ]) |
41 # owned_by is defined both as subject and object relations on EUser |
42 # owned_by is defined both as subject and object relations on EUser |
42 self.assertListEquals(rbc(e, 'generated'), |
43 self.assertListEquals(rbc(e, 'generated'), |
43 [('is', 'subject'), |
44 [('has_text', 'subject'), |
|
45 ('identity', 'subject'), |
|
46 ('is', 'subject'), |
44 ('is_instance_of', 'subject'), |
47 ('is_instance_of', 'subject'), |
45 ('tags', 'object'), |
48 ('tags', 'object'), |
46 ('for_user', 'object'), |
49 ('for_user', 'object'), |
47 ('created_by', 'object'), |
50 ('created_by', 'object'), |
48 ('wf_info_for', 'object'), |
51 ('wf_info_for', 'object'), |
49 ('owned_by', 'object'), |
52 ('owned_by', 'object'), |
|
53 ('identity', 'object'), |
50 ]) |
54 ]) |
51 |
55 |
52 def test_inlined_view(self): |
56 def test_inlined_view(self): |
53 self.failUnless(AEF.rinlined.etype_rtag('EUser', 'use_email', 'subject')) |
57 self.failUnless(AEF.rinlined.etype_rtag('EUser', 'use_email', 'subject')) |
54 self.failIf(AEF.rinlined.etype_rtag('EUser', 'primary_email', 'subject')) |
58 self.failIf(AEF.rinlined.etype_rtag('EUser', 'primary_email', 'subject')) |
55 |
59 |
56 def test_personne_relations_by_category(self): |
60 def test_personne_relations_by_category(self): |
57 e = self.etype_instance('Personne') |
61 e = self.etype_instance('Personne') |
58 self.assertListEquals(rbc(e, 'primary'), |
62 self.assertListEquals(rbc(e, 'primary'), |
59 [('nom', 'subject'), |
63 [('nom', 'subject'), |
60 ('eid', 'subject') |
64 ('eid', 'subject') |
82 self.assertListEquals(rbc(e, 'generic'), |
86 self.assertListEquals(rbc(e, 'generic'), |
83 [('travaille', 'subject'), |
87 [('travaille', 'subject'), |
84 ('connait', 'object') |
88 ('connait', 'object') |
85 ]) |
89 ]) |
86 self.assertListEquals(rbc(e, 'generated'), |
90 self.assertListEquals(rbc(e, 'generated'), |
87 [('is', 'subject'), |
91 [('has_text', 'subject'), |
|
92 ('identity', 'subject'), |
|
93 ('is', 'subject'), |
88 ('is_instance_of', 'subject'), |
94 ('is_instance_of', 'subject'), |
|
95 ('identity', 'object'), |
89 ]) |
96 ]) |
|
97 |
|
98 def test_edition_form(self): |
|
99 rset = self.execute('EUser X LIMIT 1') |
|
100 form = self.vreg.select_object('forms', 'edition', rset.req, rset, |
|
101 row=0, col=0) |
|
102 # should be also selectable by specifying entity |
|
103 self.vreg.select_object('forms', 'edition', self.request(), None, |
|
104 entity=rset.get_entity(0, 0)) |
|
105 self.failIf(any(f for f in form.fields if f is None)) |
|
106 |
|
107 |
|
108 class FormViewsTC(WebTest): |
|
109 def test_delete_conf_formview(self): |
|
110 rset = self.execute('EGroup X') |
|
111 self.view('deleteconf', rset, template=None).source |
|
112 |
|
113 def test_automatic_edition_formview(self): |
|
114 rset = self.execute('EUser X') |
|
115 self.view('edition', rset, row=0, template=None).source |
|
116 |
|
117 def test_automatic_edition_formview(self): |
|
118 rset = self.execute('EUser X') |
|
119 self.view('copy', rset, row=0, template=None).source |
|
120 |
|
121 def test_automatic_creation_formview(self): |
|
122 self.view('creation', None, etype='EUser', template=None).source |
|
123 |
|
124 def test_automatic_muledit_formview(self): |
|
125 rset = self.execute('EUser X') |
|
126 self.view('muledit', rset, template=None).source |
|
127 |
|
128 def test_automatic_reledit_formview(self): |
|
129 rset = self.execute('EUser X') |
|
130 self.view('reledit', rset, row=0, rtype='login', template=None).source |
|
131 |
|
132 def test_automatic_inline_edit_formview(self): |
|
133 geid = self.execute('EGroup X LIMIT 1')[0][0] |
|
134 rset = self.execute('EUser X LIMIT 1') |
|
135 self.view('inline-edition', rset, row=0, rtype='in_group', peid=geid, template=None).source |
|
136 |
|
137 def test_automatic_inline_creation_formview(self): |
|
138 geid = self.execute('EGroup X LIMIT 1')[0][0] |
|
139 self.view('inline-creation', None, etype='EUser', rtype='in_group', peid=geid, template=None).source |
|
140 |
|
141 |
90 if __name__ == '__main__': |
142 if __name__ == '__main__': |
91 unittest_main() |
143 unittest_main() |