server/test/unittest_repository.py
branchstable
changeset 4806 4f12f59b1a13
parent 4680 8a6bee838464
child 4808 23df4a120c96
equal deleted inserted replaced
4805:2d0aa2b7da02 4806:4f12f59b1a13
    24 from cubicweb.dbapi import connect, repo_connect, multiple_connections_unfix
    24 from cubicweb.dbapi import connect, repo_connect, multiple_connections_unfix
    25 from cubicweb.devtools.testlib import CubicWebTC
    25 from cubicweb.devtools.testlib import CubicWebTC
    26 from cubicweb.devtools.repotest import tuplify
    26 from cubicweb.devtools.repotest import tuplify
    27 from cubicweb.server import repository, hook
    27 from cubicweb.server import repository, hook
    28 from cubicweb.server.sqlutils import SQL_PREFIX
    28 from cubicweb.server.sqlutils import SQL_PREFIX
    29 
    29 from cubicweb.server.sources import native
    30 
    30 
    31 # start name server anyway, process will fail if already running
    31 # start name server anyway, process will fail if already running
    32 os.system('pyro-ns >/dev/null 2>/dev/null &')
    32 os.system('pyro-ns >/dev/null 2>/dev/null &')
    33 
    33 
    34 
    34 
   422         self.commit()
   422         self.commit()
   423         date, modified, deleted = self.repo.entities_modified_since(('Personne',), omtime)
   423         date, modified, deleted = self.repo.entities_modified_since(('Personne',), omtime)
   424         self.assertEquals(modified, [])
   424         self.assertEquals(modified, [])
   425         self.assertEquals(deleted, [('Personne', eidp)])
   425         self.assertEquals(deleted, [('Personne', eidp)])
   426 
   426 
   427     def test_composite_entity(self):
   427     def test_fulltext_container_entity(self):
   428         assert self.schema.rschema('use_email').fulltext_container == 'subject'
   428         assert self.schema.rschema('use_email').fulltext_container == 'subject'
   429         eid = self.request().create_entity('EmailAddress', address=u'toto@logilab.fr').eid
   429         req = self.request()
   430         self.commit()
   430         toto = req.create_entity('EmailAddress', address=u'toto@logilab.fr')
   431         rset = self.execute('Any X WHERE X has_text %(t)s', {'t': 'toto'})
   431         self.commit()
   432         self.assertEquals(rset.rows, [[eid]])
   432         rset = req.execute('Any X WHERE X has_text %(t)s', {'t': 'toto'})
   433         self.execute('SET X use_email Y WHERE X login "admin", Y eid %(y)s', {'y': eid})
       
   434         self.commit()
       
   435         rset = self.execute('Any X WHERE X has_text %(t)s', {'t': 'toto'})
       
   436         self.assertEquals(rset.rows, [[self.session.user.eid]])
       
   437         self.execute('DELETE X use_email Y WHERE X login "admin", Y eid %(y)s', {'y': eid})
       
   438         self.commit()
       
   439         rset = self.execute('Any X WHERE X has_text %(t)s', {'t': 'toto'})
       
   440         self.assertEquals(rset.rows, [])
   433         self.assertEquals(rset.rows, [])
   441         eid = self.request().create_entity('EmailAddress', address=u'tutu@logilab.fr').eid
   434         req.user.set_relations(use_email=toto)
   442         self.execute('SET X use_email Y WHERE X login "admin", Y eid %(y)s', {'y': eid})
   435         self.commit()
   443         self.commit()
   436         rset = req.execute('Any X WHERE X has_text %(t)s', {'t': 'toto'})
   444         rset = self.execute('Any X WHERE X has_text %(t)s', {'t': 'tutu'})
   437         self.assertEquals(rset.rows, [[req.user.eid]])
   445         self.assertEquals(rset.rows, [[self.session.user.eid]])
   438         req.execute('DELETE X use_email Y WHERE X login "admin", Y eid %(y)s',
       
   439                     {'y': toto.eid})
       
   440         self.commit()
       
   441         rset = req.execute('Any X WHERE X has_text %(t)s', {'t': 'toto'})
       
   442         self.assertEquals(rset.rows, [])
       
   443         tutu = req.create_entity('EmailAddress', address=u'tutu@logilab.fr')
       
   444         req.user.set_relations(use_email=tutu)
       
   445         self.commit()
       
   446         rset = req.execute('Any X WHERE X has_text %(t)s', {'t': 'tutu'})
       
   447         self.assertEquals(rset.rows, [[req.user.eid]])
       
   448         tutu.set_attributes(address=u'hip@logilab.fr')
       
   449         self.commit()
       
   450         rset = req.execute('Any X WHERE X has_text %(t)s', {'t': 'tutu'})
       
   451         self.assertEquals(rset.rows, [])
       
   452         rset = req.execute('Any X WHERE X has_text %(t)s', {'t': 'hip'})
       
   453         self.assertEquals(rset.rows, [[req.user.eid]])
       
   454 
       
   455     def test_no_uncessary_ftiindex_op(self):
       
   456         req = self.request()
       
   457         req.create_entity('Workflow', name=u'dummy workflow', description=u'huuuuu')
       
   458         self.failIf(any(x for x in self.session.pending_operations
       
   459                         if isinstance(x, native.FTIndexEntityOp)))
   446 
   460 
   447 
   461 
   448 class DBInitTC(CubicWebTC):
   462 class DBInitTC(CubicWebTC):
   449 
   463 
   450     def test_versions_inserted(self):
   464     def test_versions_inserted(self):