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): |