93 person = self.repo.schema.eschema('Personne') |
93 person = self.repo.schema.eschema('Personne') |
94 self.assertEqual(len(person._unique_together), 1) |
94 self.assertEqual(len(person._unique_together), 1) |
95 self.assertItemsEqual(person._unique_together[0], |
95 self.assertItemsEqual(person._unique_together[0], |
96 ('nom', 'prenom', 'inline2')) |
96 ('nom', 'prenom', 'inline2')) |
97 |
97 |
98 def test_schema_has_owner(self): |
98 def test_all_entities_have_owner(self): |
99 repo = self.repo |
99 self.failIf(self.execute('Any X WHERE NOT X owned_by U')) |
100 cnxid = repo.connect(self.admlogin, password=self.admpassword) |
100 |
101 self.failIf(repo.execute(cnxid, 'CWEType X WHERE NOT X owned_by U')) |
101 def test_all_entities_have_is(self): |
102 self.failIf(repo.execute(cnxid, 'CWRType X WHERE NOT X owned_by U')) |
102 self.failIf(self.execute('Any X WHERE NOT X is ET')) |
103 self.failIf(repo.execute(cnxid, 'CWAttribute X WHERE NOT X owned_by U')) |
103 |
104 self.failIf(repo.execute(cnxid, 'CWRelation X WHERE NOT X owned_by U')) |
104 def test_all_entities_have_cw_source(self): |
105 self.failIf(repo.execute(cnxid, 'CWConstraint X WHERE NOT X owned_by U')) |
105 self.failIf(self.execute('Any X WHERE NOT X cw_source S')) |
106 self.failIf(repo.execute(cnxid, 'CWConstraintType X WHERE NOT X owned_by U')) |
|
107 |
106 |
108 def test_connect(self): |
107 def test_connect(self): |
109 self.assert_(self.repo.connect(self.admlogin, password=self.admpassword)) |
108 self.assert_(self.repo.connect(self.admlogin, password=self.admpassword)) |
110 self.assertRaises(AuthenticationError, |
109 self.assertRaises(AuthenticationError, |
111 self.repo.connect, self.admlogin, password='nimportnawak') |
110 self.repo.connect, self.admlogin, password='nimportnawak') |
286 schema = self.repo.schema |
285 schema = self.repo.schema |
287 # check order of attributes is respected |
286 # check order of attributes is respected |
288 self.assertListEqual([r.type for r in schema.eschema('CWAttribute').ordered_relations() |
287 self.assertListEqual([r.type for r in schema.eschema('CWAttribute').ordered_relations() |
289 if not r.type in ('eid', 'is', 'is_instance_of', 'identity', |
288 if not r.type in ('eid', 'is', 'is_instance_of', 'identity', |
290 'creation_date', 'modification_date', 'cwuri', |
289 'creation_date', 'modification_date', 'cwuri', |
291 'owned_by', 'created_by', |
290 'owned_by', 'created_by', 'cw_source', |
292 'update_permission', 'read_permission', |
291 'update_permission', 'read_permission', |
293 'in_basket')], |
292 'in_basket')], |
294 ['relation_type', |
293 ['relation_type', |
295 'from_entity', 'to_entity', |
294 'from_entity', 'to_entity', |
296 'constrained_by', |
295 'constrained_by', |
367 |
366 |
368 def test_internal_api(self): |
367 def test_internal_api(self): |
369 repo = self.repo |
368 repo = self.repo |
370 cnxid = repo.connect(self.admlogin, password=self.admpassword) |
369 cnxid = repo.connect(self.admlogin, password=self.admpassword) |
371 session = repo._get_session(cnxid, setpool=True) |
370 session = repo._get_session(cnxid, setpool=True) |
372 self.assertEqual(repo.type_and_source_from_eid(1, session), |
371 self.assertEqual(repo.type_and_source_from_eid(2, session), |
373 ('CWGroup', 'system', None)) |
372 ('CWGroup', 'system', None)) |
374 self.assertEqual(repo.type_from_eid(1, session), 'CWGroup') |
373 self.assertEqual(repo.type_from_eid(2, session), 'CWGroup') |
375 self.assertEqual(repo.source_from_eid(1, session).uri, 'system') |
374 self.assertEqual(repo.source_from_eid(2, session).uri, 'system') |
376 self.assertEqual(repo.eid2extid(repo.system_source, 1, session), None) |
375 self.assertEqual(repo.eid2extid(repo.system_source, 2, session), None) |
377 class dummysource: uri = 'toto' |
376 class dummysource: uri = 'toto' |
378 self.assertRaises(UnknownEid, repo.eid2extid, dummysource, 1, session) |
377 self.assertRaises(UnknownEid, repo.eid2extid, dummysource, 2, session) |
379 |
378 |
380 def test_public_api(self): |
379 def test_public_api(self): |
381 self.assertEqual(self.repo.get_schema(), self.repo.schema) |
380 self.assertEqual(self.repo.get_schema(), self.repo.schema) |
382 self.assertEqual(self.repo.source_defs(), {'system': {'adapter': 'native', 'uri': 'system'}}) |
381 self.assertEqual(self.repo.source_defs(), {'system': {'type': 'native', 'uri': 'system'}}) |
383 # .properties() return a result set |
382 # .properties() return a result set |
384 self.assertEqual(self.repo.properties().rql, 'Any K,V WHERE P is CWProperty,P pkey K, P value V, NOT P for_user U') |
383 self.assertEqual(self.repo.properties().rql, 'Any K,V WHERE P is CWProperty,P pkey K, P value V, NOT P for_user U') |
385 |
384 |
386 def test_session_api(self): |
385 def test_session_api(self): |
387 repo = self.repo |
386 repo = self.repo |
388 cnxid = repo.connect(self.admlogin, password=self.admpassword) |
387 cnxid = repo.connect(self.admlogin, password=self.admpassword) |
389 self.assertEqual(repo.user_info(cnxid), (5, 'admin', set([u'managers']), {})) |
388 self.assertEqual(repo.user_info(cnxid), (6, 'admin', set([u'managers']), {})) |
390 self.assertEqual(repo.describe(cnxid, 1), (u'CWGroup', u'system', None)) |
389 self.assertEqual(repo.describe(cnxid, 2), (u'CWGroup', u'system', None)) |
391 repo.close(cnxid) |
390 repo.close(cnxid) |
392 self.assertRaises(BadConnectionId, repo.user_info, cnxid) |
391 self.assertRaises(BadConnectionId, repo.user_info, cnxid) |
393 self.assertRaises(BadConnectionId, repo.describe, cnxid, 1) |
392 self.assertRaises(BadConnectionId, repo.describe, cnxid, 1) |
394 |
393 |
395 def test_shared_data_api(self): |
394 def test_shared_data_api(self): |
516 self.session.set_pool() |
515 self.session.set_pool() |
517 self.assertRaises(UnknownEid, self.repo.source_from_eid, -2, self.session) |
516 self.assertRaises(UnknownEid, self.repo.source_from_eid, -2, self.session) |
518 |
517 |
519 def test_type_from_eid(self): |
518 def test_type_from_eid(self): |
520 self.session.set_pool() |
519 self.session.set_pool() |
521 self.assertEqual(self.repo.type_from_eid(1, self.session), 'CWGroup') |
520 self.assertEqual(self.repo.type_from_eid(2, self.session), 'CWGroup') |
522 |
521 |
523 def test_type_from_eid_raise(self): |
522 def test_type_from_eid_raise(self): |
524 self.session.set_pool() |
523 self.session.set_pool() |
525 self.assertRaises(UnknownEid, self.repo.type_from_eid, -2, self.session) |
524 self.assertRaises(UnknownEid, self.repo.type_from_eid, -2, self.session) |
526 |
525 |