code: def test_custom_substitutions(self):
      text = (
          '<< The "Unicode char of the year 2014"\n'
          "is the 'mdash': ---\n"
          "Must not be confused with 'ndash'  (--) ... >>"
      )
      html = (
          "<p>[ The &bdquo;Unicode char of the year 2014&ldquo;\n"
          "is the &sbquo;mdash&lsquo;: \u2014\n"
          "Must not be confused with &sbquo;ndash&lsquo;  (\u2013) \u2026 ]</p>"
      )
      self.assertMarkdownRenders(text, html)
  
file_path: markdown/tests/test_syntax/extensions/test_smarty.py
imports: from markdown.test_tools import TestCase
label_desc: Use image node_id 1 for calling the TestSmartyCustomSubstitutions obj's underlying member method code with example usage: obj.test_custom_substitutions() without return types