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 self.assertTrue(self.repo.new_session(self.admlogin, password=self.admpassword)) |
80 with self.repo.internal_cnx() as cnx: |
81 self.assertRaises(AuthenticationError, |
81 self.assertTrue( |
82 self.repo.new_session, self.admlogin, password='nimportnawak') |
82 self.repo.authenticate_user(cnx, self.admlogin, password=self.admpassword)) |
83 self.assertRaises(AuthenticationError, |
83 self.assertRaises(AuthenticationError, self.repo.authenticate_user, |
84 self.repo.new_session, self.admlogin, password='') |
84 cnx, self.admlogin, password='nimportnawak') |
85 self.assertRaises(AuthenticationError, |
85 self.assertRaises(AuthenticationError, self.repo.authenticate_user, |
86 self.repo.new_session, self.admlogin, password=None) |
86 cnx, self.admlogin, password='') |
87 self.assertRaises(AuthenticationError, |
87 self.assertRaises(AuthenticationError, self.repo.authenticate_user, |
88 self.repo.new_session, None, password=None) |
88 cnx, self.admlogin, password=None) |
89 self.assertRaises(AuthenticationError, |
89 self.assertRaises(AuthenticationError, self.repo.authenticate_user, |
90 self.repo.new_session, self.admlogin) |
90 cnx, None, password=None) |
91 self.assertRaises(AuthenticationError, |
91 self.assertRaises(AuthenticationError, self.repo.authenticate_user, |
92 self.repo.new_session, None) |
92 cnx, self.admlogin) |
|
93 self.assertRaises(AuthenticationError, self.repo.authenticate_user, |
|
94 cnx, None) |
93 |
95 |
94 def test_login_upassword_accent(self): |
96 def test_login_upassword_accent(self): |
95 with self.admin_access.repo_cnx() as cnx: |
97 with self.admin_access.repo_cnx() as cnx: |
96 cnx.execute('INSERT CWUser X: X login %(login)s, X upassword %(passwd)s, ' |
98 cnx.execute('INSERT CWUser X: X login %(login)s, X upassword %(passwd)s, ' |
97 'X in_group G WHERE G name "users"', |
99 'X in_group G WHERE G name "users"', |
98 {'login': u"barnabé", 'passwd': u"héhéhé".encode('UTF8')}) |
100 {'login': u"barnabé", 'passwd': u"héhéhé".encode('UTF8')}) |
99 cnx.commit() |
101 cnx.commit() |
100 repo = self.repo |
102 repo = self.repo |
101 self.assertTrue(repo.new_session(u"barnabé", password=u"héhéhé".encode('UTF8'))) |
103 self.assertTrue(repo.authenticate_user(cnx, u"barnabé", password=u"héhéhé".encode('UTF8'))) |
102 |
104 |
103 def test_rollback_on_execute_validation_error(self): |
105 def test_rollback_on_execute_validation_error(self): |
104 class ValidationErrorAfterHook(Hook): |
106 class ValidationErrorAfterHook(Hook): |
105 __regid__ = 'valerror-after-hook' |
107 __regid__ = 'valerror-after-hook' |
106 __select__ = Hook.__select__ & is_instance('CWGroup') |
108 __select__ = Hook.__select__ & is_instance('CWGroup') |
178 self.assertIsInstance(cstr, RQLConstraint) |
180 self.assertIsInstance(cstr, RQLConstraint) |
179 self.assertEqual(cstr.expression, 'O final TRUE') |
181 self.assertEqual(cstr.expression, 'O final TRUE') |
180 |
182 |
181 ownedby = schema.rschema('owned_by') |
183 ownedby = schema.rschema('owned_by') |
182 self.assertEqual(ownedby.objects('CWEType'), ('CWUser',)) |
184 self.assertEqual(ownedby.objects('CWEType'), ('CWUser',)) |
183 |
|
184 def test_internal_api(self): |
|
185 repo = self.repo |
|
186 session = repo.new_session(self.admlogin, password=self.admpassword) |
|
187 with session.new_cnx() as cnx: |
|
188 self.assertEqual(repo.type_from_eid(2, cnx), 'CWGroup') |
|
189 |
185 |
190 def test_public_api(self): |
186 def test_public_api(self): |
191 self.assertEqual(self.repo.get_schema(), self.repo.schema) |
187 self.assertEqual(self.repo.get_schema(), self.repo.schema) |
192 self.assertEqual(self.repo.source_defs(), {'system': {'type': 'native', |
188 self.assertEqual(self.repo.source_defs(), {'system': {'type': 'native', |
193 'uri': 'system', |
189 'uri': 'system', |