206 rschema = e.e_schema.subject_relation('in_group') |
206 rschema = e.e_schema.subject_relation('in_group') |
207 unrelated = [reid for rview, reid in e.vocabulary(rschema, 'subject')] |
207 unrelated = [reid for rview, reid in e.vocabulary(rschema, 'subject')] |
208 # should be default groups but owners, i.e. managers, users, guests |
208 # should be default groups but owners, i.e. managers, users, guests |
209 self.assertEquals(len(unrelated), 3) |
209 self.assertEquals(len(unrelated), 3) |
210 |
210 |
211 |
|
212 def test_rtags_expansion(self): |
|
213 from cubicweb.entities import AnyEntity |
|
214 class Personne(AnyEntity): |
|
215 id = 'Personne' |
|
216 __rtags__ = { |
|
217 ('travaille', 'Societe', 'subject') : set(('primary',)), |
|
218 ('evaluee', '*', 'subject') : set(('secondary',)), |
|
219 'ecrit_par' : set(('inlineview',)), |
|
220 } |
|
221 self.vreg.register_vobject_class(Personne) |
|
222 rtags = Personne.rtags |
|
223 self.assertEquals(rtags.get_tags('evaluee', 'Note', 'subject'), set(('secondary', 'link'))) |
|
224 self.assertEquals(rtags.is_inlined('evaluee', 'Note', 'subject'), False) |
|
225 self.assertEquals(rtags.get_tags('evaluee', 'Personne', 'subject'), set(('secondary', 'link'))) |
|
226 self.assertEquals(rtags.is_inlined('evaluee', 'Personne', 'subject'), False) |
|
227 self.assertEquals(rtags.get_tags('ecrit_par', 'Note', 'object'), set(('inlineview', 'link'))) |
|
228 self.assertEquals(rtags.is_inlined('ecrit_par', 'Note', 'object'), True) |
|
229 class Personne2(Personne): |
|
230 id = 'Personne' |
|
231 __rtags__ = { |
|
232 ('evaluee', 'Note', 'subject') : set(('inlineview',)), |
|
233 } |
|
234 self.vreg.register_vobject_class(Personne2) |
|
235 rtags = Personne2.rtags |
|
236 self.assertEquals(rtags.get_tags('evaluee', 'Note', 'subject'), set(('inlineview', 'link'))) |
|
237 self.assertEquals(rtags.is_inlined('evaluee', 'Note', 'subject'), True) |
|
238 self.assertEquals(rtags.get_tags('evaluee', 'Personne', 'subject'), set(('secondary', 'link'))) |
|
239 self.assertEquals(rtags.is_inlined('evaluee', 'Personne', 'subject'), False) |
|
240 |
|
241 def test_relations_by_category(self): |
|
242 e = self.etype_instance('EUser') |
|
243 def rbc(iterable): |
|
244 return [(rschema.type, x) for rschema, tschemas, x in iterable] |
|
245 self.assertEquals(rbc(e.relations_by_category('primary')), |
|
246 [('login', 'subject'), ('upassword', 'subject'), |
|
247 ('in_group', 'subject'), ('in_state', 'subject'), |
|
248 ('eid', 'subject'),]) |
|
249 # firstname and surname are put in secondary category in views.entities.EUserEntity |
|
250 self.assertListEquals(rbc(e.relations_by_category('secondary')), |
|
251 [('firstname', 'subject'), ('surname', 'subject')]) |
|
252 self.assertListEquals(rbc(e.relations_by_category('generic')), |
|
253 [('primary_email', 'subject'), |
|
254 ('evaluee', 'subject'), |
|
255 ('for_user', 'object')]) |
|
256 # owned_by is defined both as subject and object relations on EUser |
|
257 self.assertListEquals(rbc(e.relations_by_category('generated')), |
|
258 [('last_login_time', 'subject'), |
|
259 ('created_by', 'subject'), |
|
260 ('creation_date', 'subject'), |
|
261 ('is', 'subject'), |
|
262 ('is_instance_of', 'subject'), |
|
263 ('modification_date', 'subject'), |
|
264 ('owned_by', 'subject'), |
|
265 ('created_by', 'object'), |
|
266 ('wf_info_for', 'object'), |
|
267 ('owned_by', 'object'), |
|
268 ('bookmarked_by', 'object')]) |
|
269 e = self.etype_instance('Personne') |
|
270 self.assertListEquals(rbc(e.relations_by_category('primary')), |
|
271 [('nom', 'subject'), ('eid', 'subject')]) |
|
272 self.assertListEquals(rbc(e.relations_by_category('secondary')), |
|
273 [('prenom', 'subject'), |
|
274 ('type', 'subject'),]) |
|
275 self.assertListEquals(rbc(e.relations_by_category('generic')), |
|
276 [('travaille', 'subject'), |
|
277 ('evaluee', 'subject'), |
|
278 ('connait', 'subject'), |
|
279 ('ecrit_par', 'object'), |
|
280 ('evaluee', 'object'), |
|
281 ('tags', 'object')]) |
|
282 self.assertListEquals(rbc(e.relations_by_category('generated')), |
|
283 [('created_by', 'subject'), |
|
284 ('creation_date', 'subject'), |
|
285 ('is', 'subject'), |
|
286 ('is_instance_of', 'subject'), |
|
287 ('modification_date', 'subject'), |
|
288 ('owned_by', 'subject')]) |
|
289 |
|
290 |
|
291 def test_printable_value_string(self): |
211 def test_printable_value_string(self): |
292 e = self.add_entity('Card', title=u'rest test', content=u'du :eid:`1:*ReST*`', |
212 e = self.add_entity('Card', title=u'rest test', content=u'du :eid:`1:*ReST*`', |
293 content_format=u'text/rest') |
213 content_format=u'text/rest') |
294 self.assertEquals(e.printable_value('content'), |
214 self.assertEquals(e.printable_value('content'), |
295 '<p>du <a class="reference" href="http://testing.fr/cubicweb/egroup/managers">*ReST*</a></p>\n') |
215 '<p>du <a class="reference" href="http://testing.fr/cubicweb/egroup/managers">*ReST*</a></p>\n') |