[req] fix find() generating non-rewritable rql on non final relations
When filtering on a relation, find() was generating rql like
'Any X WHERE X is ETYPE, X relation EID' which work without being rewritten (it
should probably not), but when applying some rewrite (eg. permissions) it raise
in rqlrewrite code.
def _use_orig_term(self, snippet_varname, term):
...
> self.rewritten[key] = term.name
E AttributeError: 'Constant' object has no attribute 'name'
Generate valid rql instead 'Any X WHERE X is ETYPE, X relation Y, Y eid EID'.
import webtest
from pyramid.config import Configurator
from cubicweb.devtools.webtest import CubicWebTestTC
class PyramidCWTest(CubicWebTestTC):
settings = {}
@classmethod
def init_config(cls, config):
super(PyramidCWTest, cls).init_config(config)
config.global_set_option('anonymous-user', 'anon')
def setUp(self):
# Skip CubicWebTestTC setUp
super(CubicWebTestTC, self).setUp()
settings = {'cubicweb.bwcompat': False}
settings.update(self.settings)
config = Configurator(settings=settings)
config.registry['cubicweb.repository'] = self.repo
config.include('cubicweb.pyramid')
self.includeme(config)
self.pyr_registry = config.registry
self.webapp = webtest.TestApp(
config.make_wsgi_app(),
extra_environ={'wsgi.url_scheme': 'https'})
def includeme(self, config):
pass