def test_full_run(self):
        url = urlsplit(
            '/users?filter[param][name][like][no_brand_name]=doe'
            '&filter[param][first_name]=doe%&filter[binding]='
            '(!no_brand_name%26first_name)&filter[order]=name'
            '&filter[order]=desc(first_name)'
        )
        params = parse_qs(url.query)

        valid_filters = ['eq', 'like']
        default_filter = 'eq'

        parser = build_parser(
            valid_filters=valid_filters,
            default_filter=default_filter,
        )

        query = parser(params)
        self.assertIsInstance(
            query.param_order,
            And,
        )
        self.assertEqual(
            query.orders[0].name,
            'name',
        )
        self.assertEqual(
            query.orders[1].name,
            'first_name'
        )
Example #2
0
 def parser(self):
     return build_parser(
         self.filters,
         self.default_filter
     )
Example #3
0
 def evaluate_params(self, params):
     parser = build_parser(self._filter_names, self._default_filter)
     return self.evaluate(parser(params))
 def evaluate_params(self, params):
     parser = build_parser(self._filter_names, self._default_filter)
     return self.evaluate(parser(params))