def test_single_conditions(self): raw_node = { "type": "and", "children": [ {"id": 1, "operator": "icontains", "value": "test"}, {"id": 2, "operator": "iexact", "value": "test2"}, ], } q1 = logictree.transform(raw_node).condition q2 = Q(keywords__iexact=u"test2") & Q(name__icontains=u"test") self.assertEqual(str(q1), str(q2)) raw_node["type"] = "or" q3 = logictree.transform(raw_node).condition q4 = Q(keywords__iexact=u"test2") | Q(name__icontains=u"test") self.assertEqual(str(q3), str(q4))
def POST(self, request): json = uni2str(request.data.copy()) if not any([x in json for x in ('type', 'operator')]): return http.BAD_REQUEST, 'Invalid data format' text = logictree.transform(json).text j = '' if text.has_key('type'): j = ' %s ' % text['type'] return j.join(text['conditions'])
def test_multi_level_condition(self): raw_node = { "type": "and", "children": [ {"id": 1, "operator": "in", "value": ["one", "two"]}, { "type": "or", "children": [ {"id": 3, "operator": "iexact", "value": "foobar"}, {"id": 3, "operator": "iexact", "value": "barbaz"}, ], }, ], } q1 = logictree.transform(raw_node).condition q2 = (Q(fields__name__iexact=u"barbaz") | Q(fields__name__iexact=u"foobar")) & Q(name__in=[u"one", u"two"]) self.assertEqual(str(q1), str(q2))
def get_text(self): node = logictree.transform(self._get_obj()) return node.text
def _parse_contents(self, obj, *args, **kwargs): self._node = logictree.transform(obj) return self._node.apply
def _get_contents(self, obj): self._node = logictree.transform(obj) return self._node.get_field_ids()
def test_single_field(self): raw_node = {"id": 1, "operator": "iexact", "value": "foobar"} q = logictree.transform(raw_node).condition self.assertEqual(str(q), str(Q(name__iexact=u"foobar")))