code: def test_gettext_prolog_epilog_substitution(app):
      app.build(force_all=True)
  
      assert (app.outdir / "prolog_epilog_substitution.pot").is_file()
      pot = (app.outdir / "prolog_epilog_substitution.pot").read_text(
          encoding="utf8"
      )
      msg_ids = list(filter(None, map(msgid_getter, pot.splitlines())))
  
      assert msg_ids == [
          "i18n with prologue and epilogue substitutions",
          "This is content that contains |subst_prolog_1|.",
          "Substituted image |subst_prolog_2| here.",
          "subst_prolog_2",
          ".. image:: /img.png",
          "This is content that contains |subst_epilog_1|.",
          "Substituted image |subst_epilog_2| here.",
          "subst_epilog_2",
          ".. image:: /i18n.png",
      ]
  
file_path: sphinx/tests/test_builders/test_build_gettext.py
imports: import gettext
  import os
  import re
  import subprocess
  import sys
  from subprocess import CalledProcessError
  import pytest
  from sphinx.builders.gettext import Catalog, MsgOrigin
label_desc: Use image node_id 10 for calling a global function with example usage: test_gettext_prolog_epilog_substitution(app) without return types