Commit 7fec5a22 authored by Tim Graham's avatar Tim Graham
Browse files

Fixed #7557 -- Added type checking to Variable initialization.

Thanks tobias for the suggestion and boblefrag and saz for work on the
patch.
parent 55b9bff0
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -675,6 +675,9 @@ class Variable(object):
        self.translate = False
        self.message_context = None

        if not isinstance(var, six.string_types):
            raise TypeError(
                "Variable must be a string or number, got %s" % type(var))
        try:
            # First try to treat this variable as a number.
            #
+4 −0
Original line number Diff line number Diff line
@@ -87,6 +87,10 @@ class ParserTests(TestCase):
            Variable, "article._hidden"
        )

        # Variables should raise on non string type
        with six.assertRaisesRegex(self, TypeError, "Variable must be a string or number, got <(class|type) 'dict'>"):
            Variable({})

    @override_settings(DEBUG=True, TEMPLATE_DEBUG=True)
    def test_compile_filter_error(self):
        # regression test for #19819