1284
|
1 |
from logilab.common.testlib import TestCase, unittest_main |
1533
|
2 |
from cubicweb.rtags import RelationTags, RelationTagsSet |
1284
|
3 |
|
|
4 |
class RelationTagsTC(TestCase): |
1533
|
5 |
|
1284
|
6 |
def test_rtags_expansion(self): |
|
7 |
rtags = RelationTags() |
1533
|
8 |
rtags.tag_relation('primary', ('Societe', 'travaille', '*'), 'subject', ) |
|
9 |
rtags.tag_relation('secondary', ('*', 'evaluee', '*'), 'subject') |
|
10 |
rtags.tag_relation('generated', ('*', 'tags', '*'), 'object') |
|
11 |
self.assertEquals(rtags.get('evaluee', 'subject', 'Note'), 'secondary') |
|
12 |
self.assertEquals(rtags.get('travaille', 'subject', 'Societe'), 'primary') |
|
13 |
self.assertEquals(rtags.get('travaille', 'subject', 'Note'), None) |
|
14 |
self.assertEquals(rtags.get('tags', 'subject', 'Note'), None) |
|
15 |
self.assertEquals(rtags.get('tags', 'object', 'Note'), 'generated') |
|
16 |
|
1284
|
17 |
# self.assertEquals(rtags.rtag('evaluee', 'Note', 'subject'), set(('secondary', 'link'))) |
|
18 |
# self.assertEquals(rtags.is_inlined('evaluee', 'Note', 'subject'), False) |
|
19 |
# self.assertEquals(rtags.rtag('evaluee', 'Personne', 'subject'), set(('secondary', 'link'))) |
|
20 |
# self.assertEquals(rtags.is_inlined('evaluee', 'Personne', 'subject'), False) |
|
21 |
# self.assertEquals(rtags.rtag('ecrit_par', 'Note', 'object'), set(('inlineview', 'link'))) |
|
22 |
# self.assertEquals(rtags.is_inlined('ecrit_par', 'Note', 'object'), True) |
|
23 |
# class Personne2(Personne): |
|
24 |
# id = 'Personne' |
|
25 |
# __rtags__ = { |
|
26 |
# ('evaluee', 'Note', 'subject') : set(('inlineview',)), |
|
27 |
# } |
|
28 |
# self.vreg.register_vobject_class(Personne2) |
|
29 |
# rtags = Personne2.rtags |
|
30 |
# self.assertEquals(rtags.rtag('evaluee', 'Note', 'subject'), set(('inlineview', 'link'))) |
|
31 |
# self.assertEquals(rtags.is_inlined('evaluee', 'Note', 'subject'), True) |
|
32 |
# self.assertEquals(rtags.rtag('evaluee', 'Personne', 'subject'), set(('secondary', 'link'))) |
1533
|
33 |
# self.assertEquals(rtags.is_inlined('evaluee', 'Personne', 'subject'), False) |
|
34 |
|
|
35 |
|
|
36 |
def test_rtagset_expansion(self): |
|
37 |
rtags = RelationTagsSet() |
|
38 |
rtags.tag_relation('primary', ('Societe', 'travaille', '*'), 'subject', ) |
|
39 |
rtags.tag_relation('secondary', ('*', 'travaille', '*'), 'subject') |
|
40 |
self.assertEquals(rtags.get('travaille', 'subject', 'Societe'), set(('primary', 'secondary'))) |
|
41 |
self.assertEquals(rtags.get('travaille', 'subject', 'Note'), set(('secondary',))) |
|
42 |
self.assertEquals(rtags.get('tags', 'subject', 'Note'), set()) |
1284
|
43 |
|
|
44 |
if __name__ == '__main__': |
|
45 |
unittest_main() |