code: def test_notebook_2_with_all_backends():
      [notebook] = (
          Path(__file__).parent.with_name("docs").glob("2-*.ipynb")
      )
      backends = []
      if is_backend_tested("torch"):
          # notebook uses name pytorch
          backends.append("pytorch")
      if is_backend_tested("tensorflow"):
          backends.append("tensorflow")
      if is_backend_tested("chainer"):
          backends.append("chainer")
  
      if len(backends) == 0:
          pytest.skip()
  
      for backend in backends:
          print("Testing {} with backend {}".format(notebook, backend))
          replacements = {
              "flavour = 'pytorch'": "flavour = '{}'".format(backend)
          }
          expected_string = "selected {} backend".format(backend)
          result = render_notebook(notebook, replacements=replacements)
          assert expected_string in result
  
file_path: einops/tests/test_notebooks.py
imports: from typing import Dict
  from io import StringIO
  from tests import parse_backends_to_test, is_backend_tested
  from pathlib import Path
  import nbformat
  import pytest
  from nbconvert.preprocessors import ExecutePreprocessor
label_desc: Use image node_id 3 for calling a global function with example usage: test_notebook_2_with_all_backends() without return types