test/unittest_rqlrewrite.py
changeset 10612 84468b90e9c1
parent 9955 60a9cd1b3a4b
child 10654 d6d9913753d2
equal deleted inserted replaced
10611:f4dec0cca9a1 10612:84468b90e9c1
    14 # details.
    14 # details.
    15 #
    15 #
    16 # You should have received a copy of the GNU Lesser General Public License along
    16 # You should have received a copy of the GNU Lesser General Public License along
    17 # with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
    17 # with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
    18 
    18 
       
    19 from six import string_types
       
    20 
    19 from logilab.common.testlib import unittest_main, TestCase
    21 from logilab.common.testlib import unittest_main, TestCase
    20 from logilab.common.testlib import mock_object
    22 from logilab.common.testlib import mock_object
    21 from yams import BadSchemaDefinition
    23 from yams import BadSchemaDefinition
    22 from yams.buildobjs import RelationDefinition
    24 from yams.buildobjs import RelationDefinition
    23 from rql import parse, nodes, RQLHelper
    25 from rql import parse, nodes, RQLHelper
    65 
    67 
    66 def rewrite(rqlst, snippets_map, kwargs, existingvars=None):
    68 def rewrite(rqlst, snippets_map, kwargs, existingvars=None):
    67     rewriter = _prepare_rewriter(rqlrewrite.RQLRewriter, kwargs)
    69     rewriter = _prepare_rewriter(rqlrewrite.RQLRewriter, kwargs)
    68     snippets = []
    70     snippets = []
    69     for v, exprs in sorted(snippets_map.items()):
    71     for v, exprs in sorted(snippets_map.items()):
    70         rqlexprs = [isinstance(snippet, basestring)
    72         rqlexprs = [isinstance(snippet, string_types)
    71                     and mock_object(snippet_rqlst=parse('Any X WHERE '+snippet).children[0],
    73                     and mock_object(snippet_rqlst=parse('Any X WHERE '+snippet).children[0],
    72                                     expression='Any X WHERE '+snippet)
    74                                     expression='Any X WHERE '+snippet)
    73                     or snippet
    75                     or snippet
    74                     for snippet in exprs]
    76                     for snippet in exprs]
    75         snippets.append((dict([v]), rqlexprs))
    77         snippets.append((dict([v]), rqlexprs))