[selector] allow inplace operator in selector computation
Intended to facilitate overriding of existing selectors chain in view declaration.
It make the code shorter and clearer when you've to import long module pathnames
from cubicweb.devtools.testlib import CubicWebTC
class BreadCrumbsTC(CubicWebTC):
def test_base(self):
req = self.request()
f1 = req.create_entity('Folder', name=u'par&ent')
f2 = req.create_entity('Folder', name=u'chi&ld')
self.execute('SET F2 filed_under F1 WHERE F1 eid %(f1)s, F2 eid %(f2)s',
{'f1' : f1.eid, 'f2' : f2.eid})
self.commit()
self.assertEquals(f2.view('breadcrumbs'),
'<a href="http://testing.fr/cubicweb/folder/%s" title="">chi&ld</a>' % f2.eid)
childrset = f2.as_rset()
ibc = self.vreg['components'].select('breadcrumbs', self.request(), rset=childrset)
self.assertEquals(ibc.render(),
"""<span id="breadcrumbs" class="pathbar"> > <a href="http://testing.fr/cubicweb/Folder">folder_plural</a> > <a href="http://testing.fr/cubicweb/folder/%s" title="">par&ent</a> > 
<a href="http://testing.fr/cubicweb/folder/%s" title="">chi&ld</a></span>""" % (f1.eid, f2.eid))
if __name__ == '__main__':
from logilab.common.testlib import unittest_main
unittest_main()