def test_build_kwargs2(self): """ Should raise FilterValueError when transformation of query param fails """ filters = mock.Mock() raising_callable = mock.Mock() raising_callable.side_effect = ValueError() filter_dict = { "id": ("id__exact", lambda val: "lambda_id"), "id_lt": ("id__lt", lambda val: "lambda_id_lt"), "text_startswith": ("text__startswith", raising_callable) } filters.items.return_value = filter_dict.items() filters.keys.return_value = filter_dict.keys() fm = FilterMixin() query_params = {"id_lt": 10, "!id_lt": 5, "!text_startswith": "What up?!"} with self.assertRaises(FilterValueError): fm.build_search_kwargs(filters, query_params)
def test_build_kwargs2(self): """ Should raise FilterValueError when transformation of query param fails """ filters = mock.Mock() raising_callable = mock.Mock() raising_callable.side_effect = ValueError() filter_dict = { "id": ("id__exact", lambda val: "lambda_id"), "id_lt": ("id__lt", lambda val: "lambda_id_lt"), "text_startswith": ("text__startswith", raising_callable) } filters.items.return_value = filter_dict.items() filters.keys.return_value = filter_dict.keys() fm = FilterMixin() query_params = { "id_lt": 10, "!id_lt": 5, "!text_startswith": "What up?!" } with self.assertRaises(FilterValueError): fm.build_search_kwargs(filters, query_params)
def test_build_kwargs(self): """ Should build all kwargs based on values returned by filter.items() """ filters = mock.Mock() filter_dict = { "id": ("id__exact", lambda val: "lambda_id"), "id_lt": ("id__lt", lambda val: "lambda_id_lt"), "text_startswith": ("text__startswith", lambda val: "lambda_text") } filters.items.return_value = filter_dict.items() filters.keys.return_value = filter_dict.keys() fm = FilterMixin() query_params = {"id_lt": 10, "!id_lt": 5, "!text_startswith": "What up?!"} expected = ( ("id__lt", "lambda_id_lt", False), ("id__lt", "lambda_id_lt", True), ("text__startswith", "lambda_text", True) ) actual = fm.build_search_kwargs(filters, query_params) self.assertSetEqual(set(expected), actual)
def test_build_kwargs(self): """ Should build all kwargs based on values returned by filter.items() """ filters = mock.Mock() filter_dict = { "id": ("id__exact", lambda val: "lambda_id"), "id_lt": ("id__lt", lambda val: "lambda_id_lt"), "text_startswith": ("text__startswith", lambda val: "lambda_text") } filters.items.return_value = filter_dict.items() filters.keys.return_value = filter_dict.keys() fm = FilterMixin() query_params = { "id_lt": 10, "!id_lt": 5, "!text_startswith": "What up?!" } expected = (("id__lt", "lambda_id_lt", False), ("id__lt", "lambda_id_lt", True), ("text__startswith", "lambda_text", True)) actual = fm.build_search_kwargs(filters, query_params) self.assertSetEqual(set(expected), actual)