cubicweb/test/unittest_rtags.py
changeset 11932 7b2247098f58
parent 11888 0849a5eb57b8
child 11935 963b71128396
equal deleted inserted replaced
11931:ad7796dabeaa 11932:7b2247098f58
    14 # details.
    14 # details.
    15 #
    15 #
    16 # You should have received a copy of the GNU Lesser General Public License along
    16 # You should have received a copy of the GNU Lesser General Public License along
    17 # with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
    17 # with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
    18 
    18 
    19 import unittest
    19 import sys
       
    20 if sys.version_info[:2] < (3, 2):
       
    21     # assertWarns appears in 3.2
       
    22     import unittest2 as unittest
       
    23 else:
       
    24     import unittest
    20 
    25 
    21 from cubicweb.rtags import RelationTags, RelationTagsSet, RelationTagsDict
    26 from cubicweb.rtags import RelationTags, RelationTagsSet, RelationTagsDict
    22 
    27 
    23 
    28 
    24 class RelationTagsTC(unittest.TestCase):
    29 class RelationTagsTC(unittest.TestCase):
    25 
    30 
    26     def setUp(self):
    31     def setUp(self):
    27         self.rtags = RelationTags()
    32         self.rtags = RelationTags(__module__=__name__)
    28         self.rtags.tag_subject_of(('Societe', 'travaille', '*'), 'primary')
    33         self.rtags.tag_subject_of(('Societe', 'travaille', '*'), 'primary')
    29         self.rtags.tag_subject_of(('*', 'evaluee', '*'), 'secondary')
    34         self.rtags.tag_subject_of(('*', 'evaluee', '*'), 'secondary')
    30         self.rtags.tag_object_of(('*', 'tags', '*'), 'generated')
    35         self.rtags.tag_object_of(('*', 'tags', '*'), 'generated')
    31 
    36 
    32     def test_expansion(self):
    37     def test_expansion(self):
    62 
    67 
    63 
    68 
    64 class RelationTagsSetTC(unittest.TestCase):
    69 class RelationTagsSetTC(unittest.TestCase):
    65 
    70 
    66     def setUp(self):
    71     def setUp(self):
    67         self.rtags = RelationTagsSet()
    72         self.rtags = RelationTagsSet(__module__=__name__)
    68         self.rtags.tag_subject_of(('Societe', 'travaille', '*'), 'primary')
    73         self.rtags.tag_subject_of(('Societe', 'travaille', '*'), 'primary')
    69         self.rtags.tag_subject_of(('*', 'travaille', '*'), 'secondary')
    74         self.rtags.tag_subject_of(('*', 'travaille', '*'), 'secondary')
    70 
    75 
    71     def test_expansion(self):
    76     def test_expansion(self):
    72         self.assertEqual(self.rtags.get('Societe', 'travaille', '*', 'subject'),
    77         self.assertEqual(self.rtags.get('Societe', 'travaille', '*', 'subject'),
    95 
   100 
    96 
   101 
    97 class RelationTagsDictTC(unittest.TestCase):
   102 class RelationTagsDictTC(unittest.TestCase):
    98 
   103 
    99     def setUp(self):
   104     def setUp(self):
   100         self.rtags = RelationTagsDict()
   105         self.rtags = RelationTagsDict(__module__=__name__)
   101         self.rtags.tag_subject_of(('Societe', 'travaille', '*'),
   106         self.rtags.tag_subject_of(('Societe', 'travaille', '*'),
   102                                   {'key1': 'val1', 'key2': 'val1'})
   107                                   {'key1': 'val1', 'key2': 'val1'})
   103         self.rtags.tag_subject_of(('*', 'travaille', '*'),
   108         self.rtags.tag_subject_of(('*', 'travaille', '*'),
   104                                   {'key1': 'val0', 'key3': 'val0'})
   109                                   {'key1': 'val0', 'key3': 'val0'})
   105         self.rtags.tag_subject_of(('Societe', 'travaille', '*'),
   110         self.rtags.tag_subject_of(('Societe', 'travaille', '*'),
   136                          {'key0': 'val0', 'key4': 'val4'})
   141                          {'key0': 'val0', 'key4': 'val4'})
   137         self.assertEqual(derived_rtags.get('Note', 'travaille', '*', 'subject'),
   142         self.assertEqual(derived_rtags.get('Note', 'travaille', '*', 'subject'),
   138                          {'key0': 'val00', 'key4': 'val4'})
   143                          {'key0': 'val00', 'key4': 'val4'})
   139 
   144 
   140 
   145 
       
   146 class DeprecatedInstanceWithoutModule(unittest.TestCase):
       
   147 
       
   148     def test_deprecated_instance_without_module(self):
       
   149         class SubRelationTags(RelationTags):
       
   150             pass
       
   151         with self.assertWarnsRegex(
       
   152             DeprecationWarning,
       
   153             'instantiate SubRelationTags with __module__=__name__',
       
   154         ):
       
   155             SubRelationTags()
       
   156 
       
   157 
   141 if __name__ == '__main__':
   158 if __name__ == '__main__':
   142     unittest.main()
   159     unittest.main()