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() |