cubicweb/server/test/unittest_repository.py
changeset 12027 c62c80f20a82
parent 11774 51c160677afe
child 12030 72c3af2cde23
equal deleted inserted replaced
12026:c21b399c9269 12027:c62c80f20a82
    75     def test_all_entities_have_cw_source(self):
    75     def test_all_entities_have_cw_source(self):
    76         with self.admin_access.repo_cnx() as cnx:
    76         with self.admin_access.repo_cnx() as cnx:
    77             self.assertFalse(cnx.execute('Any X WHERE NOT X cw_source S'))
    77             self.assertFalse(cnx.execute('Any X WHERE NOT X cw_source S'))
    78 
    78 
    79     def test_connect(self):
    79     def test_connect(self):
    80         session = self.repo.new_session(self.admlogin, password=self.admpassword)
    80         self.assertTrue(self.repo.new_session(self.admlogin, password=self.admpassword))
    81         self.assertTrue(session.sessionid)
       
    82         session.close()
       
    83         self.assertRaises(AuthenticationError,
    81         self.assertRaises(AuthenticationError,
    84                           self.repo.connect, self.admlogin, password='nimportnawak')
    82                           self.repo.connect, self.admlogin, password='nimportnawak')
    85         self.assertRaises(AuthenticationError,
    83         self.assertRaises(AuthenticationError,
    86                           self.repo.connect, self.admlogin, password='')
    84                           self.repo.connect, self.admlogin, password='')
    87         self.assertRaises(AuthenticationError,
    85         self.assertRaises(AuthenticationError,
    98             cnx.execute('INSERT CWUser X: X login %(login)s, X upassword %(passwd)s, '
    96             cnx.execute('INSERT CWUser X: X login %(login)s, X upassword %(passwd)s, '
    99                         'X in_group G WHERE G name "users"',
    97                         'X in_group G WHERE G name "users"',
   100                         {'login': u"barnabé", 'passwd': u"héhéhé".encode('UTF8')})
    98                         {'login': u"barnabé", 'passwd': u"héhéhé".encode('UTF8')})
   101             cnx.commit()
    99             cnx.commit()
   102         repo = self.repo
   100         repo = self.repo
   103         session = repo.new_session(u"barnabé", password=u"héhéhé".encode('UTF8'))
   101         self.assertTrue(repo.new_session(u"barnabé", password=u"héhéhé".encode('UTF8')))
   104         self.assertTrue(session.sessionid)
       
   105         session.close()
       
   106 
   102 
   107     def test_rollback_on_execute_validation_error(self):
   103     def test_rollback_on_execute_validation_error(self):
   108         class ValidationErrorAfterHook(Hook):
   104         class ValidationErrorAfterHook(Hook):
   109             __regid__ = 'valerror-after-hook'
   105             __regid__ = 'valerror-after-hook'
   110             __select__ = Hook.__select__ & is_instance('CWGroup')
   106             __select__ = Hook.__select__ & is_instance('CWGroup')
   139                 with self.assertRaises(QueryError) as cm:
   135                 with self.assertRaises(QueryError) as cm:
   140                     cnx.commit()
   136                     cnx.commit()
   141                 self.assertEqual(str(cm.exception), 'transaction must be rolled back')
   137                 self.assertEqual(str(cm.exception), 'transaction must be rolled back')
   142                 cnx.rollback()
   138                 cnx.rollback()
   143                 self.assertFalse(cnx.execute('Any X WHERE X is CWGroup, X name "toto"'))
   139                 self.assertFalse(cnx.execute('Any X WHERE X is CWGroup, X name "toto"'))
   144 
       
   145 
       
   146     def test_close(self):
       
   147         repo = self.repo
       
   148         session = repo.new_session(self.admlogin, password=self.admpassword)
       
   149         self.assertTrue(session.sessionid)
       
   150         session.close()
       
   151 
       
   152 
   140 
   153     def test_initial_schema(self):
   141     def test_initial_schema(self):
   154         schema = self.repo.schema
   142         schema = self.repo.schema
   155         # check order of attributes is respected
   143         # check order of attributes is respected
   156         notin = set(('eid', 'is', 'is_instance_of', 'identity',
   144         notin = set(('eid', 'is', 'is_instance_of', 'identity',
   196     def test_internal_api(self):
   184     def test_internal_api(self):
   197         repo = self.repo
   185         repo = self.repo
   198         session = repo.new_session(self.admlogin, password=self.admpassword)
   186         session = repo.new_session(self.admlogin, password=self.admpassword)
   199         with session.new_cnx() as cnx:
   187         with session.new_cnx() as cnx:
   200             self.assertEqual(repo.type_from_eid(2, cnx), 'CWGroup')
   188             self.assertEqual(repo.type_from_eid(2, cnx), 'CWGroup')
   201         session.close()
       
   202 
   189 
   203     def test_public_api(self):
   190     def test_public_api(self):
   204         self.assertEqual(self.repo.get_schema(), self.repo.schema)
   191         self.assertEqual(self.repo.get_schema(), self.repo.schema)
   205         self.assertEqual(self.repo.source_defs(), {'system': {'type': 'native',
   192         self.assertEqual(self.repo.source_defs(), {'system': {'type': 'native',
   206                                                               'uri': 'system',
   193                                                               'uri': 'system',