equal
deleted
inserted
replaced
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)) |