]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Undefined.__contains__ raises UndefinedError 1204/head
authorDavid Parker <crazdave@gmail.com>
Sat, 9 May 2020 20:04:28 +0000 (13:04 -0700)
committerDavid Lord <davidism@gmail.com>
Mon, 5 Apr 2021 17:44:31 +0000 (10:44 -0700)
CHANGES.rst
src/jinja2/runtime.py
tests/test_api.py

index f45d523cfb00d94e21d5a73c3096d0c97aa26838..2dccbfc31c08d167099f9f618b5bcaa8e5c3dcfc 100644 (file)
@@ -52,6 +52,8 @@ Unreleased
     indent by. :pr:`1167`
 -   The parser understands hex, octal, and binary integer literals.
     :issue:`1170`
+-   ``Undefined.__contains__`` (``in``) raises an ``UndefinedError``
+    instead of a ``TypeError``. :issue:`1198`
 
 
 Version 2.11.3
index 557460f03a19e9cf76b548f30b3f7fdd47c3a522..ca49db768dabaf587e835356e5965436df27a525 100644 (file)
@@ -755,7 +755,7 @@ class Undefined:
     __floordiv__ = __rfloordiv__ = _fail_with_undefined_error
     __mod__ = __rmod__ = _fail_with_undefined_error
     __pos__ = __neg__ = _fail_with_undefined_error
-    __call__ = __getitem__ = _fail_with_undefined_error
+    __call__ = __getitem__ = __contains__ = _fail_with_undefined_error
     __lt__ = __le__ = __gt__ = __ge__ = _fail_with_undefined_error
     __int__ = __float__ = __complex__ = _fail_with_undefined_error
     __pow__ = __rpow__ = _fail_with_undefined_error
index 4b6e0aed3d7974f0e0567e9bdb704cb3fbc7550a..5b21bcc55a9b02b0c8c169542c32e14664b3d486 100644 (file)
@@ -317,6 +317,7 @@ class TestUndefined:
         assert env.from_string("{{ foo.missing }}").render(foo=42) == ""
         assert env.from_string("{{ not missing }}").render() == "True"
         pytest.raises(UndefinedError, env.from_string("{{ missing - 1}}").render)
+        pytest.raises(UndefinedError, env.from_string("{{ 'foo' in missing }}").render)
         und1 = Undefined(name="x")
         und2 = Undefined(name="y")
         assert und1 == und2