code: def test_binary_operator_intercepting(self, env):
      def disable_op(left, right):
          raise TemplateRuntimeError("that operator so does not work")
  
      for expr, ctx, rv in ("1 + 2", {}, "3"), ("a + 2", {"a": 2}, "4"):
          env = SandboxedEnvironment()
          env.binop_table["+"] = disable_op
          t = env.from_string("{{ %s }}" % expr)
          assert t.render(ctx) == rv
          env.intercepted_binops = frozenset(["+"])
          t = env.from_string("{{ %s }}" % expr)
          with pytest.raises(TemplateRuntimeError):
              t.render(ctx)
  
imports: import pytest
  from jinja2 import Environment
  from jinja2 import escape
  from jinja2 import Markup
  from jinja2._compat import text_type
  from jinja2.exceptions import SecurityError
  from jinja2.exceptions import TemplateRuntimeError
  from jinja2.exceptions import TemplateSyntaxError
  from jinja2.nodes import EvalContext
  from jinja2.sandbox import ImmutableSandboxedEnvironment
  from jinja2.sandbox import SandboxedEnvironment
  from jinja2.sandbox import unsafe
label_desc: Use image node_id 7 for calling the TestSandbox obj's underlying member method code with example usage: obj.test_binary_operator_intercepting(env) without return types