diff options
Diffstat (limited to 'tests/template_tests/syntax_tests')
| -rw-r--r-- | tests/template_tests/syntax_tests/test_querystring.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/template_tests/syntax_tests/test_querystring.py b/tests/template_tests/syntax_tests/test_querystring.py index af8dbde955..8e0722f0fa 100644 --- a/tests/template_tests/syntax_tests/test_querystring.py +++ b/tests/template_tests/syntax_tests/test_querystring.py @@ -58,6 +58,22 @@ class QueryStringTagTests(SimpleTestCase): context = RequestContext(request) self.assertRenderEqual("querystring_multiple", context, expected="?x=y&a=b") + @setup({"querystring_multiple_lists": "{% querystring %}"}) + def test_querystring_multiple_lists(self): + request = self.request_factory.get("/", {"x": ["y", "z"], "a": ["b", "c"]}) + context = RequestContext(request) + expected = "?x=y&x=z&a=b&a=c" + self.assertRenderEqual("querystring_multiple_lists", context, expected=expected) + + @setup({"querystring_lists_with_replacement": "{% querystring a=1 %}"}) + def test_querystring_lists_with_replacement(self): + request = self.request_factory.get("/", {"x": ["y", "z"], "a": ["b", "c"]}) + context = RequestContext(request) + expected = "?x=y&x=z&a=1" + self.assertRenderEqual( + "querystring_lists_with_replacement", context, expected=expected + ) + @setup({"querystring_empty_params": "{% querystring qd %}"}) def test_querystring_empty_params(self): cases = [{}, QueryDict()] @@ -111,6 +127,44 @@ class QueryStringTagTests(SimpleTestCase): context = RequestContext(request, {"my_dict": {"test": None}}) self.assertRenderEqual("querystring_remove_dict", context, expected="?a=1") + @setup({"querystring_remove_querydict": "{% querystring request my_query_dict %}"}) + def test_querystring_remove_querydict(self): + request = self.request_factory.get("/", {"x": "1"}) + my_qd = QueryDict(mutable=True) + my_qd["x"] = None + context = RequestContext( + request, {"request": request.GET, "my_query_dict": my_qd} + ) + self.assertRenderEqual("querystring_remove_querydict", context, expected="?") + + @setup( + {"querystring_remove_querydict_many": "{% querystring request my_query_dict %}"} + ) + def test_querystring_remove_querydict_many(self): + request = self.request_factory.get( + "/", {"test": ["value1", "value2"], "a": [1, 2]} + ) + + qd_none = QueryDict(mutable=True) + qd_none["test"] = None + + qd_list_none = QueryDict(mutable=True) + qd_list_none.setlist("test", [None, None]) + + qd_empty_list = QueryDict(mutable=True) + qd_empty_list.setlist("test", []) + + for qd in (qd_none, qd_list_none, qd_empty_list): + with self.subTest(my_query_dict=qd): + context = RequestContext( + request, {"request": request.GET, "my_query_dict": qd} + ) + self.assertRenderEqual( + "querystring_remove_querydict_many", + context, + expected="?a=1&a=2", + ) + @setup({"querystring_variable": "{% querystring a=a %}"}) def test_querystring_variable(self): request = self.request_factory.get("/") |
