test/unittest_dataimport.py
changeset 10294 277074659cad
parent 10286 0f8c3ac88f1e
child 10349 efbbf1e93a04
equal deleted inserted replaced
10293:04266443a6a9 10294:277074659cad
     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()