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', |