test/unittest_rtags.py
author sylvain.thenault@logilab.fr
Mon, 11 May 2009 11:20:38 +0200
branchtls-sprint
changeset 1721 694f6a50e138
parent 1533 bcd4bfff658b
child 1739 78b0819162a8
permissions -rw-r--r--
final rtags api (eventually :$)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1284
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
     1
from logilab.common.testlib import TestCase, unittest_main
1533
bcd4bfff658b update rtags api
sylvain.thenault@logilab.fr
parents: 1284
diff changeset
     2
from cubicweb.rtags import RelationTags, RelationTagsSet
1284
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
     3
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
     4
class RelationTagsTC(TestCase):
1533
bcd4bfff658b update rtags api
sylvain.thenault@logilab.fr
parents: 1284
diff changeset
     5
1284
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
     6
    def test_rtags_expansion(self):
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
     7
        rtags = RelationTags()
1721
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
     8
        rtags.tag_relation('!Societe', 'travaille', '*', 'primary')
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
     9
        rtags.tag_relation('!*', 'evaluee', '*', 'secondary')
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    10
        rtags.tag_relation('*', 'tags', '!*', 'generated')
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    11
        self.assertEquals(rtags.get('!Note', 'evaluee', '*'),
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    12
                          'secondary')
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    13
        self.assertEquals(rtags.get('Note', 'evaluee', '*', 'subject'),
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    14
                          'secondary')
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    15
        self.assertEquals(rtags.get('!Societe', 'travaille', '*'),
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    16
                          'primary')
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    17
        self.assertEquals(rtags.get('!Note', 'travaille', '*'),
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    18
                          None)
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    19
        self.assertEquals(rtags.get('!Note', 'tags', '*'),
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    20
                          None)
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    21
        self.assertEquals(rtags.get('*', 'tags', '!Note'),
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    22
                          'generated')
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    23
        self.assertEquals(rtags.get('Tag', 'tags', '!*'),
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    24
                          'generated')
1533
bcd4bfff658b update rtags api
sylvain.thenault@logilab.fr
parents: 1284
diff changeset
    25
1284
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    26
#         self.assertEquals(rtags.rtag('evaluee', 'Note', 'subject'), set(('secondary', 'link')))
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    27
#         self.assertEquals(rtags.is_inlined('evaluee', 'Note', 'subject'), False)
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    28
#         self.assertEquals(rtags.rtag('evaluee', 'Personne', 'subject'), set(('secondary', 'link')))
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    29
#         self.assertEquals(rtags.is_inlined('evaluee', 'Personne', 'subject'), False)
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    30
#         self.assertEquals(rtags.rtag('ecrit_par', 'Note', 'object'), set(('inlineview', 'link')))
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    31
#         self.assertEquals(rtags.is_inlined('ecrit_par', 'Note', 'object'), True)
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    32
#         class Personne2(Personne):
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    33
#             id = 'Personne'
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    34
#             __rtags__ = {
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    35
#                 ('evaluee', 'Note', 'subject') : set(('inlineview',)),
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    36
#                 }
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    37
#         self.vreg.register_vobject_class(Personne2)
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    38
#         rtags = Personne2.rtags
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    39
#         self.assertEquals(rtags.rtag('evaluee', 'Note', 'subject'), set(('inlineview', 'link')))
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    40
#         self.assertEquals(rtags.is_inlined('evaluee', 'Note', 'subject'), True)
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    41
#         self.assertEquals(rtags.rtag('evaluee', 'Personne', 'subject'), set(('secondary', 'link')))
1533
bcd4bfff658b update rtags api
sylvain.thenault@logilab.fr
parents: 1284
diff changeset
    42
#         self.assertEquals(rtags.is_inlined('evaluee', 'Personne', 'subject'), False)
bcd4bfff658b update rtags api
sylvain.thenault@logilab.fr
parents: 1284
diff changeset
    43
bcd4bfff658b update rtags api
sylvain.thenault@logilab.fr
parents: 1284
diff changeset
    44
bcd4bfff658b update rtags api
sylvain.thenault@logilab.fr
parents: 1284
diff changeset
    45
    def test_rtagset_expansion(self):
bcd4bfff658b update rtags api
sylvain.thenault@logilab.fr
parents: 1284
diff changeset
    46
        rtags = RelationTagsSet()
1721
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    47
        rtags.tag_relation('!Societe', 'travaille', '*', 'primary')
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    48
        rtags.tag_relation('!*', 'travaille', '*', 'secondary')
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    49
        self.assertEquals(rtags.get('!Societe', 'travaille', '*'),
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    50
                          set(('primary', 'secondary')))
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    51
        self.assertEquals(rtags.get('Societe', 'travaille', '*', 'subject'),
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    52
                          set(('primary', 'secondary')))
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    53
        self.assertEquals(rtags.get('!Note', 'travaille', '*'),
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    54
                          set(('secondary',)))
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    55
        self.assertEquals(rtags.get('!Note', 'tags', "*"),
694f6a50e138 final rtags api (eventually :$)
sylvain.thenault@logilab.fr
parents: 1533
diff changeset
    56
                          set())
1284
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    57
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    58
if __name__ == '__main__':
63ed4f4ff38d basic testing of relation tags
sylvain.thenault@logilab.fr
parents:
diff changeset
    59
    unittest_main()