def assertErrorPage(self, status, message=None, pattern=''):
        """Compare the response body with a built in error page.

        The function will optionally look for the regexp pattern, within
        the exception embedded in the error page.
        """
        # This will never contain a traceback
        page = cherrypy._cperror.get_error_page(status, message=message)

        # First, test the response body without checking the traceback.
        # Stick a match-all group (.*) in to grab the traceback.
        def esc(text):
            return re.escape(ntob(text))

        epage = re.escape(page)
        epage = epage.replace(
            esc('<pre id="traceback"></pre>'),
            esc('<pre id="traceback">') + b'(.*)' + esc('</pre>'),
        )
        m = re.match(epage, self.body, re.DOTALL)
        if not m:
            self._handlewebError(
                'Error page does not match; expected:\n' + page,
            )
            return

        # Now test the pattern against the traceback
        if pattern is None:
            # Special-case None to mean that there should be *no* traceback.
            if m and m.group(1):
                self._handlewebError('Error page contains traceback')
        else:
            if (m is None) or (
                not re.search(
                    ntob(re.escape(pattern), self.encoding),
                    m.group(1),
                )
            ):
                msg = 'Error page does not contain %s in traceback'
                self._handlewebError(msg % repr(pattern))
Compare the response body with a built in error page.

        The function will optionally look for the regexp pattern, within
        the exception embedded in the error page.
        
cherrypy/test/helper.py