code: def test_choice_includes(self, test_env):
      t = test_env.from_string('{% include ["missing", "header"] %}')
      assert t.render(foo=42) == "[42|23]"
  
      t = test_env.from_string(
          '{% include ["missing", "missing2"] ignore missing %}'
      )
      assert t.render(foo=42) == ""
  
      t = test_env.from_string('{% include ["missing", "missing2"] %}')
      pytest.raises(TemplateNotFound, t.render)
      with pytest.raises(TemplatesNotFound) as e:
          t.render()
  
      assert e.value.templates == ["missing", "missing2"]
      assert e.value.name == "missing2"
  
      def test_includes(t, **ctx):
          ctx["foo"] = 42
          assert t.render(ctx) == "[42|23]"
  
      t = test_env.from_string('{% include ["missing", "header"] %}')
      test_includes(t)
      t = test_env.from_string("{% include x %}")
      test_includes(t, x=["missing", "header"])
      t = test_env.from_string('{% include [x, "header"] %}')
      test_includes(t, x="missing")
      t = test_env.from_string("{% include x %}")
      test_includes(t, x="header")
      t = test_env.from_string("{% include [x] %}")
      test_includes(t, x="header")
  
imports: import pytest
  from jinja2 import DictLoader
  from jinja2 import Environment
  from jinja2.exceptions import TemplateNotFound
  from jinja2.exceptions import TemplatesNotFound
  from jinja2.exceptions import TemplateSyntaxError
label_desc: Use image node_id 2 for calling the TestIncludes obj's underlying member method code with example usage: obj.test_choice_includes(test_env) without return types