server/test/unittest_repository.py
changeset 6427 c8a5ac2d1eaa
parent 6401 d7f5d873e1b8
child 6796 e70ca9abfc51
equal deleted inserted replaced
6426:541659c39f6a 6427:c8a5ac2d1eaa
    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