1 from logilab.common.testlib import TestCase, unittest_main |
1 from logilab.common.testlib import TestCase, unittest_main |
2 from cubicweb.rtags import RelationTags |
2 from cubicweb.rtags import RelationTags, RelationTagsSet |
3 |
3 |
4 class RelationTagsTC(TestCase): |
4 class RelationTagsTC(TestCase): |
5 |
5 |
6 def test_rtags_expansion(self): |
6 def test_rtags_expansion(self): |
7 rtags = RelationTags() |
7 rtags = RelationTags() |
8 rtags.set_rtag('primary', 'travaille', 'subject', 'Societe') |
8 rtags.tag_relation('primary', ('Societe', 'travaille', '*'), 'subject', ) |
9 rtags.set_rtag('secondary', 'evaluee', 'subject') |
9 rtags.tag_relation('secondary', ('*', 'evaluee', '*'), 'subject') |
10 rtags.set_rtag('generated', 'tags', 'object') |
10 rtags.tag_relation('generated', ('*', 'tags', '*'), 'object') |
11 self.assertEquals(rtags.rtag('evaluee', 'subject', 'Note'), 'secondary') |
11 self.assertEquals(rtags.get('evaluee', 'subject', 'Note'), 'secondary') |
12 self.assertEquals(rtags.rtag('travaille', 'subject', 'Societe'), 'primary') |
12 self.assertEquals(rtags.get('travaille', 'subject', 'Societe'), 'primary') |
13 self.assertEquals(rtags.rtag('travaille', 'subject', 'Note'), None) |
13 self.assertEquals(rtags.get('travaille', 'subject', 'Note'), None) |
14 self.assertEquals(rtags.rtag('tags', 'subject', 'Note'), None) |
14 self.assertEquals(rtags.get('tags', 'subject', 'Note'), None) |
15 self.assertEquals(rtags.rtag('tags', 'object', 'Note'), 'generated') |
15 self.assertEquals(rtags.get('tags', 'object', 'Note'), 'generated') |
16 |
16 |
17 # self.assertEquals(rtags.rtag('evaluee', 'Note', 'subject'), set(('secondary', 'link'))) |
17 # self.assertEquals(rtags.rtag('evaluee', 'Note', 'subject'), set(('secondary', 'link'))) |
18 # self.assertEquals(rtags.is_inlined('evaluee', 'Note', 'subject'), False) |
18 # self.assertEquals(rtags.is_inlined('evaluee', 'Note', 'subject'), False) |
19 # self.assertEquals(rtags.rtag('evaluee', 'Personne', 'subject'), set(('secondary', 'link'))) |
19 # self.assertEquals(rtags.rtag('evaluee', 'Personne', 'subject'), set(('secondary', 'link'))) |
20 # self.assertEquals(rtags.is_inlined('evaluee', 'Personne', 'subject'), False) |
20 # self.assertEquals(rtags.is_inlined('evaluee', 'Personne', 'subject'), False) |
21 # self.assertEquals(rtags.rtag('ecrit_par', 'Note', 'object'), set(('inlineview', 'link'))) |
21 # self.assertEquals(rtags.rtag('ecrit_par', 'Note', 'object'), set(('inlineview', 'link'))) |
28 # self.vreg.register_vobject_class(Personne2) |
28 # self.vreg.register_vobject_class(Personne2) |
29 # rtags = Personne2.rtags |
29 # rtags = Personne2.rtags |
30 # self.assertEquals(rtags.rtag('evaluee', 'Note', 'subject'), set(('inlineview', 'link'))) |
30 # self.assertEquals(rtags.rtag('evaluee', 'Note', 'subject'), set(('inlineview', 'link'))) |
31 # self.assertEquals(rtags.is_inlined('evaluee', 'Note', 'subject'), True) |
31 # self.assertEquals(rtags.is_inlined('evaluee', 'Note', 'subject'), True) |
32 # self.assertEquals(rtags.rtag('evaluee', 'Personne', 'subject'), set(('secondary', 'link'))) |
32 # self.assertEquals(rtags.rtag('evaluee', 'Personne', 'subject'), set(('secondary', 'link'))) |
33 # self.assertEquals(rtags.is_inlined('evaluee', 'Personne', 'subject'), False) |
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()) |
34 |
43 |
35 if __name__ == '__main__': |
44 if __name__ == '__main__': |
36 unittest_main() |
45 unittest_main() |