1 # -*- coding: utf-8 -*- |
1 # -*- coding: utf-8 -*- |
|
2 |
2 import datetime as DT |
3 import datetime as DT |
3 from StringIO import StringIO |
4 from StringIO import StringIO |
|
5 |
4 from logilab.common.testlib import TestCase, unittest_main |
6 from logilab.common.testlib import TestCase, unittest_main |
|
7 |
5 from cubicweb import dataimport |
8 from cubicweb import dataimport |
6 from cubicweb.devtools.testlib import CubicWebTC |
9 from cubicweb.devtools.testlib import CubicWebTC |
7 |
10 |
8 |
11 |
9 class RQLObjectStoreTC(CubicWebTC): |
12 class RQLObjectStoreTC(CubicWebTC): |
21 self.assertEqual(1, len(users)) |
24 self.assertEqual(1, len(users)) |
22 self.assertEqual(user_eid, users.one().eid) |
25 self.assertEqual(user_eid, users.one().eid) |
23 groups = cnx.execute('CWGroup X WHERE U in_group X, U login "lgn"') |
26 groups = cnx.execute('CWGroup X WHERE U in_group X, U login "lgn"') |
24 self.assertEqual(1, len(users)) |
27 self.assertEqual(1, len(users)) |
25 self.assertEqual(group_eid, groups.one().eid) |
28 self.assertEqual(group_eid, groups.one().eid) |
|
29 |
26 |
30 |
27 class CreateCopyFromBufferTC(TestCase): |
31 class CreateCopyFromBufferTC(TestCase): |
28 |
32 |
29 # test converters |
33 # test converters |
30 |
34 |
133 [[u'a', u'b', u'c', u'd', u''], |
137 [[u'a', u'b', u'c', u'd', u''], |
134 [u'1', u'2', u'3', u'4', u'']]) |
138 [u'1', u'2', u'3', u'4', u'']]) |
135 |
139 |
136 |
140 |
137 class MetaGeneratorTC(CubicWebTC): |
141 class MetaGeneratorTC(CubicWebTC): |
|
142 |
138 def test_dont_generate_relation_to_internal_manager(self): |
143 def test_dont_generate_relation_to_internal_manager(self): |
139 from cubicweb.server.edition import EditedEntity |
|
140 with self.admin_access.repo_cnx() as cnx: |
144 with self.admin_access.repo_cnx() as cnx: |
141 metagen = dataimport.MetaGenerator(cnx) |
145 metagen = dataimport.MetaGenerator(cnx) |
142 self.assertIn('created_by', metagen.etype_rels) |
146 self.assertIn('created_by', metagen.etype_rels) |
143 self.assertIn('owned_by', metagen.etype_rels) |
147 self.assertIn('owned_by', metagen.etype_rels) |
144 with self.repo.internal_cnx() as cnx: |
148 with self.repo.internal_cnx() as cnx: |
145 metagen = dataimport.MetaGenerator(cnx) |
149 metagen = dataimport.MetaGenerator(cnx) |
146 self.assertNotIn('created_by', metagen.etype_rels) |
150 self.assertNotIn('created_by', metagen.etype_rels) |
147 self.assertNotIn('owned_by', metagen.etype_rels) |
151 self.assertNotIn('owned_by', metagen.etype_rels) |
148 |
152 |
|
153 def test_dont_generate_specified_values(self): |
|
154 with self.admin_access.repo_cnx() as cnx: |
|
155 metagen = dataimport.MetaGenerator(cnx) |
|
156 # hijack gen_modification_date to ensure we don't go through it |
|
157 metagen.gen_modification_date = None |
|
158 md = DT.datetime.now() - DT.timedelta(days=1) |
|
159 entity, rels = metagen.base_etype_dicts('CWUser') |
|
160 entity.cw_edited.update(dict(modification_date=md)) |
|
161 with cnx.ensure_cnx_set: |
|
162 metagen.init_entity(entity) |
|
163 self.assertEqual(entity.cw_edited['modification_date'], md) |
|
164 |
|
165 |
149 if __name__ == '__main__': |
166 if __name__ == '__main__': |
150 unittest_main() |
167 unittest_main() |