{
    "file_diffs": [
        {
            "old_file_content": "unreleased\n==========\n\nFeatures\n--------\n\n- Add support for Python 3.11 and 3.12.\n\n- Added HTTP 418 error code via `pyramid.httpexceptions.HTTPImATeapot`.\n  See https://github.com/Pylons/pyramid/pull/3667\n\n- Coverage reports in tests based on Python 3.12 instead of Python 3.8.\n\n- All scripts now pass a new option ``__script__`` when loading the WSGI app.\n  For example, ``pserve`` sets ``__script__ == 'pserve'``. This works for\n  ``pserve``, ``pshell``, ``prequest``, ``proutes``, ``ptweens``, ``pviews``,\n  as well as when using ``pyramid.paster.bootstrap`` directly.\n\n  When using ``plaster-pastedeploy`` to load an INI file, this option will\n  manifest as a new value passed into the ``global_conf`` arg of your\n  application factory, where you can use it as part of initializing your app.\n\n  See https://github.com/Pylons/pyramid/pull/3735\n\nBug Fixes\n---------\n\n- Removed support for null-bytes in the path when making a request for a file\n  against a static_view. Whille null-bytes are allowed by the HTTP\n  specification, due to the handling of null-bytes potentially leading to\n  security vulnerabilities it is no longer supported.\n\n  This fixes a security vulnerability that is present due to a bug in Python\n  3.11.0 through 3.11.4, thereby allowing the unintended disclosure of an\n  ``index.html`` one directory up from the static views path.\n\n  Thanks to Masashi Yamane of LAC Co., Ltd for reporting this issue.\n\n- Fix issues where permissions may be checked on exception views. This is not\n  supposed to happen in normal circumstances.\n\n  This also prevents issues where a ``request.url`` fails to be decoded when\n  logging info when ``pyramid.debug_authorization`` is enabled.\n\n  See https://github.com/Pylons/pyramid/pull/3741/files\n\nBackward Incompatibilities\n--------------------------\n\n- Drop support for Python 3.6.\n\n- Requests to a static_view are no longer allowed to contain a null-byte in any\n  part of the path segment.\n\n- Drop support for l*gettext() methods in the i18n module.\n  These have been deprecated in Python's gettext module since 3.8, and\n  removed in Python 3.11.\n\nDocumentation Changes\n---------------------\n",
            "new_file_content": "unreleased\n==========\n\nFeatures\n--------\n\n- Add support for Python 3.11 and 3.12.\n\n- Added HTTP 418 error code via `pyramid.httpexceptions.HTTPImATeapot`.\n  See https://github.com/Pylons/pyramid/pull/3667\n\n- Coverage reports in tests based on Python 3.12 instead of Python 3.8.\n\n- All scripts now pass a new option ``__script__`` when loading the WSGI app.\n  For example, ``pserve`` sets ``__script__ == 'pserve'``. This works for\n  ``pserve``, ``pshell``, ``prequest``, ``proutes``, ``ptweens``, ``pviews``,\n  as well as when using ``pyramid.paster.bootstrap`` directly.\n\n  When using ``plaster-pastedeploy`` to load an INI file, this option will\n  manifest as a new value passed into the ``global_conf`` arg of your\n  application factory, where you can use it as part of initializing your app.\n\n  See https://github.com/Pylons/pyramid/pull/3735\n\nBug Fixes\n---------\n\n- Removed support for null-bytes in the path when making a request for a file\n  against a static_view. Whille null-bytes are allowed by the HTTP\n  specification, due to the handling of null-bytes potentially leading to\n  security vulnerabilities it is no longer supported.\n\n  This fixes a security vulnerability that is present due to a bug in Python\n  3.11.0 through 3.11.4, thereby allowing the unintended disclosure of an\n  ``index.html`` one directory up from the static views path.\n\n  Thanks to Masashi Yamane of LAC Co., Ltd for reporting this issue.\n\n- Fix issues where permissions may be checked on exception views. This is not\n  supposed to happen in normal circumstances.\n\n  This also prevents issues where a ``request.url`` fails to be decoded when\n  logging info when ``pyramid.debug_authorization`` is enabled.\n\n  See https://github.com/Pylons/pyramid/pull/3741/files\n\n- Applications raising ``pyramid.exceptions.BadCSRFToken`` and\n  ``pyramid.exceptions.BadCSRFOrigin`` were returning invalid HTTP status\n  lines with values like ``400 Bad CSRF Origin`` instead of\n  ``400 Bad Request``.\n\n  See https://github.com/Pylons/pyramid/pull/3742\n\nBackward Incompatibilities\n--------------------------\n\n- Drop support for Python 3.6.\n\n- Requests to a static_view are no longer allowed to contain a null-byte in any\n  part of the path segment.\n\n- Drop support for l*gettext() methods in the i18n module.\n  These have been deprecated in Python's gettext module since 3.8, and\n  removed in Python 3.11.\n\nDocumentation Changes\n---------------------\n",
            "header": {
                "file": {
                    "path": "CHANGES.rst"
                },
                "misc_line": null
            },
            "index_line": {
                "old_commit_hash": "cb82607cb",
                "new_commit_hash": "f27be0253",
                "mode": "100644"
            },
            "is_binary_file": false,
            "binary_line": null,
            "minus_file": {
                "path": "a/CHANGES.rst"
            },
            "plus_file": {
                "path": "b/CHANGES.rst"
            },
            "hunks": [
                {
                    "descriptor": {
                        "old_range": {
                            "start": 44,
                            "length": 6
                        },
                        "new_range": {
                            "start": 44,
                            "length": 13
                        },
                        "section": "Bug Fixes"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "  See https://github.com/Pylons/pyramid/pull/3741/files",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "- Applications raising ``pyramid.exceptions.BadCSRFToken`` and",
                                "type": "added"
                            },
                            {
                                "content": "  ``pyramid.exceptions.BadCSRFOrigin`` were returning invalid HTTP status",
                                "type": "added"
                            },
                            {
                                "content": "  lines with values like ``400 Bad CSRF Origin`` instead of",
                                "type": "added"
                            },
                            {
                                "content": "  ``400 Bad Request``.",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "  See https://github.com/Pylons/pyramid/pull/3742",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "Backward Incompatibilities",
                                "type": "context"
                            },
                            {
                                "content": "--------------------------",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [],
                    "added_entities": [],
                    "deleted_entities": []
                }
            ]
        },
        {
            "old_file_content": "from pyramid.httpexceptions import HTTPBadRequest, HTTPForbidden, HTTPNotFound\n\nNotFound = HTTPNotFound  # bw compat\nForbidden = HTTPForbidden  # bw compat\n\n\nclass BadCSRFOrigin(HTTPBadRequest):\n    \"\"\"\n    This exception indicates the request has failed cross-site request forgery\n    origin validation.\n    \"\"\"\n\n    title = \"Bad CSRF Origin\"\n    explanation = (\n        \"Access is denied. This server can not verify that the origin or \"\n        \"referrer of your request matches the current site. Either your \"\n        \"browser supplied the wrong Origin or Referrer or it did not supply \"\n        \"one at all.\"\n    )\n\n\nclass BadCSRFToken(HTTPBadRequest):\n    \"\"\"\n    This exception indicates the request has failed cross-site request\n    forgery token validation.\n    \"\"\"\n\n    title = 'Bad CSRF Token'\n    explanation = (\n        'Access is denied.  This server can not verify that your cross-site '\n        'request forgery token belongs to your login session.  Either you '\n        'supplied the wrong cross-site request forgery token or your session '\n        'no longer exists.  This may be due to session timeout or because '\n        'browser is not supplying the credentials required, as can happen '\n        'when the browser has cookies turned off.'\n    )\n\n\nclass PredicateMismatch(HTTPNotFound):\n    \"\"\"\n    This exception is raised by multiviews when no view matches\n    all given predicates.\n\n    This exception subclasses the :class:`HTTPNotFound` exception for a\n    specific reason: if it reaches the main exception handler, it should\n    be treated as :class:`HTTPNotFound`` by any exception view\n    registrations. Thus, typically, this exception will not be seen\n    publicly.\n\n    However, this exception will be raised if the predicates of all\n    views configured to handle another exception context cannot be\n    successfully matched.  For instance, if a view is configured to\n    handle a context of ``HTTPForbidden`` and the configured with\n    additional predicates, then :class:`PredicateMismatch` will be\n    raised if:\n\n    * An original view callable has raised :class:`HTTPForbidden` (thus\n      invoking an exception view); and\n    * The given request fails to match all predicates for said\n      exception view associated with :class:`HTTPForbidden`.\n\n    The same applies to any type of exception being handled by an\n    exception view.\n    \"\"\"\n\n\nclass URLDecodeError(UnicodeDecodeError):\n    \"\"\"\n    This exception is raised when :app:`Pyramid` cannot\n    successfully decode a URL or a URL path segment.  This exception\n    behaves just like the Python builtin\n    :exc:`UnicodeDecodeError`. It is a subclass of the builtin\n    :exc:`UnicodeDecodeError` exception only for identity purposes,\n    mostly so an exception view can be registered when a URL cannot be\n    decoded.\n    \"\"\"\n\n\nclass ConfigurationError(Exception):\n    \"\"\"Raised when inappropriate input values are supplied to an API\n    method of a :term:`Configurator`\"\"\"\n\n\nclass ConfigurationConflictError(ConfigurationError):\n    \"\"\"Raised when a configuration conflict is detected during action\n    processing\"\"\"\n\n    def __init__(self, conflicts):\n        self._conflicts = conflicts\n\n    def __str__(self):\n        r = [\"Conflicting configuration actions\"]\n        for discriminator, infos in self._conflicts.items():\n            r.append(f\"  For: {discriminator}\")\n            for info in infos:\n                for line in str(info).rstrip().split('\\n'):\n                    r.append(\"    \" + line)\n\n        return '\\n'.join(r)\n\n\nclass ConfigurationExecutionError(ConfigurationError):\n    \"\"\"An error occurred during execution of a configuration action\"\"\"\n\n    def __init__(self, etype, evalue, info):\n        self.etype, self.evalue, self.info = etype, evalue, info\n\n    def __str__(self):\n        return f\"{self.etype}: {self.evalue}\\n  in:\\n  {self.info}\"\n\n\nclass CyclicDependencyError(Exception):\n    \"\"\"The exception raised when the Pyramid topological sorter detects a\n    cyclic dependency.\"\"\"\n\n    def __init__(self, cycles):\n        self.cycles = cycles\n\n    def __str__(self):\n        L = []\n        cycles = self.cycles\n        for cycle in cycles:\n            dependent = cycle\n            dependees = cycles[cycle]\n            L.append(f'{dependent!r} sorts before {dependees!r}')\n        msg = 'Implicit ordering cycle:' + '; '.join(L)\n        return msg\n",
            "new_file_content": "from pyramid.httpexceptions import HTTPBadRequest, HTTPForbidden, HTTPNotFound\n\nNotFound = HTTPNotFound  # bw compat\nForbidden = HTTPForbidden  # bw compat\n\n\nclass BadCSRFOrigin(HTTPBadRequest):\n    \"\"\"\n    This exception indicates the request has failed cross-site request forgery\n    origin validation.\n    \"\"\"\n\n    explanation = (\n        \"Bad CSRF Origin. Access is denied. This server can not verify that \"\n        \"the origin or referrer of your request matches the current site. \"\n        \"Either your browser supplied the wrong Origin or Referrer or it did \"\n        \"not supply one at all.\"\n    )\n\n\nclass BadCSRFToken(HTTPBadRequest):\n    \"\"\"\n    This exception indicates the request has failed cross-site request\n    forgery token validation.\n    \"\"\"\n\n    explanation = (\n        'Bad CSRF token received. Access is denied. This server can not '\n        'verify that your cross-site request forgery token belongs to your '\n        'login session. Either you supplied the wrong cross-site request '\n        'forgery token or your session no longer exists. This may be due to '\n        'session timeout or because browser is not supplying the credentials '\n        'required, as can happen when the browser has cookies turned off.'\n    )\n\n\nclass PredicateMismatch(HTTPNotFound):\n    \"\"\"\n    This exception is raised by multiviews when no view matches\n    all given predicates.\n\n    This exception subclasses the :class:`HTTPNotFound` exception for a\n    specific reason: if it reaches the main exception handler, it should\n    be treated as :class:`HTTPNotFound`` by any exception view\n    registrations. Thus, typically, this exception will not be seen\n    publicly.\n\n    However, this exception will be raised if the predicates of all\n    views configured to handle another exception context cannot be\n    successfully matched.  For instance, if a view is configured to\n    handle a context of ``HTTPForbidden`` and the configured with\n    additional predicates, then :class:`PredicateMismatch` will be\n    raised if:\n\n    * An original view callable has raised :class:`HTTPForbidden` (thus\n      invoking an exception view); and\n    * The given request fails to match all predicates for said\n      exception view associated with :class:`HTTPForbidden`.\n\n    The same applies to any type of exception being handled by an\n    exception view.\n    \"\"\"\n\n\nclass URLDecodeError(UnicodeDecodeError):\n    \"\"\"\n    This exception is raised when :app:`Pyramid` cannot\n    successfully decode a URL or a URL path segment.  This exception\n    behaves just like the Python builtin\n    :exc:`UnicodeDecodeError`. It is a subclass of the builtin\n    :exc:`UnicodeDecodeError` exception only for identity purposes,\n    mostly so an exception view can be registered when a URL cannot be\n    decoded.\n    \"\"\"\n\n\nclass ConfigurationError(Exception):\n    \"\"\"Raised when inappropriate input values are supplied to an API\n    method of a :term:`Configurator`\"\"\"\n\n\nclass ConfigurationConflictError(ConfigurationError):\n    \"\"\"Raised when a configuration conflict is detected during action\n    processing\"\"\"\n\n    def __init__(self, conflicts):\n        self._conflicts = conflicts\n\n    def __str__(self):\n        r = [\"Conflicting configuration actions\"]\n        for discriminator, infos in self._conflicts.items():\n            r.append(f\"  For: {discriminator}\")\n            for info in infos:\n                for line in str(info).rstrip().split('\\n'):\n                    r.append(\"    \" + line)\n\n        return '\\n'.join(r)\n\n\nclass ConfigurationExecutionError(ConfigurationError):\n    \"\"\"An error occurred during execution of a configuration action\"\"\"\n\n    def __init__(self, etype, evalue, info):\n        self.etype, self.evalue, self.info = etype, evalue, info\n\n    def __str__(self):\n        return f\"{self.etype}: {self.evalue}\\n  in:\\n  {self.info}\"\n\n\nclass CyclicDependencyError(Exception):\n    \"\"\"The exception raised when the Pyramid topological sorter detects a\n    cyclic dependency.\"\"\"\n\n    def __init__(self, cycles):\n        self.cycles = cycles\n\n    def __str__(self):\n        L = []\n        cycles = self.cycles\n        for cycle in cycles:\n            dependent = cycle\n            dependees = cycles[cycle]\n            L.append(f'{dependent!r} sorts before {dependees!r}')\n        msg = 'Implicit ordering cycle:' + '; '.join(L)\n        return msg\n",
            "header": {
                "file": {
                    "path": "src/pyramid/exceptions.py"
                },
                "misc_line": null
            },
            "index_line": {
                "old_commit_hash": "16aeb7e4f",
                "new_commit_hash": "9f19a4bb4",
                "mode": "100644"
            },
            "is_binary_file": false,
            "binary_line": null,
            "minus_file": {
                "path": "a/src/pyramid/exceptions.py"
            },
            "plus_file": {
                "path": "b/src/pyramid/exceptions.py"
            },
            "hunks": [
                {
                    "descriptor": {
                        "old_range": {
                            "start": 10,
                            "length": 12
                        },
                        "new_range": {
                            "start": 10,
                            "length": 11
                        },
                        "section": "class BadCSRFOrigin(HTTPBadRequest):"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "    origin validation.",
                                "type": "context"
                            },
                            {
                                "content": "    \"\"\"",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "    title = \"Bad CSRF Origin\"",
                                "type": "deleted"
                            },
                            {
                                "content": "    explanation = (",
                                "type": "context"
                            },
                            {
                                "content": "        \"Access is denied. This server can not verify that the origin or \"",
                                "type": "deleted"
                            },
                            {
                                "content": "        \"referrer of your request matches the current site. Either your \"",
                                "type": "deleted"
                            },
                            {
                                "content": "        \"browser supplied the wrong Origin or Referrer or it did not supply \"",
                                "type": "deleted"
                            },
                            {
                                "content": "        \"one at all.\"",
                                "type": "deleted"
                            },
                            {
                                "content": "        \"Bad CSRF Origin. Access is denied. This server can not verify that \"",
                                "type": "added"
                            },
                            {
                                "content": "        \"the origin or referrer of your request matches the current site. \"",
                                "type": "added"
                            },
                            {
                                "content": "        \"Either your browser supplied the wrong Origin or Referrer or it did \"",
                                "type": "added"
                            },
                            {
                                "content": "        \"not supply one at all.\"",
                                "type": "added"
                            },
                            {
                                "content": "    )",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [
                        {
                            "file_name": "src/pyramid/exceptions.py",
                            "type": "class",
                            "name": "BadCSRFOrigin",
                            "content": "class BadCSRFOrigin(HTTPBadRequest):\n    \"\"\"\n    This exception indicates the request has failed cross-site request forgery\n    origin validation.\n    \"\"\"\n\n    title = \"Bad CSRF Origin\"\n    explanation = (\n        \"Access is denied. This server can not verify that the origin or \"\n        \"referrer of your request matches the current site. Either your \"\n        \"browser supplied the wrong Origin or Referrer or it did not supply \"\n        \"one at all.\"\n    )",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 7,
                            "end_lineno": 19,
                            "parent": null
                        }
                    ],
                    "added_entities": [],
                    "deleted_entities": []
                },
                {
                    "descriptor": {
                        "old_range": {
                            "start": 25,
                            "length": 14
                        },
                        "new_range": {
                            "start": 24,
                            "length": 13
                        },
                        "section": "class BadCSRFToken(HTTPBadRequest):"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "    forgery token validation.",
                                "type": "context"
                            },
                            {
                                "content": "    \"\"\"",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "    title = 'Bad CSRF Token'",
                                "type": "deleted"
                            },
                            {
                                "content": "    explanation = (",
                                "type": "context"
                            },
                            {
                                "content": "        'Access is denied.  This server can not verify that your cross-site '",
                                "type": "deleted"
                            },
                            {
                                "content": "        'request forgery token belongs to your login session.  Either you '",
                                "type": "deleted"
                            },
                            {
                                "content": "        'supplied the wrong cross-site request forgery token or your session '",
                                "type": "deleted"
                            },
                            {
                                "content": "        'no longer exists.  This may be due to session timeout or because '",
                                "type": "deleted"
                            },
                            {
                                "content": "        'browser is not supplying the credentials required, as can happen '",
                                "type": "deleted"
                            },
                            {
                                "content": "        'when the browser has cookies turned off.'",
                                "type": "deleted"
                            },
                            {
                                "content": "        'Bad CSRF token received. Access is denied. This server can not '",
                                "type": "added"
                            },
                            {
                                "content": "        'verify that your cross-site request forgery token belongs to your '",
                                "type": "added"
                            },
                            {
                                "content": "        'login session. Either you supplied the wrong cross-site request '",
                                "type": "added"
                            },
                            {
                                "content": "        'forgery token or your session no longer exists. This may be due to '",
                                "type": "added"
                            },
                            {
                                "content": "        'session timeout or because browser is not supplying the credentials '",
                                "type": "added"
                            },
                            {
                                "content": "        'required, as can happen when the browser has cookies turned off.'",
                                "type": "added"
                            },
                            {
                                "content": "    )",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [
                        {
                            "file_name": "src/pyramid/exceptions.py",
                            "type": "class",
                            "name": "BadCSRFToken",
                            "content": "class BadCSRFToken(HTTPBadRequest):\n    \"\"\"\n    This exception indicates the request has failed cross-site request\n    forgery token validation.\n    \"\"\"\n\n    title = 'Bad CSRF Token'\n    explanation = (\n        'Access is denied.  This server can not verify that your cross-site '\n        'request forgery token belongs to your login session.  Either you '\n        'supplied the wrong cross-site request forgery token or your session '\n        'no longer exists.  This may be due to session timeout or because '\n        'browser is not supplying the credentials required, as can happen '\n        'when the browser has cookies turned off.'\n    )",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 22,
                            "end_lineno": 36,
                            "parent": null
                        }
                    ],
                    "added_entities": [],
                    "deleted_entities": []
                }
            ]
        },
        {
            "old_file_content": "from collections import OrderedDict\nimport unittest\n\n\nclass TestBWCompat(unittest.TestCase):\n    def test_bwcompat_notfound(self):\n        from pyramid.exceptions import NotFound as one\n        from pyramid.httpexceptions import HTTPNotFound as two\n\n        self.assertTrue(one is two)\n\n    def test_bwcompat_forbidden(self):\n        from pyramid.exceptions import Forbidden as one\n        from pyramid.httpexceptions import HTTPForbidden as two\n\n        self.assertTrue(one is two)\n\n\nclass TestBadCSRFToken(unittest.TestCase):\n    def test_response_equivalence(self):\n        from pyramid.exceptions import BadCSRFToken\n        from pyramid.httpexceptions import HTTPBadRequest\n\n        self.assertTrue(isinstance(BadCSRFToken(), HTTPBadRequest))\n\n\nclass TestNotFound(unittest.TestCase):\n    def _makeOne(self, message):\n        from pyramid.exceptions import NotFound\n\n        return NotFound(message)\n\n    def test_it(self):\n        from pyramid.interfaces import IExceptionResponse\n\n        e = self._makeOne('notfound')\n        self.assertTrue(IExceptionResponse.providedBy(e))\n        self.assertEqual(e.status, '404 Not Found')\n        self.assertEqual(e.message, 'notfound')\n\n    def test_response_equivalence(self):\n        from pyramid.exceptions import NotFound\n        from pyramid.httpexceptions import HTTPNotFound\n\n        self.assertTrue(NotFound is HTTPNotFound)\n\n\nclass TestForbidden(unittest.TestCase):\n    def _makeOne(self, message):\n        from pyramid.exceptions import Forbidden\n\n        return Forbidden(message)\n\n    def test_it(self):\n        from pyramid.interfaces import IExceptionResponse\n\n        e = self._makeOne('forbidden')\n        self.assertTrue(IExceptionResponse.providedBy(e))\n        self.assertEqual(e.status, '403 Forbidden')\n        self.assertEqual(e.message, 'forbidden')\n\n    def test_response_equivalence(self):\n        from pyramid.exceptions import Forbidden\n        from pyramid.httpexceptions import HTTPForbidden\n\n        self.assertTrue(Forbidden is HTTPForbidden)\n\n\nclass TestConfigurationConflictError(unittest.TestCase):\n    def _makeOne(self, conflicts):\n        from pyramid.exceptions import ConfigurationConflictError\n\n        return ConfigurationConflictError(conflicts)\n\n    def test_str(self):\n        conflicts = OrderedDict()\n        conflicts['a'] = ('1', '2', '3')\n        conflicts['b'] = ('4', '5', '6')\n        exc = self._makeOne(conflicts)\n        self.assertEqual(\n            str(exc),\n            \"\"\"\\\nConflicting configuration actions\n  For: a\n    1\n    2\n    3\n  For: b\n    4\n    5\n    6\"\"\",\n        )\n\n    def test_non_sortable_discriminators_in_str(self):\n        conflicts = OrderedDict()\n        conflicts['a'] = ('1', '2', '3')\n        conflicts[None] = ('4', '5', '6')\n        exc = self._makeOne(conflicts)\n        self.assertEqual(\n            str(exc),\n            \"\"\"\\\nConflicting configuration actions\n  For: a\n    1\n    2\n    3\n  For: None\n    4\n    5\n    6\"\"\",\n        )\n\n\nclass TestConfigurationExecutionError(unittest.TestCase):\n    def _makeOne(self, etype, evalue, info):\n        from pyramid.exceptions import ConfigurationExecutionError\n\n        return ConfigurationExecutionError(etype, evalue, info)\n\n    def test_str(self):\n        exc = self._makeOne('etype', 'evalue', 'info')\n        self.assertEqual(str(exc), 'etype: evalue\\n  in:\\n  info')\n\n\nclass TestCyclicDependencyError(unittest.TestCase):\n    def _makeOne(self, cycles):\n        from pyramid.exceptions import CyclicDependencyError\n\n        return CyclicDependencyError(cycles)\n\n    def test___str__(self):\n        exc = self._makeOne({'a': ['c', 'd'], 'c': ['a']})\n        result = str(exc)\n        self.assertTrue(\"'a' sorts before ['c', 'd']\" in result)\n        self.assertTrue(\"'c' sorts before ['a']\" in result)\n",
            "new_file_content": "from collections import OrderedDict\nimport unittest\n\n\nclass TestBWCompat(unittest.TestCase):\n    def test_bwcompat_notfound(self):\n        from pyramid.exceptions import NotFound as one\n        from pyramid.httpexceptions import HTTPNotFound as two\n\n        self.assertTrue(one is two)\n\n    def test_bwcompat_forbidden(self):\n        from pyramid.exceptions import Forbidden as one\n        from pyramid.httpexceptions import HTTPForbidden as two\n\n        self.assertTrue(one is two)\n\n\nclass TestBadCSRFOrigin(unittest.TestCase):\n    def test_response_equivalence(self):\n        from pyramid.exceptions import BadCSRFOrigin\n        from pyramid.httpexceptions import HTTPBadRequest\n\n        self.assertTrue(isinstance(BadCSRFOrigin(), HTTPBadRequest))\n        self.assertEqual(BadCSRFOrigin().status, HTTPBadRequest().status)\n\n\nclass TestBadCSRFToken(unittest.TestCase):\n    def test_response_equivalence(self):\n        from pyramid.exceptions import BadCSRFToken\n        from pyramid.httpexceptions import HTTPBadRequest\n\n        self.assertTrue(isinstance(BadCSRFToken(), HTTPBadRequest))\n        self.assertEqual(BadCSRFToken().status, HTTPBadRequest().status)\n\n\nclass TestNotFound(unittest.TestCase):\n    def _makeOne(self, message):\n        from pyramid.exceptions import NotFound\n\n        return NotFound(message)\n\n    def test_it(self):\n        from pyramid.interfaces import IExceptionResponse\n\n        e = self._makeOne('notfound')\n        self.assertTrue(IExceptionResponse.providedBy(e))\n        self.assertEqual(e.status, '404 Not Found')\n        self.assertEqual(e.message, 'notfound')\n\n    def test_response_equivalence(self):\n        from pyramid.exceptions import NotFound\n        from pyramid.httpexceptions import HTTPNotFound\n\n        self.assertTrue(NotFound is HTTPNotFound)\n\n\nclass TestForbidden(unittest.TestCase):\n    def _makeOne(self, message):\n        from pyramid.exceptions import Forbidden\n\n        return Forbidden(message)\n\n    def test_it(self):\n        from pyramid.interfaces import IExceptionResponse\n\n        e = self._makeOne('forbidden')\n        self.assertTrue(IExceptionResponse.providedBy(e))\n        self.assertEqual(e.status, '403 Forbidden')\n        self.assertEqual(e.message, 'forbidden')\n\n    def test_response_equivalence(self):\n        from pyramid.exceptions import Forbidden\n        from pyramid.httpexceptions import HTTPForbidden\n\n        self.assertTrue(Forbidden is HTTPForbidden)\n\n\nclass TestConfigurationConflictError(unittest.TestCase):\n    def _makeOne(self, conflicts):\n        from pyramid.exceptions import ConfigurationConflictError\n\n        return ConfigurationConflictError(conflicts)\n\n    def test_str(self):\n        conflicts = OrderedDict()\n        conflicts['a'] = ('1', '2', '3')\n        conflicts['b'] = ('4', '5', '6')\n        exc = self._makeOne(conflicts)\n        self.assertEqual(\n            str(exc),\n            \"\"\"\\\nConflicting configuration actions\n  For: a\n    1\n    2\n    3\n  For: b\n    4\n    5\n    6\"\"\",\n        )\n\n    def test_non_sortable_discriminators_in_str(self):\n        conflicts = OrderedDict()\n        conflicts['a'] = ('1', '2', '3')\n        conflicts[None] = ('4', '5', '6')\n        exc = self._makeOne(conflicts)\n        self.assertEqual(\n            str(exc),\n            \"\"\"\\\nConflicting configuration actions\n  For: a\n    1\n    2\n    3\n  For: None\n    4\n    5\n    6\"\"\",\n        )\n\n\nclass TestConfigurationExecutionError(unittest.TestCase):\n    def _makeOne(self, etype, evalue, info):\n        from pyramid.exceptions import ConfigurationExecutionError\n\n        return ConfigurationExecutionError(etype, evalue, info)\n\n    def test_str(self):\n        exc = self._makeOne('etype', 'evalue', 'info')\n        self.assertEqual(str(exc), 'etype: evalue\\n  in:\\n  info')\n\n\nclass TestCyclicDependencyError(unittest.TestCase):\n    def _makeOne(self, cycles):\n        from pyramid.exceptions import CyclicDependencyError\n\n        return CyclicDependencyError(cycles)\n\n    def test___str__(self):\n        exc = self._makeOne({'a': ['c', 'd'], 'c': ['a']})\n        result = str(exc)\n        self.assertTrue(\"'a' sorts before ['c', 'd']\" in result)\n        self.assertTrue(\"'c' sorts before ['a']\" in result)\n",
            "header": {
                "file": {
                    "path": "tests/test_exceptions.py"
                },
                "misc_line": null
            },
            "index_line": {
                "old_commit_hash": "e7a2871a5",
                "new_commit_hash": "d5f247c2a",
                "mode": "100644"
            },
            "is_binary_file": false,
            "binary_line": null,
            "minus_file": {
                "path": "a/tests/test_exceptions.py"
            },
            "plus_file": {
                "path": "b/tests/test_exceptions.py"
            },
            "hunks": [
                {
                    "descriptor": {
                        "old_range": {
                            "start": 16,
                            "length": 12
                        },
                        "new_range": {
                            "start": 16,
                            "length": 22
                        },
                        "section": "class TestBWCompat(unittest.TestCase):"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "        self.assertTrue(one is two)",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "class TestBadCSRFOrigin(unittest.TestCase):",
                                "type": "added"
                            },
                            {
                                "content": "    def test_response_equivalence(self):",
                                "type": "added"
                            },
                            {
                                "content": "        from pyramid.exceptions import BadCSRFOrigin",
                                "type": "added"
                            },
                            {
                                "content": "        from pyramid.httpexceptions import HTTPBadRequest",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertTrue(isinstance(BadCSRFOrigin(), HTTPBadRequest))",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(BadCSRFOrigin().status, HTTPBadRequest().status)",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "class TestBadCSRFToken(unittest.TestCase):",
                                "type": "context"
                            },
                            {
                                "content": "    def test_response_equivalence(self):",
                                "type": "context"
                            },
                            {
                                "content": "        from pyramid.exceptions import BadCSRFToken",
                                "type": "context"
                            },
                            {
                                "content": "        from pyramid.httpexceptions import HTTPBadRequest",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "        self.assertTrue(isinstance(BadCSRFToken(), HTTPBadRequest))",
                                "type": "context"
                            },
                            {
                                "content": "        self.assertEqual(BadCSRFToken().status, HTTPBadRequest().status)",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "class TestNotFound(unittest.TestCase):",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [
                        {
                            "file_name": "tests/test_exceptions.py",
                            "type": "class",
                            "name": "TestBadCSRFToken",
                            "content": "class TestBadCSRFToken(unittest.TestCase):\n    def test_response_equivalence(self):\n        from pyramid.exceptions import BadCSRFToken\n        from pyramid.httpexceptions import HTTPBadRequest\n\n        self.assertTrue(isinstance(BadCSRFToken(), HTTPBadRequest))\n        self.assertEqual(BadCSRFToken().status, HTTPBadRequest().status)",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 28,
                            "end_lineno": 34,
                            "parent": null
                        },
                        {
                            "file_name": "tests/test_exceptions.py",
                            "type": "method",
                            "name": "TestBadCSRFToken.test_response_equivalence",
                            "content": "class TestBadCSRFToken(unittest.TestCase):\n    def test_response_equivalence(self):\n        from pyramid.exceptions import BadCSRFToken\n        from pyramid.httpexceptions import HTTPBadRequest\n\n        self.assertTrue(isinstance(BadCSRFToken(), HTTPBadRequest))\n        self.assertEqual(BadCSRFToken().status, HTTPBadRequest().status)",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 29,
                            "end_lineno": 34,
                            "parent": {
                                "file_name": "tests/test_exceptions.py",
                                "type": "class",
                                "name": "TestBadCSRFToken",
                                "content": "class TestBadCSRFToken(unittest.TestCase):\n    def test_response_equivalence(self):\n        from pyramid.exceptions import BadCSRFToken\n        from pyramid.httpexceptions import HTTPBadRequest\n\n        self.assertTrue(isinstance(BadCSRFToken(), HTTPBadRequest))\n        self.assertEqual(BadCSRFToken().status, HTTPBadRequest().status)",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 28,
                                "end_lineno": 34,
                                "parent": null
                            }
                        }
                    ],
                    "added_entities": [
                        {
                            "file_name": "tests/test_exceptions.py",
                            "type": "class",
                            "name": "TestBadCSRFOrigin",
                            "content": "class TestBadCSRFOrigin(unittest.TestCase):\n    def test_response_equivalence(self):\n        from pyramid.exceptions import BadCSRFOrigin\n        from pyramid.httpexceptions import HTTPBadRequest\n\n        self.assertTrue(isinstance(BadCSRFOrigin(), HTTPBadRequest))\n        self.assertEqual(BadCSRFOrigin().status, HTTPBadRequest().status)",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 19,
                            "end_lineno": 25,
                            "parent": null
                        },
                        {
                            "file_name": "tests/test_exceptions.py",
                            "type": "method",
                            "name": "TestBadCSRFOrigin.test_response_equivalence",
                            "content": "class TestBadCSRFOrigin(unittest.TestCase):\n    def test_response_equivalence(self):\n        from pyramid.exceptions import BadCSRFOrigin\n        from pyramid.httpexceptions import HTTPBadRequest\n\n        self.assertTrue(isinstance(BadCSRFOrigin(), HTTPBadRequest))\n        self.assertEqual(BadCSRFOrigin().status, HTTPBadRequest().status)",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 20,
                            "end_lineno": 25,
                            "parent": {
                                "file_name": "tests/test_exceptions.py",
                                "type": "class",
                                "name": "TestBadCSRFOrigin",
                                "content": "class TestBadCSRFOrigin(unittest.TestCase):\n    def test_response_equivalence(self):\n        from pyramid.exceptions import BadCSRFOrigin\n        from pyramid.httpexceptions import HTTPBadRequest\n\n        self.assertTrue(isinstance(BadCSRFOrigin(), HTTPBadRequest))\n        self.assertEqual(BadCSRFOrigin().status, HTTPBadRequest().status)",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 19,
                                "end_lineno": 25,
                                "parent": null
                            }
                        }
                    ],
                    "deleted_entities": []
                }
            ]
        }
    ],
    "old_commit_hash": "e77b72dc3a0890911514ad8aab8c8bf26c4591d0^",
    "new_commit_hash": "e77b72dc3a0890911514ad8aab8c8bf26c4591d0",
    "commit_message": "Merge pull request #3742 from Pylons/fix-csrf-400-status\n\nFix csrf 400 status lines",
    "commit_date": "2024-01-28T22:57:17-07:00",
    "metadata": {}
}
{
    "repo_name": "pyramid",
    "new_commit_hash": "e77b72dc3a0890911514ad8aab8c8bf26c4591d0",
    "test_file_codes": [
        "from collections import OrderedDict\nimport unittest\n\n\nclass TestBWCompat(unittest.TestCase):\n    def test_bwcompat_notfound(self):\n        from pyramid.exceptions import NotFound as one\n        from pyramid.httpexceptions import HTTPNotFound as two\n\n        self.assertTrue(one is two)\n\n    def test_bwcompat_forbidden(self):\n        from pyramid.exceptions import Forbidden as one\n        from pyramid.httpexceptions import HTTPForbidden as two\n\n        self.assertTrue(one is two)\n\n\nclass TestBadCSRFOrigin(unittest.TestCase):\n    def test_response_equivalence(self):\n        from pyramid.exceptions import BadCSRFOrigin\n        from pyramid.httpexceptions import HTTPBadRequest\n\n        self.assertTrue(isinstance(BadCSRFOrigin(), HTTPBadRequest))\n        self.assertEqual(BadCSRFOrigin().status, HTTPBadRequest().status)\n\n\nclass TestBadCSRFToken(unittest.TestCase):\n    def test_response_equivalence(self):\n        from pyramid.exceptions import BadCSRFToken\n        from pyramid.httpexceptions import HTTPBadRequest\n\n        self.assertTrue(isinstance(BadCSRFToken(), HTTPBadRequest))\n        self.assertEqual(BadCSRFToken().status, HTTPBadRequest().status)\n\n\nclass TestNotFound(unittest.TestCase):\n    def _makeOne(self, message):\n        from pyramid.exceptions import NotFound\n\n        return NotFound(message)\n\n    def test_it(self):\n        from pyramid.interfaces import IExceptionResponse\n\n        e = self._makeOne('notfound')\n        self.assertTrue(IExceptionResponse.providedBy(e))\n        self.assertEqual(e.status, '404 Not Found')\n        self.assertEqual(e.message, 'notfound')\n\n    def test_response_equivalence(self):\n        from pyramid.exceptions import NotFound\n        from pyramid.httpexceptions import HTTPNotFound\n\n        self.assertTrue(NotFound is HTTPNotFound)\n\n\nclass TestForbidden(unittest.TestCase):\n    def _makeOne(self, message):\n        from pyramid.exceptions import Forbidden\n\n        return Forbidden(message)\n\n    def test_it(self):\n        from pyramid.interfaces import IExceptionResponse\n\n        e = self._makeOne('forbidden')\n        self.assertTrue(IExceptionResponse.providedBy(e))\n        self.assertEqual(e.status, '403 Forbidden')\n        self.assertEqual(e.message, 'forbidden')\n\n    def test_response_equivalence(self):\n        from pyramid.exceptions import Forbidden\n        from pyramid.httpexceptions import HTTPForbidden\n\n        self.assertTrue(Forbidden is HTTPForbidden)\n\n\nclass TestConfigurationConflictError(unittest.TestCase):\n    def _makeOne(self, conflicts):\n        from pyramid.exceptions import ConfigurationConflictError\n\n        return ConfigurationConflictError(conflicts)\n\n    def test_str(self):\n        conflicts = OrderedDict()\n        conflicts['a'] = ('1', '2', '3')\n        conflicts['b'] = ('4', '5', '6')\n        exc = self._makeOne(conflicts)\n        self.assertEqual(\n            str(exc),\n            \"\"\"\\\nConflicting configuration actions\n  For: a\n    1\n    2\n    3\n  For: b\n    4\n    5\n    6\"\"\",\n        )\n\n    def test_non_sortable_discriminators_in_str(self):\n        conflicts = OrderedDict()\n        conflicts['a'] = ('1', '2', '3')\n        conflicts[None] = ('4', '5', '6')\n        exc = self._makeOne(conflicts)\n        self.assertEqual(\n            str(exc),\n            \"\"\"\\\nConflicting configuration actions\n  For: a\n    1\n    2\n    3\n  For: None\n    4\n    5\n    6\"\"\",\n        )\n\n\nclass TestConfigurationExecutionError(unittest.TestCase):\n    def _makeOne(self, etype, evalue, info):\n        from pyramid.exceptions import ConfigurationExecutionError\n\n        return ConfigurationExecutionError(etype, evalue, info)\n\n    def test_str(self):\n        exc = self._makeOne('etype', 'evalue', 'info')\n        self.assertEqual(str(exc), 'etype: evalue\\n  in:\\n  info')\n\n\nclass TestCyclicDependencyError(unittest.TestCase):\n    def _makeOne(self, cycles):\n        from pyramid.exceptions import CyclicDependencyError\n\n        return CyclicDependencyError(cycles)\n\n    def test___str__(self):\n        exc = self._makeOne({'a': ['c', 'd'], 'c': ['a']})\n        result = str(exc)\n        self.assertTrue(\"'a' sorts before ['c', 'd']\" in result)\n        self.assertTrue(\"'c' sorts before ['a']\" in result)\n"
    ],
    "test_file_names": [
        "test_1.py"
    ],
    "setup_res_code": 0,
    "setup_res_stdout": "",
    "setup_res_stderr": "Using CPython 3.8.20\nCreating virtual environment at: .venv\nActivate with: source .venv/bin/activate\nResolved 11 packages in 821ms\nPrepared 1 package in 826ms\nInstalled 11 packages in 15ms\n + hupper==1.12.1\n + pastedeploy==3.1.0\n + plaster==1.1.2\n + plaster-pastedeploy==1.0.1\n + pyramid==2.1.dev0 (from file:///home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0)\n + setuptools==75.3.0\n + translationstring==1.4\n + venusian==3.1.1\n + webob==1.8.9\n + zope-deprecation==5.0\n + zope-interface==7.2\nResolved 26 packages in 87ms\nInstalled 15 packages in 10ms\n + beautifulsoup4==4.12.3\n + coverage==7.6.1\n + exceptiongroup==1.2.2\n + iniconfig==2.0.0\n + packaging==24.2\n + pluggy==1.5.0\n + pytest==8.3.4\n + pytest-cov==5.0.0\n + soupsieve==2.6\n + tomli==2.2.1\n + waitress==3.0.0\n + webtest==3.0.1\n + zope-component==6.0\n + zope-event==5.0\n + zope-hookable==7.0\nResolved 16 packages in 7ms\nInstalled 10 packages in 35ms\n + cachetools==5.5.0\n + chardet==5.2.0\n + colorama==0.4.6\n + distlib==0.3.9\n + filelock==3.16.1\n + platformdirs==4.3.6\n + pyproject-api==1.8.0\n + tox==4.23.2\n + typing-extensions==4.12.2\n + virtualenv==20.29.0\n",
    "new_commit_res_code": 1,
    "new_commit_res_stdout": "============================= test session starts ==============================\nplatform linux -- Python 3.8.20, pytest-8.3.4, pluggy-1.5.0\nrootdir: /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0\nconfigfile: setup.cfg\nplugins: cov-5.0.0\ncollected 837 items\n\nr2e_tests/test_1.py ............                                         [  1%]\nr2e_tests/test_config/test_actions.py .................................. [  5%]\n............                                                             [  6%]\nr2e_tests/test_config/test_adapters.py .FF..............F...             [  9%]\nr2e_tests/test_config/test_assets.py ....F.F...F...FF.FF................ [ 13%]\n.....................................F.F................................ [ 22%]\n                                                                         [ 22%]\nr2e_tests/test_config/test_factories.py ..........F.F..F.F               [ 24%]\nr2e_tests/test_config/test_i18n.py FFFF..FF.FFF.F                        [ 26%]\nr2e_tests/test_config/test_init.py .............................F..F.... [ 30%]\n....F......F...................F................F..F.FF...FFF...         [ 38%]\nr2e_tests/test_config/test_predicates.py ............................... [ 41%]\n........                                                                 [ 42%]\nr2e_tests/test_config/test_rendering.py ...                              [ 43%]\nr2e_tests/test_config/test_routes.py .............F.................     [ 46%]\nr2e_tests/test_config/test_security.py ..............                    [ 48%]\nr2e_tests/test_config/test_settings.py ........................          [ 51%]\nr2e_tests/test_config/test_testing.py ....F.......                       [ 52%]\nr2e_tests/test_config/test_tweens.py F.........F..F...................   [ 56%]\nr2e_tests/test_config/test_views.py ..........F.........F............F.. [ 61%]\nF.........F....................F....................F................... [ 69%]\n..............................FF.....FFF................................ [ 78%]\n.................................................................F...... [ 86%]\n.F                                                                       [ 87%]\nr2e_tests/test_scripts/test_common.py ..                                 [ 87%]\nr2e_tests/test_scripts/test_pdistreport.py ..                            [ 87%]\nr2e_tests/test_scripts/test_prequest.py ....................             [ 89%]\nr2e_tests/test_scripts/test_proutes.py ...F.......FFFF.F.FF.F..F..FF.    [ 93%]\nr2e_tests/test_scripts/test_pserve.py .F.......                          [ 94%]\nr2e_tests/test_scripts/test_pshell.py .................                  [ 96%]\nr2e_tests/test_scripts/test_ptweens.py .....                             [ 97%]\nr2e_tests/test_scripts/test_pviews.py ..........FFFF..FFFFFF.            [100%]\n\n=================================== FAILURES ===================================\n__ AdaptersConfiguratorMixinTests.test_add_resource_url_adapter_dotted_names ___\n\nself = <r2e_tests.test_config.test_adapters.AdaptersConfiguratorMixinTests testMethod=test_add_resource_url_adapter_dotted_names>\n\n    def test_add_resource_url_adapter_dotted_names(self):\n        from pyramid.interfaces import IResourceURL\n    \n        config = self._makeOne(autocommit=True)\n        config.add_resource_url_adapter(\n            'tests.test_config.test_adapters.DummyResourceURL',\n            'tests.test_config.test_adapters.DummyIface',\n        )\n        iface = DummyIface()\n>       adapter = config.registry.getMultiAdapter((iface, iface), IResourceURL)\n\nr2e_tests/test_config/test_adapters.py:325: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <Registry r2e_tests.test_config>\nobjects = (<r2e_tests.test_config.test_adapters.DummyIface object at 0x71911fc7a220>, <r2e_tests.test_config.test_adapters.DummyIface object at 0x71911fc7a220>)\ninterface = <InterfaceClass pyramid.interfaces.IResourceURL>, name = ''\n\n    def getMultiAdapter(self, objects, interface, name=''):\n        adapter = self.adapters.queryMultiAdapter(objects, interface, name)\n        if adapter is None:\n>           raise ComponentLookupError(objects, interface, name)\nE           zope.interface.interfaces.ComponentLookupError: ((<r2e_tests.test_config.test_adapters.DummyIface object at 0x71911fc7a220>, <r2e_tests.test_config.test_adapters.DummyIface object at 0x71911fc7a220>), <InterfaceClass pyramid.interfaces.IResourceURL>, '')\n\n.venv/lib/python3.8/site-packages/zope/interface/registry.py:379: ComponentLookupError\n_ AdaptersConfiguratorMixinTests.test_add_resource_url_adapter_introspectables _\n\nself = <r2e_tests.test_config.test_adapters.AdaptersConfiguratorMixinTests testMethod=test_add_resource_url_adapter_introspectables>\n\n    def test_add_resource_url_adapter_introspectables(self):\n        config = self._makeOne()\n        config.add_resource_url_adapter(DummyResourceURL, DummyIface)\n        actions = config.action_state.actions\n        self.assertEqual(len(actions), 1)\n        intrs = actions[0]['introspectables']\n        self.assertEqual(len(intrs), 1)\n        intr = intrs[0]\n        self.assertEqual(intr.type_name, 'resource url adapter')\n        self.assertEqual(\n            intr.discriminator, ('resource url adapter', DummyIface)\n        )\n        self.assertEqual(intr.category_name, 'resource url adapters')\n>       self.assertEqual(\n            intr.title,\n            \"resource url adapter for resource iface \"\n            \"<class 'tests.test_config.test_adapters.DummyIface'>\",\n        )\nE       AssertionError: \"reso[30 chars]iface <class 'r2e_tests.test_config.test_adapters.DummyIface'>\" != \"reso[30 chars]iface <class 'tests.test_config.test_adapters.DummyIface'>\"\nE       - resource url adapter for resource iface <class 'r2e_tests.test_config.test_adapters.DummyIface'>\nE       ?                                                 ----\nE       + resource url adapter for resource iface <class 'tests.test_config.test_adapters.DummyIface'>\n\nr2e_tests/test_config/test_adapters.py:371: AssertionError\n________ AdaptersConfiguratorMixinTests.test_add_traverser_dotted_names ________\n\nself = <r2e_tests.test_config.test_adapters.AdaptersConfiguratorMixinTests testMethod=test_add_traverser_dotted_names>\n\n    def test_add_traverser_dotted_names(self):\n        from pyramid.interfaces import ITraverser\n    \n        config = self._makeOne(autocommit=True)\n        config.add_traverser(\n            'tests.test_config.test_adapters.DummyTraverser',\n            'tests.test_config.test_adapters.DummyIface',\n        )\n        iface = DummyIface()\n>       traverser = config.registry.getAdapter(iface, ITraverser)\n\nr2e_tests/test_config/test_adapters.py:279: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <Registry r2e_tests.test_config>\nobject = <r2e_tests.test_config.test_adapters.DummyIface object at 0x71911fc7aaf0>\ninterface = <InterfaceClass pyramid.interfaces.ITraverser>, name = ''\n\n    def getAdapter(self, object, interface, name=''):\n        adapter = self.adapters.queryAdapter(object, interface, name)\n        if adapter is None:\n>           raise ComponentLookupError(object, interface, name)\nE           zope.interface.interfaces.ComponentLookupError: (<r2e_tests.test_config.test_adapters.DummyIface object at 0x71911fc7aaf0>, <InterfaceClass pyramid.interfaces.ITraverser>, '')\n\n.venv/lib/python3.8/site-packages/zope/interface/registry.py:368: ComponentLookupError\n___ TestAssetsConfiguratorMixin.test_override_asset_directory_with_directory ___\n\nself = <r2e_tests.test_config.test_assets.TestAssetsConfiguratorMixin testMethod=test_override_asset_directory_with_directory>\n\n    def test_override_asset_directory_with_directory(self):\n        from pyramid.config.assets import PackageAssetSource\n    \n        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'tests.test_config.pkgs.asset:templates/',\n            'tests.test_config.pkgs.asset.subpackage:templates/',\n            _override=override,\n        )\n        from tests.test_config.pkgs import asset\n        from tests.test_config.pkgs.asset import subpackage\n    \n        self.assertEqual(override.package, asset)\n        self.assertEqual(override.path, 'templates/')\n        source = override.source\n        self.assertTrue(isinstance(source, PackageAssetSource))\n        self.assertEqual(source.package, subpackage)\n        self.assertEqual(source.prefix, 'templates/')\n    \n        resource_name = 'bar.pt'\n        expected = os.path.join(\n            here, 'pkgs', 'asset', 'subpackage', 'templates', 'bar.pt'\n        )\n>       self.assertEqual(override.source.get_filename(resource_name), expected)\nE       AssertionError: '/hom[90 chars]91d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt' != '/hom[90 chars]91d0/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:132: AssertionError\n____ TestAssetsConfiguratorMixin.test_override_asset_directory_with_package ____\n\nself = <r2e_tests.test_config.test_assets.TestAssetsConfiguratorMixin testMethod=test_override_asset_directory_with_package>\n\n    def test_override_asset_directory_with_package(self):\n        from pyramid.config.assets import PackageAssetSource\n    \n        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'tests.test_config.pkgs.asset:templates/',\n            'tests.test_config.pkgs.asset.subpackage',\n            _override=override,\n        )\n        from tests.test_config.pkgs import asset\n        from tests.test_config.pkgs.asset import subpackage\n    \n        self.assertEqual(override.package, asset)\n        self.assertEqual(override.path, 'templates/')\n        source = override.source\n        self.assertTrue(isinstance(source, PackageAssetSource))\n        self.assertEqual(source.package, subpackage)\n        self.assertEqual(source.prefix, '')\n    \n        resource_name = 'templates/bar.pt'\n        expected = os.path.join(\n            here, 'pkgs', 'asset', 'subpackage', 'templates', 'bar.pt'\n        )\n>       self.assertEqual(override.source.get_filename(resource_name), expected)\nE       AssertionError: '/hom[90 chars]91d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt' != '/hom[90 chars]91d0/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:158: AssertionError\n________ TestAssetsConfiguratorMixin.test_override_asset_file_with_file ________\n\nself = <r2e_tests.test_config.test_assets.TestAssetsConfiguratorMixin testMethod=test_override_asset_file_with_file>\n\n    def test_override_asset_file_with_file(self):\n        from pyramid.config.assets import PackageAssetSource\n    \n        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'tests.test_config.pkgs.asset:templates/foo.pt',\n            'tests.test_config.pkgs.asset.subpackage:templates/bar.pt',\n            _override=override,\n        )\n        from tests.test_config.pkgs import asset\n        from tests.test_config.pkgs.asset import subpackage\n    \n        self.assertEqual(override.package, asset)\n        self.assertEqual(override.path, 'templates/foo.pt')\n        source = override.source\n        self.assertTrue(isinstance(source, PackageAssetSource))\n        self.assertEqual(source.package, subpackage)\n        self.assertEqual(source.prefix, 'templates/bar.pt')\n    \n        resource_name = ''\n        expected = os.path.join(\n            here, 'pkgs', 'asset', 'subpackage', 'templates', 'bar.pt'\n        )\n>       self.assertEqual(override.source.get_filename(resource_name), expected)\nE       AssertionError: '/hom[90 chars]91d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt' != '/hom[90 chars]91d0/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:80: AssertionError\n____ TestAssetsConfiguratorMixin.test_override_asset_package_with_directory ____\n\nself = <r2e_tests.test_config.test_assets.TestAssetsConfiguratorMixin testMethod=test_override_asset_package_with_directory>\n\n    def test_override_asset_package_with_directory(self):\n        from pyramid.config.assets import PackageAssetSource\n    \n        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'tests.test_config.pkgs.asset',\n            'tests.test_config.pkgs.asset.subpackage:templates/',\n            _override=override,\n        )\n        from tests.test_config.pkgs import asset\n        from tests.test_config.pkgs.asset import subpackage\n    \n        self.assertEqual(override.package, asset)\n        self.assertEqual(override.path, '')\n        source = override.source\n        self.assertTrue(isinstance(source, PackageAssetSource))\n        self.assertEqual(source.package, subpackage)\n        self.assertEqual(source.prefix, 'templates/')\n    \n        resource_name = 'bar.pt'\n        expected = os.path.join(\n            here, 'pkgs', 'asset', 'subpackage', 'templates', 'bar.pt'\n        )\n>       self.assertEqual(override.source.get_filename(resource_name), expected)\nE       AssertionError: '/hom[90 chars]91d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt' != '/hom[90 chars]91d0/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:184: AssertionError\n_____ TestAssetsConfiguratorMixin.test_override_asset_package_with_package _____\n\nself = <r2e_tests.test_config.test_assets.TestAssetsConfiguratorMixin testMethod=test_override_asset_package_with_package>\n\n    def test_override_asset_package_with_package(self):\n        from pyramid.config.assets import PackageAssetSource\n    \n        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'tests.test_config.pkgs.asset',\n            'tests.test_config.pkgs.asset.subpackage',\n            _override=override,\n        )\n        from tests.test_config.pkgs import asset\n        from tests.test_config.pkgs.asset import subpackage\n    \n        self.assertEqual(override.package, asset)\n        self.assertEqual(override.path, '')\n        source = override.source\n        self.assertTrue(isinstance(source, PackageAssetSource))\n        self.assertEqual(source.package, subpackage)\n        self.assertEqual(source.prefix, '')\n    \n        resource_name = 'templates/bar.pt'\n        expected = os.path.join(\n            here, 'pkgs', 'asset', 'subpackage', 'templates', 'bar.pt'\n        )\n>       self.assertEqual(override.source.get_filename(resource_name), expected)\nE       AssertionError: '/hom[90 chars]91d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt' != '/hom[90 chars]91d0/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:106: AssertionError\n_________ TestOverrideProvider.test_get_resource_filename_no_overrides _________\n\nself = <r2e_tests.test_config.test_assets.TestOverrideProvider testMethod=test_get_resource_filename_no_overrides>\n\n    def test_get_resource_filename_no_overrides(self):\n        resource_name = 'test_assets.py'\n        import tests.test_config\n    \n        provider = self._makeOne(tests.test_config)\n        expected = os.path.join(here, resource_name)\n        result = provider.get_resource_filename(None, resource_name)\n>       self.assertEqual(result, expected)\nE       AssertionError: '/hom[69 chars]11514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py' != '/hom[69 chars]11514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:360: AssertionError\n____ TestOverrideProvider.test_get_resource_filename_override_returns_None _____\n\nself = <r2e_tests.test_config.test_assets.TestOverrideProvider testMethod=test_get_resource_filename_override_returns_None>\n\n    def test_get_resource_filename_override_returns_None(self):\n        overrides = DummyOverrides(None)\n        self._registerOverrides(overrides)\n        resource_name = 'test_assets.py'\n        import tests.test_config\n    \n        provider = self._makeOne(tests.test_config)\n        expected = os.path.join(here, resource_name)\n        result = provider.get_resource_filename(None, resource_name)\n>       self.assertEqual(result, expected)\nE       AssertionError: '/hom[69 chars]11514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py' != '/hom[69 chars]11514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:414: AssertionError\n___________________ TestPackageAssetSource.test_get_filename ___________________\n\nself = <r2e_tests.test_config.test_assets.TestPackageAssetSource testMethod=test_get_filename>\n\n    def test_get_filename(self):\n        source = self._makeOne('')\n>       self.assertEqual(\n            source.get_filename('test_assets.py'),\n            os.path.join(here, 'test_assets.py'),\n        )\nE       AssertionError: '/hom[69 chars]11514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py' != '/hom[69 chars]11514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:830: AssertionError\n_____________ TestPackageAssetSource.test_get_filename_with_prefix _____________\n\nself = <r2e_tests.test_config.test_assets.TestPackageAssetSource testMethod=test_get_filename_with_prefix>\n\n    def test_get_filename_with_prefix(self):\n        source = self._makeOne('test_assets.py')\n>       self.assertEqual(\n            source.get_filename(''), os.path.join(here, 'test_assets.py')\n        )\nE       AssertionError: '/hom[69 chars]11514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py' != '/hom[69 chars]11514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:837: AssertionError\n____________ TestFactoriesMixin.test_set_request_factory_dottedname ____________\n\nself = <r2e_tests.test_config.test_factories.TestFactoriesMixin testMethod=test_set_request_factory_dottedname>\n\n    def test_set_request_factory_dottedname(self):\n        from pyramid.interfaces import IRequestFactory\n    \n        config = self._makeOne(autocommit=True)\n        config.set_request_factory('tests.test_config.dummyfactory')\n>       self.assertEqual(\n            config.registry.getUtility(IRequestFactory), dummyfactory\n        )\nE       AssertionError: <function dummyfactory at 0x71911fdb0310> != <function dummyfactory at 0x71912079aca0>\n\nr2e_tests/test_config/test_factories.py:26: AssertionError\n___________ TestFactoriesMixin.test_set_response_factory_dottedname ____________\n\nself = <r2e_tests.test_config.test_factories.TestFactoriesMixin testMethod=test_set_response_factory_dottedname>\n\n    def test_set_response_factory_dottedname(self):\n        from pyramid.interfaces import IResponseFactory\n    \n        config = self._makeOne(autocommit=True)\n        config.set_response_factory('tests.test_config.dummyfactory')\n>       self.assertEqual(\n            config.registry.getUtility(IResponseFactory), dummyfactory\n        )\nE       AssertionError: <function dummyfactory at 0x71911fdb0310> != <function dummyfactory at 0x71912079aca0>\n\nr2e_tests/test_config/test_factories.py:43: AssertionError\n_____________ TestFactoriesMixin.test_set_root_factory_dottedname ______________\n\nself = <r2e_tests.test_config.test_factories.TestFactoriesMixin testMethod=test_set_root_factory_dottedname>\n\n    def test_set_root_factory_dottedname(self):\n        from pyramid.interfaces import IRootFactory\n    \n        config = self._makeOne()\n        config.set_root_factory('tests.test_config.dummyfactory')\n        self.assertEqual(config.registry.queryUtility(IRootFactory), None)\n        config.commit()\n>       self.assertEqual(\n            config.registry.getUtility(IRootFactory), dummyfactory\n        )\nE       AssertionError: <function dummyfactory at 0x71911fdb0310> != <function dummyfactory at 0x71912079aca0>\n\nr2e_tests/test_config/test_factories.py:77: AssertionError\n____________ TestFactoriesMixin.test_set_session_factory_dottedname ____________\n\nself = <r2e_tests.test_config.test_factories.TestFactoriesMixin testMethod=test_set_session_factory_dottedname>\n\n    def test_set_session_factory_dottedname(self):\n        from pyramid.interfaces import ISessionFactory\n    \n        config = self._makeOne()\n        config.set_session_factory('tests.test_config.dummyfactory')\n        self.assertEqual(config.registry.queryUtility(ISessionFactory), None)\n        config.commit()\n>       self.assertEqual(\n            config.registry.getUtility(ISessionFactory), dummyfactory\n        )\nE       AssertionError: <function dummyfactory at 0x71911fdb0310> != <function dummyfactory at 0x71912079aca0>\n\nr2e_tests/test_config/test_factories.py:99: AssertionError\n_________ TestI18NConfiguratorMixin.test_add_translation_dirs_abspath __________\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_abspath>\n\n    def test_add_translation_dirs_abspath(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n>       config.add_translation_dirs(locale)\n\nr2e_tests/test_config/test_i18n.py:131: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/actions.py:565: in wrapper\n    result = wrapped(self, *arg, **kw)\nsrc/pyramid/config/i18n.py:125: in add_translation_dirs\n    self.action(None, register, introspectables=introspectables)\nsrc/pyramid/config/actions.py:94: in action\n    callable(*args, **kw)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n    def register():\n        directories = []\n        resolver = AssetResolver(self.package_name)\n    \n        # defer spec resolution until register to allow for asset\n        # overrides to take place in an earlier config phase\n        for spec in specs:\n            # the trailing slash helps match asset overrides for folders\n            if not spec.endswith('/'):\n                spec += '/'\n            asset = resolver.resolve(spec)\n            directory = asset.abspath()\n            if not asset.isdir():\n>               raise ConfigurationError(\n                    '\"%s\" is not a directory' % directory\n                )\nE               pyramid.exceptions.ConfigurationError: \"/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale\" is not a directory\n\nsrc/pyramid/config/i18n.py:101: ConfigurationError\n________ TestI18NConfiguratorMixin.test_add_translation_dirs_asset_spec ________\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_asset_spec>\n\n    def test_add_translation_dirs_asset_spec(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs('tests.pkgs.localeapp:locale')\n>       self.assertEqual(\n            config.registry.getUtility(ITranslationDirectories), [locale]\n        )\nE       AssertionError: Lists differ: ['/ho[66 chars]890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale'] != ['/ho[66 chars]890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale']\nE       \nE       First differing element 0:\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale'\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale'\nE       \nE       - ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale']\nE       + ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale']\nE       ?                                                                                                      ++++\n\nr2e_tests/test_config/test_i18n.py:68: AssertionError\n_ TestI18NConfiguratorMixin.test_add_translation_dirs_asset_spec_existing_translation_dirs _\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_asset_spec_existing_translation_dirs>\n\n    def test_add_translation_dirs_asset_spec_existing_translation_dirs(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n        directories = ['abc']\n        config.registry.registerUtility(directories, ITranslationDirectories)\n        config.add_translation_dirs('tests.pkgs.localeapp:locale')\n        result = config.registry.getUtility(ITranslationDirectories)\n>       self.assertEqual(result, [locale, 'abc'])\nE       AssertionError: Lists differ: ['/ho[73 chars]14ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale', 'abc'] != ['/ho[73 chars]14ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale', 'abc']\nE       \nE       First differing element 0:\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale'\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale'\nE       \nE       - ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale',\nE       + ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale',\nE       ?                                                                                                      ++++\nE       \nE          'abc']\n\nr2e_tests/test_config/test_i18n.py:80: AssertionError\n_ TestI18NConfiguratorMixin.test_add_translation_dirs_doesnt_use_override_w_autocommit _\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_doesnt_use_override_w_autocommit>\n\n    def test_add_translation_dirs_doesnt_use_override_w_autocommit(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs('tests.pkgs.localeapp:locale')\n        config.override_asset(\n            'tests.pkgs.localeapp:locale/', 'tests.pkgs.localeapp:locale2/'\n        )\n>       self.assertEqual(\n            config.registry.getUtility(ITranslationDirectories), [locale]\n        )\nE       AssertionError: Lists differ: ['/ho[66 chars]890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale'] != ['/ho[66 chars]890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale']\nE       \nE       First differing element 0:\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale'\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale'\nE       \nE       - ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale']\nE       + ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale']\nE       ?                                                                                                      ++++\n\nr2e_tests/test_config/test_i18n.py:157: AssertionError\n______ TestI18NConfiguratorMixin.test_add_translation_dirs_multiple_specs ______\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_multiple_specs>\n\n    def test_add_translation_dirs_multiple_specs(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs(\n            'tests.pkgs.localeapp:locale', 'tests.pkgs.localeapp:locale2'\n        )\n>       self.assertEqual(\n            config.registry.getUtility(ITranslationDirectories),\n            [locale, locale2],\n        )\nE       AssertionError: Lists differ: ['/ho[91 chars]91d0/tests/pkgs/localeapp/locale', '/home/gcpu[114 chars]le2'] != ['/ho[91 chars]91d0/r2e_tests/pkgs/localeapp/locale', '/home/[122 chars]le2']\nE       \nE       First differing element 0:\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale'\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale'\nE       \nE       Diff is 760 characters long. Set self.maxDiff to None to see it.\n\nr2e_tests/test_config/test_i18n.py:89: AssertionError\n_ TestI18NConfiguratorMixin.test_add_translation_dirs_multiple_specs_multiple_calls _\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_multiple_specs_multiple_calls>\n\n    def test_add_translation_dirs_multiple_specs_multiple_calls(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs(\n            'tests.pkgs.localeapp:locale', 'tests.pkgs.localeapp:locale2'\n        )\n        config.add_translation_dirs('tests.pkgs.localeapp:locale3')\n>       self.assertEqual(\n            config.registry.getUtility(ITranslationDirectories),\n            [locale3, locale, locale2],\n        )\nE       AssertionError: Lists differ: ['/ho[91 chars]91d0/tests/pkgs/localeapp/locale3', '/home/gcp[245 chars]le2'] != ['/ho[91 chars]91d0/r2e_tests/pkgs/localeapp/locale3', '/home[257 chars]le2']\nE       \nE       First differing element 0:\nE       '/hom[65 chars]890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale3'\nE       '/hom[65 chars]890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale3'\nE       \nE       Diff is 1141 characters long. Set self.maxDiff to None to see it.\n\nr2e_tests/test_config/test_i18n.py:102: AssertionError\n_ TestI18NConfiguratorMixin.test_add_translation_dirs_override_multiple_specs_multiple_calls _\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_override_multiple_specs_multiple_calls>\n\n    def test_add_translation_dirs_override_multiple_specs_multiple_calls(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs(\n            'tests.pkgs.localeapp:locale', 'tests.pkgs.localeapp:locale2'\n        )\n        config.add_translation_dirs(\n            'tests.pkgs.localeapp:locale3', override=True\n        )\n>       self.assertEqual(\n            config.registry.getUtility(ITranslationDirectories),\n            [locale, locale2, locale3],\n        )\nE       AssertionError: Lists differ: ['/ho[91 chars]91d0/tests/pkgs/localeapp/locale', '/home/gcpu[245 chars]le3'] != ['/ho[91 chars]91d0/r2e_tests/pkgs/localeapp/locale', '/home/[257 chars]le3']\nE       \nE       First differing element 0:\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale'\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale'\nE       \nE       Diff is 1141 characters long. Set self.maxDiff to None to see it.\n\nr2e_tests/test_config/test_i18n.py:117: AssertionError\n_ TestI18NConfiguratorMixin.test_add_translation_dirs_uses_override_out_of_order _\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_uses_override_out_of_order>\n\n    def test_add_translation_dirs_uses_override_out_of_order(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne()\n        config.add_translation_dirs('tests.pkgs.localeapp:locale')\n        config.override_asset(\n            'tests.pkgs.localeapp:locale/', 'tests.pkgs.localeapp:locale2/'\n        )\n        config.commit()\n>       self.assertEqual(\n            config.registry.getUtility(ITranslationDirectories), [locale2]\n        )\nE       AssertionError: Lists differ: ['/ho[67 chars]90911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale2'] != ['/ho[67 chars]90911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale2']\nE       \nE       First differing element 0:\nE       '/hom[65 chars]890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale2'\nE       '/hom[65 chars]890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale2'\nE       \nE       - ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale2']\nE       + ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale2']\nE       ?                                                                                                      ++++\n\nr2e_tests/test_config/test_i18n.py:145: AssertionError\n_ TestI18NConfiguratorMixin.test_add_translation_dirs_uses_override_w_autocommit _\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_uses_override_w_autocommit>\n\n    def test_add_translation_dirs_uses_override_w_autocommit(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n        config.override_asset(\n            'tests.pkgs.localeapp:locale/', 'tests.pkgs.localeapp:locale2/'\n        )\n        config.add_translation_dirs('tests.pkgs.localeapp:locale')\n>       self.assertEqual(\n            config.registry.getUtility(ITranslationDirectories), [locale2]\n        )\nE       AssertionError: Lists differ: ['/ho[67 chars]90911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale2'] != ['/ho[67 chars]90911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale2']\nE       \nE       First differing element 0:\nE       '/hom[65 chars]890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale2'\nE       '/hom[65 chars]890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale2'\nE       \nE       - ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale2']\nE       + ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale2']\nE       ?                                                                                                      ++++\n\nr2e_tests/test_config/test_i18n.py:169: AssertionError\n_______ TestI18NConfiguratorMixin.test_set_locale_negotiator_dottedname ________\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_set_locale_negotiator_dottedname>\n\n    def test_set_locale_negotiator_dottedname(self):\n        from pyramid.interfaces import ILocaleNegotiator\n    \n        config = self._makeOne(autocommit=True)\n        config.set_locale_negotiator('tests.test_config.dummyfactory')\n>       self.assertEqual(\n            config.registry.getUtility(ILocaleNegotiator), dummyfactory\n        )\nE       AssertionError: <function dummyfactory at 0x71911fdb0310> != <function dummyfactory at 0x71912079aca0>\n\nr2e_tests/test_config/test_i18n.py:43: AssertionError\n___________________ ConfiguratorTests.test_ctor_no_registry ____________________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_ctor_no_registry>\n\n    def test_ctor_no_registry(self):\n        import sys\n    \n        from pyramid.config import Configurator\n        from pyramid.interfaces import IRendererFactory, ISettings\n    \n        config = Configurator()\n        this_pkg = sys.modules['tests.test_config']\n        self.assertTrue(config.registry.getUtility(ISettings))\n>       self.assertEqual(config.package, this_pkg)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:78: AssertionError\n_________ ConfiguratorTests.test_ctor_noreg_debug_logger_None_default __________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_ctor_noreg_debug_logger_None_default>\n\n    def test_ctor_noreg_debug_logger_None_default(self):\n        from pyramid.interfaces import IDebugLogger\n    \n        config = self._makeOne()\n        logger = config.registry.getUtility(IDebugLogger)\n>       self.assertEqual(logger.name, 'tests.test_config')\nE       AssertionError: 'r2e_tests.test_config' != 'tests.test_config'\nE       - r2e_tests.test_config\nE       ? ----\nE       + tests.test_config\n\nr2e_tests/test_config/test_init.py:204: AssertionError\n_____________ ConfiguratorTests.test_include_constant_root_package _____________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_include_constant_root_package>\n\n    def test_include_constant_root_package(self):\n        import tests\n        from tests import test_config\n    \n        config = self._makeOne(root_package=tests)\n        results = {}\n    \n        def include(config):\n            results['package'] = config.package\n            results['root_package'] = config.root_package\n    \n        config.include(include)\n        self.assertEqual(results['root_package'], tests)\n>       self.assertEqual(results['package'], test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:966: AssertionError\n_____________ ConfiguratorTests.test_include_with_python_callable ______________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_include_with_python_callable>\n\n    def test_include_with_python_callable(self):\n        from tests import test_config\n    \n        config = self._makeOne()\n        config.include(dummy_include)\n        after = config.action_state\n        actions = after.actions\n        self.assertEqual(len(actions), 1)\n        action = actions[0]\n        self.assertEqual(action['discriminator'], 'discrim')\n        self.assertEqual(action['callable'], None)\n>       self.assertEqual(action['args'], test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:878: AssertionError\n_______ ConfiguratorTests.test_setup_registry_debug_logger_None_default ________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_setup_registry_debug_logger_None_default>\n\n    def test_setup_registry_debug_logger_None_default(self):\n        from pyramid.interfaces import IDebugLogger\n        from pyramid.registry import Registry\n    \n        reg = Registry()\n        config = self._makeOne(reg)\n        config.setup_registry()\n        logger = reg.getUtility(IDebugLogger)\n>       self.assertEqual(logger.name, 'tests.test_config')\nE       AssertionError: 'r2e_tests.test_config' != 'tests.test_config'\nE       - r2e_tests.test_config\nE       ? ----\nE       + tests.test_config\n\nr2e_tests/test_config/test_init.py:594: AssertionError\n_________________ ConfiguratorTests.test_setup_registry_tweens _________________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_setup_registry_tweens>\n\n    def test_setup_registry_tweens(self):\n        from pyramid.interfaces import ITweens\n        from pyramid.registry import Registry\n    \n        reg = Registry()\n        config = self._makeOne(reg)\n        settings = {'pyramid.tweens': 'tests.test_config.dummy_tween_factory'}\n        config.setup_registry(settings=settings)\n        config.commit()\n        tweens = config.registry.getUtility(ITweens)\n>       self.assertEqual(\n            tweens.explicit,\n            [('tests.test_config.dummy_tween_factory', dummy_tween_factory)],\n        )\nE       AssertionError: Lists differ: [('te[25 chars]en_factory', <function dummy_tween_factory at 0x71911fb72280>)] != [('te[25 chars]en_factory', <function dummy_tween_factory at 0x71912094db80>)]\nE       \nE       First differing element 0:\nE       ('tes[23 chars]een_factory', <function dummy_tween_factory at 0x71911fb72280>)\nE       ('tes[23 chars]een_factory', <function dummy_tween_factory at 0x71912094db80>)\nE       \nE         [('tests.test_config.dummy_tween_factory',\nE       -   <function dummy_tween_factory at 0x71911fb72280>)]\nE       ?                                          ^^ ---\nE       \nE       +   <function dummy_tween_factory at 0x71912094db80>)]\nE       ?                                          ^^^^^\n\nr2e_tests/test_config/test_init.py:815: AssertionError\n__________________ ConfiguratorTests.test_with_package_module __________________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_with_package_module>\n\n    def test_with_package_module(self):\n        from . import test_init\n    \n        config = self._makeOne()\n        newconfig = config.with_package(test_init)\n        import tests.test_config\n    \n>       self.assertEqual(newconfig.package, tests.test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:354: AssertionError\n____ TestConfigurator_add_directive.test_add_directive_with_custom_callable ____\n\nself = <r2e_tests.test_config.test_init.TestConfigurator_add_directive testMethod=test_add_directive_with_custom_callable>\n\n    def test_add_directive_with_custom_callable(self):\n        from tests import test_config\n    \n        config = self.config\n        config.add_directive(\n            'dummy_callable', 'tests.test_config.dummy_callable'\n        )\n        self.assertTrue(hasattr(config, 'dummy_callable'))\n        config.dummy_callable('discrim')\n        after = config.action_state\n        action = after.actions[-1]\n        self.assertEqual(action['discriminator'], 'discrim')\n        self.assertEqual(action['callable'], None)\n>       self.assertEqual(action['args'], test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:1288: AssertionError\n________ TestConfigurator_add_directive.test_add_directive_with_partial ________\n\nself = <r2e_tests.test_config.test_init.TestConfigurator_add_directive testMethod=test_add_directive_with_partial>\n\n    def test_add_directive_with_partial(self):\n        from tests import test_config\n    \n        config = self.config\n        config.add_directive(\n            'dummy_partial', 'tests.test_config.dummy_partial'\n        )\n        self.assertTrue(hasattr(config, 'dummy_partial'))\n        config.dummy_partial()\n        after = config.action_state\n        action = after.actions[-1]\n        self.assertEqual(action['discriminator'], 'partial')\n        self.assertEqual(action['callable'], None)\n>       self.assertEqual(action['args'], test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:1273: AssertionError\n_________ TestConfigurator_add_directive.test_extend_with_dotted_name __________\n\nself = <r2e_tests.test_config.test_init.TestConfigurator_add_directive testMethod=test_extend_with_dotted_name>\n\n    def test_extend_with_dotted_name(self):\n        from tests import test_config\n    \n        config = self.config\n        config.add_directive('dummy_extend', 'tests.test_config.dummy_extend')\n        self.assertTrue(hasattr(config, 'dummy_extend'))\n        config.dummy_extend('discrim')\n        after = config.action_state\n        action = after.actions[-1]\n        self.assertEqual(action['discriminator'], 'discrim')\n        self.assertEqual(action['callable'], None)\n>       self.assertEqual(action['args'], test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:1258: AssertionError\n_______ TestConfigurator_add_directive.test_extend_with_python_callable ________\n\nself = <r2e_tests.test_config.test_init.TestConfigurator_add_directive testMethod=test_extend_with_python_callable>\n\n    def test_extend_with_python_callable(self):\n        from tests import test_config\n    \n        config = self.config\n        config.add_directive('dummy_extend', dummy_extend)\n        self.assertTrue(hasattr(config, 'dummy_extend'))\n        config.dummy_extend('discrim')\n        after = config.action_state\n        action = after.actions[-1]\n        self.assertEqual(action['discriminator'], 'discrim')\n        self.assertEqual(action['callable'], None)\n>       self.assertEqual(action['args'], test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:1301: AssertionError\n_________ TestConfigurator__add_predicate.test_factory_as_dotted_name __________\n\nself = <r2e_tests.test_config.test_init.TestConfigurator__add_predicate testMethod=test_factory_as_dotted_name>\n\n    def test_factory_as_dotted_name(self):\n        config = self._makeOne()\n    \n        def _fakeAction(\n            discriminator,\n            callable=None,\n            args=(),\n            kw=None,\n            order=0,\n            introspectables=(),\n            **extra,\n        ):\n            self.assertEqual(len(introspectables), 1)\n            self.assertEqual(introspectables[0]['name'], 'testing')\n            self.assertEqual(introspectables[0]['factory'], DummyPredicate)\n    \n        config.action = _fakeAction\n>       config._add_predicate(\n            'route', 'testing', 'tests.test_config.test_init.DummyPredicate'\n        )\n\nr2e_tests/test_config/test_init.py:1378: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/predicates.py:47: in _add_predicate\n    self.action(\nr2e_tests/test_config/test_init.py:1375: in _fakeAction\n    self.assertEqual(introspectables[0]['factory'], DummyPredicate)\nE   AssertionError: <class 'tests.test_config.test_init.DummyPredicate'> != <class 'r2e_tests.test_config.test_init.DummyPredicate'>\n_____ RoutesConfiguratorMixinTests.test_add_route_with_factory_dottedname ______\n\nself = <r2e_tests.test_config.test_routes.RoutesConfiguratorMixinTests testMethod=test_add_route_with_factory_dottedname>\n\n    def test_add_route_with_factory_dottedname(self):\n        config = self._makeOne(autocommit=True)\n        config.add_route(\n            'name', 'path', factory='tests.test_config.dummyfactory'\n        )\n        route = self._assertRoute(config, 'name', 'path')\n>       self.assertEqual(route.factory, dummyfactory)\nE       AssertionError: <function dummyfactory at 0x71911fdb0310> != <function dummyfactory at 0x71912079aca0>\n\nr2e_tests/test_config/test_routes.py:109: AssertionError\n_____ TestingConfiguratorMixinTests.test_testing_add_subscriber_dottedname _____\n\nself = <r2e_tests.test_config.test_testing.TestingConfiguratorMixinTests testMethod=test_testing_add_subscriber_dottedname>\n\n    def test_testing_add_subscriber_dottedname(self):\n        config = self._makeOne(autocommit=True)\n        L = config.testing_add_subscriber('tests.test_config.IDummy')\n        event = DummyEvent()\n        config.registry.notify(event)\n>       self.assertEqual(len(L), 1)\nE       AssertionError: 0 != 1\n\nr2e_tests/test_config/test_testing.py:108: AssertionError\n____________ TestTweensConfiguratorMixin.test_add_tween_dottedname _____________\n\nself = <r2e_tests.test_config.test_tweens.TestTweensConfiguratorMixin testMethod=test_add_tween_dottedname>\n\n    def test_add_tween_dottedname(self):\n        from pyramid.interfaces import ITweens\n        from pyramid.tweens import excview_tween_factory\n    \n        config = self._makeOne()\n        config.add_tween('tests.test_config.dummy_tween_factory')\n        config.commit()\n        tweens = config.registry.queryUtility(ITweens)\n>       self.assertEqual(\n            tweens.implicit(),\n            [\n                ('tests.test_config.dummy_tween_factory', dummy_tween_factory),\n                (\n                    'pyramid.tweens.excview_tween_factory',\n                    excview_tween_factory,\n                ),\n            ],\n        )\nE       AssertionError: Lists differ: [('te[72 chars]x71911fb72280>), ('pyramid.tweens.excview_twee[59 chars]20>)] != [('te[72 chars]x71912094db80>), ('pyramid.tweens.excview_twee[59 chars]20>)]\nE       \nE       First differing element 0:\nE       ('tes[23 chars]een_factory', <function dummy_tween_factory at 0x71911fb72280>)\nE       ('tes[23 chars]een_factory', <function dummy_tween_factory at 0x71912094db80>)\nE       \nE         [('tests.test_config.dummy_tween_factory',\nE       -   <function dummy_tween_factory at 0x71911fb72280>),\nE       ?                                          ^^ ---\nE       \nE       +   <function dummy_tween_factory at 0x71912094db80>),\nE       ?                                          ^^^^^\nE       \nE          ('pyramid.tweens.excview_tween_factory',\nE           <function excview_tween_factory at 0x719120f66820>)]\n\nr2e_tests/test_config/test_tweens.py:105: AssertionError\n__________ TestTweensConfiguratorMixin.test_add_tweens_names_distinct __________\n\nself = <r2e_tests.test_config.test_tweens.TestTweensConfiguratorMixin testMethod=test_add_tweens_names_distinct>\n\n    def test_add_tweens_names_distinct(self):\n        from pyramid.interfaces import ITweens\n        from pyramid.tweens import excview_tween_factory\n    \n        def factory1(handler, registry):  # pragma: no cover\n            return handler\n    \n        def factory2(handler, registry):  # pragma: no cover\n            return handler\n    \n        config = self._makeOne()\n        config.add_tween('tests.test_config.dummy_tween_factory')\n        config.add_tween('tests.test_config.dummy_tween_factory2')\n        config.commit()\n        tweens = config.registry.queryUtility(ITweens)\n        implicit = tweens.implicit()\n>       self.assertEqual(\n            implicit,\n            [\n                (\n                    'tests.test_config.dummy_tween_factory2',\n                    dummy_tween_factory2,\n                ),\n                ('tests.test_config.dummy_tween_factory', dummy_tween_factory),\n                (\n                    'pyramid.tweens.excview_tween_factory',\n                    excview_tween_factory,\n                ),\n            ],\n        )\nE       AssertionError: Lists differ: [('te[74 chars]x71911fb72040>), ('tests.test_config.dummy_twe[152 chars]20>)] != [('te[74 chars]x71912079a1f0>), ('tests.test_config.dummy_twe[152 chars]20>)]\nE       \nE       First differing element 0:\nE       ('tes[25 chars]n_factory2', <function dummy_tween_factory2 at 0x71911fb72040>)\nE       ('tes[25 chars]n_factory2', <function dummy_tween_factory2 at 0x71912079a1f0>)\nE       \nE         [('tests.test_config.dummy_tween_factory2',\nE       -   <function dummy_tween_factory2 at 0x71911fb72040>),\nE       ?                                             -----\nE       \nE       +   <function dummy_tween_factory2 at 0x71912079a1f0>),\nE       ?                                           +++++\nE       \nE          ('tests.test_config.dummy_tween_factory',\nE       -   <function dummy_tween_factory at 0x71911fb72280>),\nE       ?                                          ^^ ---\nE       \nE       +   <function dummy_tween_factory at 0x71912094db80>),\nE       ?                                          ^^^^^\nE       \nE          ('pyramid.tweens.excview_tween_factory',\nE           <function excview_tween_factory at 0x719120f66820>)]\n\nr2e_tests/test_config/test_tweens.py:31: AssertionError\n_______ TestTweensConfiguratorMixin.test_add_tweens_names_with_underover _______\n\nself = <r2e_tests.test_config.test_tweens.TestTweensConfiguratorMixin testMethod=test_add_tweens_names_with_underover>\n\n    def test_add_tweens_names_with_underover(self):\n        from pyramid.interfaces import ITweens\n        from pyramid.tweens import MAIN, excview_tween_factory\n    \n        config = self._makeOne()\n        config.add_tween('tests.test_config.dummy_tween_factory', over=MAIN)\n        config.add_tween(\n            'tests.test_config.dummy_tween_factory2',\n            over=MAIN,\n            under='tests.test_config.dummy_tween_factory',\n        )\n        config.commit()\n        tweens = config.registry.queryUtility(ITweens)\n        implicit = tweens.implicit()\n>       self.assertEqual(\n            implicit,\n            [\n                (\n                    'pyramid.tweens.excview_tween_factory',\n                    excview_tween_factory,\n                ),\n                ('tests.test_config.dummy_tween_factory', dummy_tween_factory),\n                (\n                    'tests.test_config.dummy_tween_factory2',\n                    dummy_tween_factory2,\n                ),\n            ],\n        )\nE       AssertionError: Lists differ: [('py[166 chars]x71911fb72280>), ('tests.test_config.dummy_twe[60 chars]40>)] != [('py[166 chars]x71912094db80>), ('tests.test_config.dummy_twe[60 chars]f0>)]\nE       \nE       First differing element 1:\nE       ('tes[23 chars]een_factory', <function dummy_tween_factory at 0x71911fb72280>)\nE       ('tes[23 chars]een_factory', <function dummy_tween_factory at 0x71912094db80>)\nE       \nE         [('pyramid.tweens.excview_tween_factory',\nE           <function excview_tween_factory at 0x719120f66820>),\nE          ('tests.test_config.dummy_tween_factory',\nE       -   <function dummy_tween_factory at 0x71911fb72280>),\nE       ?                                          ^^ ---\nE       \nE       +   <function dummy_tween_factory at 0x71912094db80>),\nE       ?                                          ^^^^^\nE       \nE          ('tests.test_config.dummy_tween_factory2',\nE       -   <function dummy_tween_factory2 at 0x71911fb72040>)]\nE       ?                                             -----\nE       \nE       +   <function dummy_tween_factory2 at 0x71912079a1f0>)]\nE       ?                                           +++++\n\nr2e_tests/test_config/test_tweens.py:60: AssertionError\n____ TestViewsConfigurationMixin.test_add_exception_view_with_view_defaults ____\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_exception_view_with_view_defaults>\n\n    def test_add_exception_view_with_view_defaults(self):\n        from zope.interface import directlyProvides, implementedBy\n    \n        from pyramid.exceptions import PredicateMismatch\n        from pyramid.renderers import null_renderer\n    \n        class view:\n            __view_defaults__ = {'containment': 'tests.test_config.IDummy'}\n    \n            def __init__(self, request):\n                pass\n    \n            def __call__(self):\n                return 'OK'\n    \n        config = self._makeOne(autocommit=True)\n        config.add_exception_view(\n            view=view, context=Exception, renderer=null_renderer\n        )\n        wrapper = self._getViewCallable(\n            config, exc_iface=implementedBy(Exception)\n        )\n        context = DummyContext()\n        directlyProvides(context, IDummy)\n        request = self._makeRequest(config)\n>       self.assertEqual(wrapper(context, request), 'OK')\n\nr2e_tests/test_config/test_views.py:2494: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/views.py:170: in attr_view\n    return view(context, request)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ncontext = <r2e_tests.test_config.test_views.DummyContext object at 0x71911fe833d0>\nrequest = <r2e_tests.test_config.test_views.DummyRequest object at 0x71911fe83d00>\n\n    def predicate_wrapper(context, request):\n        for predicate in preds:\n            if not predicate(context, request):\n                view_name = getattr(view, '__name__', view)\n>               raise PredicateMismatch(\n                    'predicate mismatch for view %s (%s)'\n                    % (view_name, predicate.text())\n                )\nE               pyramid.exceptions.PredicateMismatch: predicate mismatch for view view (containment = tests.test_config.IDummy)\n\nsrc/pyramid/config/views.py:192: PredicateMismatch\n____ TestViewsConfigurationMixin.test_add_forbidden_view_with_view_defaults ____\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_forbidden_view_with_view_defaults>\n\n    def test_add_forbidden_view_with_view_defaults(self):\n        from zope.interface import directlyProvides, implementedBy\n    \n        from pyramid.exceptions import PredicateMismatch\n        from pyramid.httpexceptions import HTTPForbidden\n        from pyramid.interfaces import IRequest\n        from pyramid.renderers import null_renderer\n    \n        class view:\n            __view_defaults__ = {'containment': 'tests.test_config.IDummy'}\n    \n            def __init__(self, request):\n                pass\n    \n            def __call__(self):\n                return 'OK'\n    \n        config = self._makeOne(autocommit=True)\n        config.add_forbidden_view(view=view, renderer=null_renderer)\n        wrapper = self._getViewCallable(\n            config,\n            exc_iface=implementedBy(HTTPForbidden),\n            request_iface=IRequest,\n        )\n        context = DummyContext()\n        directlyProvides(context, IDummy)\n        request = self._makeRequest(config)\n>       self.assertEqual(wrapper(context, request), 'OK')\n\nr2e_tests/test_config/test_views.py:2722: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/views.py:170: in attr_view\n    return view(context, request)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ncontext = <r2e_tests.test_config.test_views.DummyContext object at 0x719120581580>\nrequest = <r2e_tests.test_config.test_views.DummyRequest object at 0x7191201e0820>\n\n    def predicate_wrapper(context, request):\n        for predicate in preds:\n            if not predicate(context, request):\n                view_name = getattr(view, '__name__', view)\n>               raise PredicateMismatch(\n                    'predicate mismatch for view %s (%s)'\n                    % (view_name, predicate.text())\n                )\nE               pyramid.exceptions.PredicateMismatch: predicate mismatch for view view (containment = tests.test_config.IDummy)\n\nsrc/pyramid/config/views.py:192: PredicateMismatch\n____ TestViewsConfigurationMixin.test_add_notfound_view_with_view_defaults _____\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_notfound_view_with_view_defaults>\n\n    def test_add_notfound_view_with_view_defaults(self):\n        from zope.interface import directlyProvides, implementedBy\n    \n        from pyramid.exceptions import PredicateMismatch\n        from pyramid.httpexceptions import HTTPNotFound\n        from pyramid.interfaces import IRequest\n        from pyramid.renderers import null_renderer\n    \n        class view:\n            __view_defaults__ = {'containment': 'tests.test_config.IDummy'}\n    \n            def __init__(self, request):\n                pass\n    \n            def __call__(self):\n                return 'OK'\n    \n        config = self._makeOne(autocommit=True)\n        config.add_notfound_view(view=view, renderer=null_renderer)\n        wrapper = self._getViewCallable(\n            config,\n            exc_iface=implementedBy(HTTPNotFound),\n            request_iface=IRequest,\n        )\n        context = DummyContext()\n        directlyProvides(context, IDummy)\n        request = self._makeRequest(config)\n>       self.assertEqual(wrapper(context, request), 'OK')\n\nr2e_tests/test_config/test_views.py:2890: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/views.py:170: in attr_view\n    return view(context, request)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ncontext = <r2e_tests.test_config.test_views.DummyContext object at 0x71911fd342e0>\nrequest = <r2e_tests.test_config.test_views.DummyRequest object at 0x71911fd34d00>\n\n    def predicate_wrapper(context, request):\n        for predicate in preds:\n            if not predicate(context, request):\n                view_name = getattr(view, '__name__', view)\n>               raise PredicateMismatch(\n                    'predicate mismatch for view %s (%s)'\n                    % (view_name, predicate.text())\n                )\nE               pyramid.exceptions.PredicateMismatch: predicate mismatch for view view (containment = tests.test_config.IDummy)\n\nsrc/pyramid/config/views.py:192: PredicateMismatch\n____ TestViewsConfigurationMixin.test_add_static_view_package_here_relative ____\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_static_view_package_here_relative>\n\n    def test_add_static_view_package_here_relative(self):\n        from pyramid.interfaces import IStaticURLInfo\n    \n        info = DummyStaticURLInfo()\n        config = self._makeOne(autocommit=True)\n        config.registry.registerUtility(info, IStaticURLInfo)\n        config.add_static_view('static', 'files')\n>       self.assertEqual(\n            info.added, [(config, 'static', 'tests.test_config:files', {})]\n        )\nE       AssertionError: Lists differ: [(<py[35 chars] 0x71911fe1c190>, 'static', 'r2e_tests.test_config:files', {})] != [(<py[35 chars] 0x71911fe1c190>, 'static', 'tests.test_config:files', {})]\nE       \nE       First differing element 0:\nE       (<pyr[33 chars]t 0x71911fe1c190>, 'static', 'r2e_tests.test_config:files', {})\nE       (<pyr[33 chars]t 0x71911fe1c190>, 'static', 'tests.test_config:files', {})\nE       \nE         [(<pyramid.config.Configurator object at 0x71911fe1c190>,\nE           'static',\nE       -   'r2e_tests.test_config:files',\nE       ?    ----\nE       \nE       +   'tests.test_config:files',\nE           {})]\n\nr2e_tests/test_config/test_views.py:2602: AssertionError\n_______ TestViewsConfigurationMixin.test_add_view_context_as_dottedname ________\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_context_as_dottedname>\n\n    def test_add_view_context_as_dottedname(self):\n        from pyramid.renderers import null_renderer\n    \n        view = lambda *arg: 'OK'\n        config = self._makeOne(autocommit=True)\n        config.add_view(\n            context='tests.test_config.IDummy',\n            view=view,\n            renderer=null_renderer,\n        )\n        wrapper = self._getViewCallable(config, IDummy)\n>       self.assertEqual(wrapper, view)\nE       AssertionError: None != <function TestViewsConfigurationMixin.tes[64 chars]a430>\n\nr2e_tests/test_config/test_views.py:458: AssertionError\n_________ TestViewsConfigurationMixin.test_add_view_for__as_dottedname _________\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_for__as_dottedname>\n\n    def test_add_view_for__as_dottedname(self):\n        from pyramid.renderers import null_renderer\n    \n        view = lambda *arg: 'OK'\n        config = self._makeOne(autocommit=True)\n        config.add_view(\n            for_='tests.test_config.IDummy', view=view, renderer=null_renderer\n        )\n        wrapper = self._getViewCallable(config, IDummy)\n>       self.assertEqual(wrapper, view)\nE       AssertionError: None != <function TestViewsConfigurationMixin.tes[61 chars]1820>\n\nr2e_tests/test_config/test_views.py:469: AssertionError\n____ TestViewsConfigurationMixin.test_add_view_with_containment_dottedname _____\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_with_containment_dottedname>\n\n    def test_add_view_with_containment_dottedname(self):\n        from zope.interface import directlyProvides\n    \n        from pyramid.renderers import null_renderer\n    \n        view = lambda *arg: 'OK'\n        config = self._makeOne(autocommit=True)\n        config.add_view(\n            view=view,\n            containment='tests.test_config.IDummy',\n            renderer=null_renderer,\n        )\n        wrapper = self._getViewCallable(config)\n        context = DummyContext()\n        directlyProvides(context, IDummy)\n>       self.assertEqual(wrapper(context, None), 'OK')\n\nr2e_tests/test_config/test_views.py:1973: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/views.py:170: in attr_view\n    return view(context, request)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ncontext = <r2e_tests.test_config.test_views.DummyContext object at 0x71911f480220>\nrequest = None\n\n    def predicate_wrapper(context, request):\n        for predicate in preds:\n            if not predicate(context, request):\n                view_name = getattr(view, '__name__', view)\n>               raise PredicateMismatch(\n                    'predicate mismatch for view %s (%s)'\n                    % (view_name, predicate.text())\n                )\nE               pyramid.exceptions.PredicateMismatch: predicate mismatch for view <lambda> (containment = tests.test_config.IDummy)\n\nsrc/pyramid/config/views.py:192: PredicateMismatch\n_______ TestViewsConfigurationMixin.test_add_view_with_template_renderer _______\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_with_template_renderer>\n\n    def test_add_view_with_template_renderer(self):\n        from pyramid.interfaces import ISettings\n        from tests import test_config\n    \n        class view:\n            def __init__(self, context, request):\n                self.request = request\n                self.context = context\n    \n            def __call__(self):\n                return {'a': '1'}\n    \n        config = self._makeOne(autocommit=True)\n        renderer = self._registerRenderer(config)\n        fixture = 'tests.test_config:files/minimal.txt'\n        config.introspection = False\n        config.add_view(view=view, renderer=fixture)\n        wrapper = self._getViewCallable(config)\n        request = self._makeRequest(config)\n        result = wrapper(None, request)\n        self.assertEqual(result.body, b'Hello!')\n        settings = config.registry.queryUtility(ISettings)\n        result = renderer.info\n        self.assertEqual(result.registry, config.registry)\n        self.assertEqual(result.type, '.txt')\n>       self.assertEqual(result.package, test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_views.py:1558: AssertionError\n_ TestViewsConfigurationMixin.test_add_view_with_template_renderer_no_callable _\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_with_template_renderer_no_callable>\n\n    def test_add_view_with_template_renderer_no_callable(self):\n        from pyramid.interfaces import ISettings\n        from tests import test_config\n    \n        config = self._makeOne(autocommit=True)\n        renderer = self._registerRenderer(config)\n        fixture = 'tests.test_config:files/minimal.txt'\n        config.introspection = False\n        config.add_view(view=None, renderer=fixture)\n        wrapper = self._getViewCallable(config)\n        request = self._makeRequest(config)\n        result = wrapper(None, request)\n        self.assertEqual(result.body, b'Hello!')\n        settings = config.registry.queryUtility(ISettings)\n        result = renderer.info\n        self.assertEqual(result.registry, config.registry)\n        self.assertEqual(result.type, '.txt')\n>       self.assertEqual(result.package, test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_views.py:1604: AssertionError\n_________ TestViewsConfigurationMixin.test_add_view_with_view_defaults _________\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_with_view_defaults>\n\n    def test_add_view_with_view_defaults(self):\n        from zope.interface import directlyProvides\n    \n        from pyramid.exceptions import PredicateMismatch\n        from pyramid.renderers import null_renderer\n    \n        class view:\n            __view_defaults__ = {'containment': 'tests.test_config.IDummy'}\n    \n            def __init__(self, request):\n                pass\n    \n            def __call__(self):\n                return 'OK'\n    \n        config = self._makeOne(autocommit=True)\n        config.add_view(view=view, renderer=null_renderer)\n        wrapper = self._getViewCallable(config)\n        context = DummyContext()\n        directlyProvides(context, IDummy)\n        request = self._makeRequest(config)\n>       self.assertEqual(wrapper(context, request), 'OK')\n\nr2e_tests/test_config/test_views.py:2253: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/views.py:170: in attr_view\n    return view(context, request)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ncontext = <r2e_tests.test_config.test_views.DummyContext object at 0x71911fa40070>\nrequest = <r2e_tests.test_config.test_views.DummyRequest object at 0x71911fc432e0>\n\n    def predicate_wrapper(context, request):\n        for predicate in preds:\n            if not predicate(context, request):\n                view_name = getattr(view, '__name__', view)\n>               raise PredicateMismatch(\n                    'predicate mismatch for view %s (%s)'\n                    % (view_name, predicate.text())\n                )\nE               pyramid.exceptions.PredicateMismatch: predicate mismatch for view view (containment = tests.test_config.IDummy)\n\nsrc/pyramid/config/views.py:192: PredicateMismatch\n_ TestViewsConfigurationMixin.test_add_view_with_view_defaults_viewname_is_dottedname_kwarg _\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_with_view_defaults_viewname_is_dottedname_kwarg>\n\n    def test_add_view_with_view_defaults_viewname_is_dottedname_kwarg(self):\n        from zope.interface import directlyProvides\n    \n        from pyramid.exceptions import PredicateMismatch\n        from pyramid.renderers import null_renderer\n    \n        config = self._makeOne(autocommit=True)\n        config.add_view(\n            view='tests.test_config.test_views.DummyViewDefaultsClass',\n            renderer=null_renderer,\n        )\n        wrapper = self._getViewCallable(config)\n        context = DummyContext()\n        directlyProvides(context, IDummy)\n        request = self._makeRequest(config)\n>       self.assertEqual(wrapper(context, request), 'OK')\n\nr2e_tests/test_config/test_views.py:2273: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/views.py:170: in attr_view\n    return view(context, request)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ncontext = <r2e_tests.test_config.test_views.DummyContext object at 0x71911f4b0b50>\nrequest = <r2e_tests.test_config.test_views.DummyRequest object at 0x71911f3ccd60>\n\n    def predicate_wrapper(context, request):\n        for predicate in preds:\n            if not predicate(context, request):\n                view_name = getattr(view, '__name__', view)\n>               raise PredicateMismatch(\n                    'predicate mismatch for view %s (%s)'\n                    % (view_name, predicate.text())\n                )\nE               pyramid.exceptions.PredicateMismatch: predicate mismatch for view DummyViewDefaultsClass (containment = tests.test_config.IDummy)\n\nsrc/pyramid/config/views.py:192: PredicateMismatch\n_ TestViewsConfigurationMixin.test_add_view_with_view_defaults_viewname_is_dottedname_nonkwarg _\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_with_view_defaults_viewname_is_dottedname_nonkwarg>\n\n    def test_add_view_with_view_defaults_viewname_is_dottedname_nonkwarg(self):\n        from zope.interface import directlyProvides\n    \n        from pyramid.exceptions import PredicateMismatch\n        from pyramid.renderers import null_renderer\n    \n        config = self._makeOne(autocommit=True)\n        config.add_view(\n            'tests.test_config.test_views.DummyViewDefaultsClass',\n            renderer=null_renderer,\n        )\n        wrapper = self._getViewCallable(config)\n        context = DummyContext()\n        directlyProvides(context, IDummy)\n        request = self._makeRequest(config)\n>       self.assertEqual(wrapper(context, request), 'OK')\n\nr2e_tests/test_config/test_views.py:2293: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/views.py:170: in attr_view\n    return view(context, request)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ncontext = <r2e_tests.test_config.test_views.DummyContext object at 0x71911fdb2580>\nrequest = <r2e_tests.test_config.test_views.DummyRequest object at 0x71911fdb2850>\n\n    def predicate_wrapper(context, request):\n        for predicate in preds:\n            if not predicate(context, request):\n                view_name = getattr(view, '__name__', view)\n>               raise PredicateMismatch(\n                    'predicate mismatch for view %s (%s)'\n                    % (view_name, predicate.text())\n                )\nE               pyramid.exceptions.PredicateMismatch: predicate mismatch for view DummyViewDefaultsClass (containment = tests.test_config.IDummy)\n\nsrc/pyramid/config/views.py:192: PredicateMismatch\n_________ TestStaticURLInfo.test_generate_url_cachebust_with_overrides _________\n\nself = <r2e_tests.test_config.test_views.TestStaticURLInfo testMethod=test_generate_url_cachebust_with_overrides>\n\n    def test_generate_url_cachebust_with_overrides(self):\n        config = testing.setUp()\n        try:\n            request = testing.DummyRequest()\n            config.add_static_view('static', 'path')\n            config.override_asset(\n                'tests.test_config:path/', 'tests.test_config:other_path/'\n            )\n    \n            def cb(val):\n                def cb_(request, subpath, kw):\n                    kw['_query'] = {'x': val}\n                    return subpath, kw\n    \n                return cb_\n    \n            config.add_cache_buster('path', cb('foo'))\n            result = request.static_url('path/foo.png')\n            self.assertEqual(result, 'http://example.com/static/foo.png?x=foo')\n            config.add_cache_buster('other_path', cb('bar'), explicit=True)\n            result = request.static_url('path/foo.png')\n>           self.assertEqual(result, 'http://example.com/static/foo.png?x=bar')\nE           AssertionError: 'http://example.com/static/foo.png?x=foo' != 'http://example.com/static/foo.png?x=bar'\nE           - http://example.com/static/foo.png?x=foo\nE           ?                                     ^^^\nE           + http://example.com/static/foo.png?x=bar\nE           ?                                     ^^^\n\nr2e_tests/test_config/test_views.py:4085: AssertionError\n___________________ Test_view_description.test_without_text ____________________\n\nself = <r2e_tests.test_config.test_views.Test_view_description testMethod=test_without_text>\n\n    def test_without_text(self):\n        def view():  # pragma: no cover\n            pass\n    \n        result = self._callFUT(view)\n>       self.assertEqual(result, 'function tests.test_config.test_views.view')\nE       AssertionError: 'function r2e_tests.test_config.test_views.view' != 'function tests.test_config.test_views.view'\nE       - function r2e_tests.test_config.test_views.view\nE       ?          ----\nE       + function tests.test_config.test_views.view\n\nr2e_tests/test_config/test_views.py:4289: AssertionError\n______________________ TestPRoutesCommand.test_class_view ______________________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_class_view>\n\n    def test_class_view(self):\n        from pyramid.renderers import null_renderer as nr\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b')\n        config.add_view(\n            route_name='foo',\n            view=dummy.DummyView,\n            attr='view',\n            renderer=nr,\n            request_method='POST',\n        )\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.dummy.DummyView.view',\n            'POST',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.dummy.DummyView.view', 'POST'] != ['foo', '/a/b', 'tests.test_scripts.dummy.DummyView.view', 'POST']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.dummy.DummyView.view'\nE       'tests.test_scripts.dummy.DummyView.view'\nE       \nE       - ['foo', '/a/b', 'r2e_tests.test_scripts.dummy.DummyView.view', 'POST']\nE       ?                  ----\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.dummy.DummyView.view', 'POST']\n\nr2e_tests/test_scripts/test_proutes.py:247: AssertionError\n_________ TestPRoutesCommand.test_one_route_all_methods_view_only_post _________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_one_route_all_methods_view_only_post>\n\n    def test_one_route_all_methods_view_only_post(self):\n        from pyramid.renderers import null_renderer as nr\n    \n        def view1(context, request):  # pragma: no cover\n            return 'view1'\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b')\n        config.add_view(\n            route_name='foo', view=view1, renderer=nr, request_method='POST'\n        )\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.test_proutes.view1',\n            'POST',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'POST'] != ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'POST']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'tests.test_scripts.test_proutes.view1'\nE       \nE       - ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'POST']\nE       ?                  ----\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'POST']\n\nr2e_tests/test_scripts/test_proutes.py:362: AssertionError\n_________ TestPRoutesCommand.test_one_route_only_post_view_all_methods _________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_one_route_only_post_view_all_methods>\n\n    def test_one_route_only_post_view_all_methods(self):\n        from pyramid.renderers import null_renderer as nr\n    \n        def view1(context, request):  # pragma: no cover\n            return 'view1'\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b', request_method='POST')\n        config.add_view(route_name='foo', view=view1, renderer=nr)\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.test_proutes.view1',\n            'POST',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'POST'] != ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'POST']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'tests.test_scripts.test_proutes.view1'\nE       \nE       - ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'POST']\nE       ?                  ----\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'POST']\n\nr2e_tests/test_scripts/test_proutes.py:388: AssertionError\n________ TestPRoutesCommand.test_one_route_only_post_view_post_and_get _________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_one_route_only_post_view_post_and_get>\n\n    def test_one_route_only_post_view_post_and_get(self):\n        from pyramid.renderers import null_renderer as nr\n    \n        def view1(context, request):  # pragma: no cover\n            return 'view1'\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b', request_method='POST')\n        config.add_view(\n            route_name='foo',\n            view=view1,\n            renderer=nr,\n            request_method=('POST', 'GET'),\n        )\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.test_proutes.view1',\n            'POST',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'POST'] != ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'POST']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'tests.test_scripts.test_proutes.view1'\nE       \nE       - ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'POST']\nE       ?                  ----\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'POST']\n\nr2e_tests/test_scripts/test_proutes.py:419: AssertionError\n_____ TestPRoutesCommand.test_one_route_with_long_name_one_view_registered _____\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_one_route_with_long_name_one_view_registered>\n\n    def test_one_route_with_long_name_one_view_registered(self):\n        from zope.interface import Interface\n    \n        from pyramid.interfaces import IRouteRequest, IView, IViewClassifier\n    \n        registry = self._makeRegistry()\n    \n        def view():  # pragma: no cover\n            pass\n    \n        class IMyRoute(Interface):\n            pass\n    \n        registry.registerAdapter(\n            view, (IViewClassifier, IMyRoute, Interface), IView, ''\n        )\n    \n        registry.registerUtility(\n            IMyRoute, IRouteRequest, name='very_long_name_123'\n        )\n    \n        command = self._makeOne()\n        route = dummy.DummyRoute(\n            'very_long_name_123', '/and_very_long_pattern_as_well'\n        )\n        mapper = dummy.DummyMapper(route)\n        command._get_mapper = lambda *arg: mapper\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()[:3]\n>       self.assertEqual(\n            compare_to,\n            [\n                'very_long_name_123',\n                '/and_very_long_pattern_as_well',\n                'tests.test_scripts.test_proutes.view',\n            ],\n        )\nE       AssertionError: Lists differ: ['ver[32 chars]g_pattern_as_well', 'r2e_tests.test_scripts.test_proutes.view'] != ['ver[32 chars]g_pattern_as_well', 'tests.test_scripts.test_proutes.view']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view'\nE       'tests.test_scripts.test_proutes.view'\nE       \nE         ['very_long_name_123',\nE          '/and_very_long_pattern_as_well',\nE       -  'r2e_tests.test_scripts.test_proutes.view']\nE       ?   ----\nE       \nE       +  'tests.test_scripts.test_proutes.view']\n\nr2e_tests/test_scripts/test_proutes.py:211: AssertionError\n______ TestPRoutesCommand.test_route_is_get_view_request_method_not_post _______\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_route_is_get_view_request_method_not_post>\n\n    def test_route_is_get_view_request_method_not_post(self):\n        from pyramid.config import not_\n        from pyramid.renderers import null_renderer as nr\n    \n        def view1(context, request):  # pragma: no cover\n            return 'view1'\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b', request_method='GET')\n        config.add_view(\n            route_name='foo',\n            view=view1,\n            renderer=nr,\n            request_method=not_('POST'),\n        )\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.test_proutes.view1',\n            'GET',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'GET'] != ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'GET']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'tests.test_scripts.test_proutes.view1'\nE       \nE       - ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'GET']\nE       ?                  ----\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'GET']\n\nr2e_tests/test_scripts/test_proutes.py:559: AssertionError\n____________ TestPRoutesCommand.test_route_request_method_mismatch _____________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_route_request_method_mismatch>\n\n    def test_route_request_method_mismatch(self):\n        from pyramid.renderers import null_renderer as nr\n    \n        def view1(context, request):  # pragma: no cover\n            return 'view1'\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b', request_method='POST')\n        config.add_view(\n            route_name='foo', view=view1, renderer=nr, request_method='GET'\n        )\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.test_proutes.view1',\n            '<route',\n            'mismatch>',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1[20 chars]ch>'] != ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', '[16 chars]ch>']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'tests.test_scripts.test_proutes.view1'\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', '<route', 'mismatch>']\nE       - ['foo',\nE       -  '/a/b',\nE       -  'r2e_tests.test_scripts.test_proutes.view1',\nE       -  '<route',\nE       -  'mismatch>']\n\nr2e_tests/test_scripts/test_proutes.py:448: AssertionError\n__________________ TestPRoutesCommand.test_route_static_views __________________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_route_static_views>\n\n    def test_route_static_views(self):\n        config = self._makeConfig(autocommit=True)\n        config.add_static_view('static', 'static', cache_max_age=3600)\n        path2 = os.path.normpath('/var/www/static')\n        config.add_static_view(name='static2', path=path2)\n        config.add_static_view(\n            name='pyramid_scaffold',\n            path='pyramid:scaffolds/starter/+package+/static',\n        )\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 5)\n    \n        expected = [\n            [\n                '__static/',\n                '/static/*subpath',\n                'tests.test_scripts:static/',\n                '*',\n            ],\n            ['__static2/', '/static2/*subpath', path2 + os.sep, '*'],\n            [\n                '__pyramid_scaffold/',\n                '/pyramid_scaffold/*subpath',\n                'pyramid:scaffolds/starter/+package+/static/',\n                '*',\n            ],\n        ]\n    \n        for index, line in enumerate(L[2:]):\n            data = line.split()\n>           self.assertEqual(data, expected[index])\nE           AssertionError: Lists differ: ['__static/', '/static/*subpath', 'r2e_tests.test_scripts:static/', '*'] != ['__static/', '/static/*subpath', 'tests.test_scripts:static/', '*']\nE           \nE           First differing element 2:\nE           'r2e_tests.test_scripts:static/'\nE           'tests.test_scripts:static/'\nE           \nE           - ['__static/', '/static/*subpath', 'r2e_tests.test_scripts:static/', '*']\nE           ?                                    ----\nE           \nE           + ['__static/', '/static/*subpath', 'tests.test_scripts:static/', '*']\n\nr2e_tests/test_scripts/test_proutes.py:486: AssertionError\n__________ TestPRoutesCommand.test_single_route_multiview_registered ___________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_single_route_multiview_registered>\n\n    def test_single_route_multiview_registered(self):\n        from zope.interface import Interface\n    \n        from pyramid.interfaces import (\n            IMultiView,\n            IRouteRequest,\n            IViewClassifier,\n        )\n    \n        registry = self._makeRegistry()\n    \n        def view():  # pragma: no cover\n            pass\n    \n        class IMyRoute(Interface):\n            pass\n    \n        multiview1 = dummy.DummyMultiView(\n            view, context='context', view_name='a1'\n        )\n    \n        registry.registerAdapter(\n            multiview1, (IViewClassifier, IMyRoute, Interface), IMultiView, ''\n        )\n        registry.registerUtility(IMyRoute, IRouteRequest, name='a')\n        command = self._makeOne()\n        route = dummy.DummyRoute('a', '/a')\n        mapper = dummy.DummyMapper(route)\n        command._get_mapper = lambda *arg: mapper\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()[:3]\n        view_module = 'tests.test_scripts.dummy'\n        view_str = '<tests.test_scripts.dummy.DummyMultiView'\n        final = f'{view_module}.{view_str}'\n    \n>       self.assertEqual(compare_to, ['a', '/a', final])\nE       AssertionError: Lists differ: ['a', '/a', 'r2e_tests.test_scripts.dummy.<r2e_tests.t[29 chars]iew'] != ['a', '/a', 'tests.test_scripts.dummy.<tests.test_scri[21 chars]iew']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.dummy.<r2e_tests.test_scripts.dummy.DummyMultiView'\nE       'tests.test_scripts.dummy.<tests.test_scripts.dummy.DummyMultiView'\nE       \nE       - ['a',\nE       -  '/a',\nE       -  'r2e_tests.test_scripts.dummy.<r2e_tests.test_scripts.dummy.DummyMultiView']\nE       ? ^ ^^^^                          ----\nE       \nE       + ['a', '/a', 'tests.test_scripts.dummy.<tests.test_scripts.dummy.DummyMultiView']\nE       ? ^ ^^^^^^^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:325: AssertionError\n___________ TestPRoutesCommand.test_single_route_one_view_registered ___________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_single_route_one_view_registered>\n\n    def test_single_route_one_view_registered(self):\n        from zope.interface import Interface\n    \n        from pyramid.interfaces import IRouteRequest, IView, IViewClassifier\n    \n        registry = self._makeRegistry()\n    \n        def view():  # pragma: no cover\n            pass\n    \n        class IMyRoute(Interface):\n            pass\n    \n        registry.registerAdapter(\n            view, (IViewClassifier, IMyRoute, Interface), IView, ''\n        )\n        registry.registerUtility(IMyRoute, IRouteRequest, name='a')\n        command = self._makeOne()\n        route = dummy.DummyRoute('a', '/a')\n        mapper = dummy.DummyMapper(route)\n        command._get_mapper = lambda *arg: mapper\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()[:3]\n>       self.assertEqual(\n            compare_to, ['a', '/a', 'tests.test_scripts.test_proutes.view']\n        )\nE       AssertionError: Lists differ: ['a', '/a', 'r2e_tests.test_scripts.test_proutes.view'] != ['a', '/a', 'tests.test_scripts.test_proutes.view']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view'\nE       'tests.test_scripts.test_proutes.view'\nE       \nE       - ['a', '/a', 'r2e_tests.test_scripts.test_proutes.view']\nE       ?              ----\nE       \nE       + ['a', '/a', 'tests.test_scripts.test_proutes.view']\n\nr2e_tests/test_scripts/test_proutes.py:173: AssertionError\n______________________ TestPRoutesCommand.test_view_glob _______________________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_view_glob>\n\n    def test_view_glob(self):\n        from pyramid.config import not_\n        from pyramid.renderers import null_renderer as nr\n    \n        def view1(context, request):  # pragma: no cover\n            return 'view1'\n    \n        def view2(context, request):  # pragma: no cover\n            return 'view2'\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b')\n        config.add_view(\n            route_name='foo',\n            view=view1,\n            renderer=nr,\n            request_method=not_('POST'),\n        )\n    \n        config.add_route('bar', '/b/a')\n        config.add_view(\n            route_name='bar',\n            view=view2,\n            renderer=nr,\n            request_method=not_('POST'),\n        )\n    \n        command = self._makeOne()\n        command.args.glob = '*foo*'\n    \n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.test_proutes.view1',\n            '!POST,*',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', '!POST,*'] != ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', '!POST,*']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'tests.test_scripts.test_proutes.view1'\nE       \nE       - ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', '!POST,*']\nE       ?                  ----\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', '!POST,*']\n\nr2e_tests/test_scripts/test_proutes.py:636: AssertionError\n_____________ TestPRoutesCommand.test_view_request_method_not_post _____________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_view_request_method_not_post>\n\n    def test_view_request_method_not_post(self):\n        from pyramid.config import not_\n        from pyramid.renderers import null_renderer as nr\n    \n        def view1(context, request):  # pragma: no cover\n            return 'view1'\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b')\n        config.add_view(\n            route_name='foo',\n            view=view1,\n            renderer=nr,\n            request_method=not_('POST'),\n        )\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.test_proutes.view1',\n            '!POST,*',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', '!POST,*'] != ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', '!POST,*']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'tests.test_scripts.test_proutes.view1'\nE       \nE       - ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', '!POST,*']\nE       ?                  ----\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', '!POST,*']\n\nr2e_tests/test_scripts/test_proutes.py:591: AssertionError\n_____________ TestPServeCommand.test_config_file_finds_watch_files _____________\n\nself = <r2e_tests.test_scripts.test_pserve.TestPServeCommand testMethod=test_config_file_finds_watch_files>\n\n    def test_config_file_finds_watch_files(self):\n        inst = self._makeOne('development.ini')\n        loader = self.loader('/base/path.ini')\n        loader.settings = {\n            'pserve': {'watch_files': 'foo\\n/baz\\ntests.test_scripts:*.py'}\n        }\n        inst.pserve_file_config(loader, global_conf={'a': '1'})\n        self.assertEqual(loader.calls[0]['defaults'], {'a': '1'})\n>       self.assertEqual(\n            inst.watch_files,\n            {\n                os.path.abspath('/base/foo'),\n                os.path.abspath('/baz'),\n                os.path.abspath(os.path.join(here, '*.py')),\n            },\n        )\nE       AssertionError: Items in the first set but not the second:\nE       '/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_scripts/*.py'\nE       Items in the second set but not the first:\nE       '/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_scripts/*.py'\n\nr2e_tests/test_scripts/test_pserve.py:92: AssertionError\n____________ TestPViewsCommand.test_views_command_multi_view_nested ____________\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_multi_view_nested>\n\n    def test_views_command_multi_view_nested(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n        view1 = dummy.DummyView(context='context', view_name='a1')\n        view1.__name__ = 'view1'\n        view1.__view_attr__ = 'call'\n        multiview1 = dummy.DummyMultiView(\n            view1, context='context', view_name='a1'\n        )\n        multiview2 = dummy.DummyMultiView(\n            multiview1, context='context', view_name='a'\n        )\n        command._find_view = lambda arg1: multiview2\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.dummy.DummyMultiView')\nE       AssertionError: '    r2e_tests.test_scripts.dummy.DummyMultiView' != '    tests.test_scripts.dummy.DummyMultiView'\nE       -     r2e_tests.test_scripts.dummy.DummyMultiView\nE       ?     ----\nE       +     tests.test_scripts.dummy.DummyMultiView\n\nr2e_tests/test_scripts/test_pviews.py:475: AssertionError\n________________ TestPViewsCommand.test_views_command_multiview ________________\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_multiview>\n\n    def test_views_command_multiview(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n        view = dummy.DummyView(context='context')\n        view.__name__ = 'view'\n        view.__view_attr__ = 'call'\n        multiview = dummy.DummyMultiView(\n            view, context='context', view_name='a'\n        )\n        command._find_view = lambda arg1: multiview\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.dummy.view.call')\nE       AssertionError: '    r2e_tests.test_scripts.dummy.view.call' != '    tests.test_scripts.dummy.view.call'\nE       -     r2e_tests.test_scripts.dummy.view.call\nE       ?     ----\nE       +     tests.test_scripts.dummy.view.call\n\nr2e_tests/test_scripts/test_pviews.py:531: AssertionError\n________ TestPViewsCommand.test_views_command_multiview_with_permission ________\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_multiview_with_permission>\n\n    def test_views_command_multiview_with_permission(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n        view = dummy.DummyView(context='context')\n        view.__name__ = 'view'\n        view.__view_attr__ = 'call'\n        view.__permission__ = 'test'\n        multiview = dummy.DummyMultiView(\n            view, context='context', view_name='a'\n        )\n        command._find_view = lambda arg1: multiview\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.dummy.view.call')\nE       AssertionError: '    r2e_tests.test_scripts.dummy.view.call' != '    tests.test_scripts.dummy.view.call'\nE       -     r2e_tests.test_scripts.dummy.view.call\nE       ?     ----\nE       +     tests.test_scripts.dummy.view.call\n\nr2e_tests/test_scripts/test_pviews.py:555: AssertionError\n________ TestPViewsCommand.test_views_command_multiview_with_predicates ________\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_multiview_with_predicates>\n\n    def test_views_command_multiview_with_predicates(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n    \n        def predicate():  # pragma: no cover\n            pass\n    \n        predicate.text = lambda *arg: \"predicate = x\"\n        view = dummy.DummyView(context='context')\n        view.__name__ = 'view'\n        view.__view_attr__ = 'call'\n        view.__predicates__ = [predicate]\n        multiview = dummy.DummyMultiView(\n            view, context='context', view_name='a'\n        )\n        command._find_view = lambda arg1: multiview\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.dummy.view.call')\nE       AssertionError: '    r2e_tests.test_scripts.dummy.view.call' != '    tests.test_scripts.dummy.view.call'\nE       -     r2e_tests.test_scripts.dummy.view.call\nE       ?     ----\nE       +     tests.test_scripts.dummy.view.call\n\nr2e_tests/test_scripts/test_pviews.py:585: AssertionError\n_____ TestPViewsCommand.test_views_command_single_view_function_traversal ______\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_single_view_function_traversal>\n\n    def test_views_command_single_view_function_traversal(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n    \n        def view():  # pragma: no cover\n            pass\n    \n        view.__request_attrs__ = {'context': 'context', 'view_name': 'a'}\n        command._find_view = lambda arg1: view\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.test_pviews.view')\nE       AssertionError: '    r2e_tests.test_scripts.test_pviews.view' != '    tests.test_scripts.test_pviews.view'\nE       -     r2e_tests.test_scripts.test_pviews.view\nE       ?     ----\nE       +     tests.test_scripts.test_pviews.view\n\nr2e_tests/test_scripts/test_pviews.py:378: AssertionError\n____________ TestPViewsCommand.test_views_command_single_view_route ____________\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_single_view_route>\n\n    def test_views_command_single_view_route(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n        route = dummy.DummyRoute('a', '/a', matchdict={})\n        view = dummy.DummyView(\n            context='context', view_name='a', matched_route=route, subpath=''\n        )\n        command._find_view = lambda arg1: view\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n        self.assertEqual(L[6], '    Route:')\n        self.assertEqual(L[8], '    route name: a')\n        self.assertEqual(L[9], '    route pattern: /a')\n        self.assertEqual(L[10], '    route path: /a')\n        self.assertEqual(L[11], '    subpath: ')\n>       self.assertEqual(L[15], '        tests.test_scripts.dummy.DummyView')\nE       AssertionError: '        r2e_tests.test_scripts.dummy.DummyView' != '        tests.test_scripts.dummy.DummyView'\nE       -         r2e_tests.test_scripts.dummy.DummyView\nE       ?         ----\nE       +         tests.test_scripts.dummy.DummyView\n\nr2e_tests/test_scripts/test_pviews.py:449: AssertionError\n_ TestPViewsCommand.test_views_command_single_view_route_with_route_predicates _\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_single_view_route_with_route_predicates>\n\n    def test_views_command_single_view_route_with_route_predicates(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n    \n        def predicate():  # pragma: no cover\n            pass\n    \n        predicate.text = lambda *arg: \"predicate = x\"\n        route = dummy.DummyRoute('a', '/a', matchdict={}, predicate=predicate)\n        view = dummy.DummyView(\n            context='context', view_name='a', matched_route=route, subpath=''\n        )\n        command._find_view = lambda arg1: view\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n        self.assertEqual(L[6], '    Route:')\n        self.assertEqual(L[8], '    route name: a')\n        self.assertEqual(L[9], '    route pattern: /a')\n        self.assertEqual(L[10], '    route path: /a')\n        self.assertEqual(L[11], '    subpath: ')\n        self.assertEqual(L[12], '    route predicates (predicate = x)')\n>       self.assertEqual(L[16], '        tests.test_scripts.dummy.DummyView')\nE       AssertionError: '        r2e_tests.test_scripts.dummy.DummyView' != '        tests.test_scripts.dummy.DummyView'\nE       -         r2e_tests.test_scripts.dummy.DummyView\nE       ?         ----\nE       +         tests.test_scripts.dummy.DummyView\n\nr2e_tests/test_scripts/test_pviews.py:508: AssertionError\n__________ TestPViewsCommand.test_views_command_single_view_traversal __________\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_single_view_traversal>\n\n    def test_views_command_single_view_traversal(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n        view = dummy.DummyView(context='context', view_name='a')\n        command._find_view = lambda arg1: view\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.dummy.DummyView')\nE       AssertionError: '    r2e_tests.test_scripts.dummy.DummyView' != '    tests.test_scripts.dummy.DummyView'\nE       -     r2e_tests.test_scripts.dummy.DummyView\nE       ?     ----\nE       +     tests.test_scripts.dummy.DummyView\n\nr2e_tests/test_scripts/test_pviews.py:356: AssertionError\n__ TestPViewsCommand.test_views_command_single_view_traversal_with_permission __\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_single_view_traversal_with_permission>\n\n    def test_views_command_single_view_traversal_with_permission(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n        view = dummy.DummyView(context='context', view_name='a')\n        view.__permission__ = 'test'\n        command._find_view = lambda arg1: view\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.dummy.DummyView')\nE       AssertionError: '    r2e_tests.test_scripts.dummy.DummyView' != '    tests.test_scripts.dummy.DummyView'\nE       -     r2e_tests.test_scripts.dummy.DummyView\nE       ?     ----\nE       +     tests.test_scripts.dummy.DummyView\n\nr2e_tests/test_scripts/test_pviews.py:397: AssertionError\n__ TestPViewsCommand.test_views_command_single_view_traversal_with_predicates __\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_single_view_traversal_with_predicates>\n\n    def test_views_command_single_view_traversal_with_predicates(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n    \n        def predicate():  # pragma: no cover\n            pass\n    \n        predicate.text = lambda *arg: \"predicate = x\"\n        view = dummy.DummyView(context='context', view_name='a')\n        view.__predicates__ = [predicate]\n        command._find_view = lambda arg1: view\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.dummy.DummyView')\nE       AssertionError: '    r2e_tests.test_scripts.dummy.DummyView' != '    tests.test_scripts.dummy.DummyView'\nE       -     r2e_tests.test_scripts.dummy.DummyView\nE       ?     ----\nE       +     tests.test_scripts.dummy.DummyView\n\nr2e_tests/test_scripts/test_pviews.py:422: AssertionError\n=============================== warnings summary ===============================\nsrc/pyramid/path.py:3\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/src/pyramid/path.py:3: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html\n    import pkg_resources\n\n.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('paste')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    declare_namespace(pkg)\n\n.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154\n.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154\n.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154\n.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154\n.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('zope')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    declare_namespace(pkg)\n\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authentication_policy\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authorization_policy_only\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy_dottedname\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_dottedname\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_only\nr2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_no_default_permission_no_explicit_permission\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/src/pyramid/config/__init__.py:405: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    self.set_authorization_policy(authorization_policy)\n\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authentication_policy\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy_dottedname\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_dottedname\nr2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_no_default_permission_no_explicit_permission\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/src/pyramid/config/__init__.py:408: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    self.set_authentication_policy(authentication_policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_no_authz_policy\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:37: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authentication_policy(policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_no_authz_policy_autocommit\n  /home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/lib/python3.8/unittest/case.py:202: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    callable_obj(*args, **kwargs)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_authz_policy\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:59: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authentication_policy(authn_policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_authz_policy_autocommit\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:80: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authentication_policy(authn_policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_security_policy\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:31: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authentication_policy(authn_policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_no_authn_policy\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:92: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authorization_policy(policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_no_authn_policy_autocommit\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:100: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authorization_policy(policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_with_authn_policy\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:115: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authorization_policy(authz_policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_with_authn_policy_autocommit\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:131: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authorization_policy(authz_policy)\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n==================================== PASSES ====================================\n=========================== short test summary info ============================\nPASSED r2e_tests/test_1.py::TestBWCompat::test_bwcompat_forbidden\nPASSED r2e_tests/test_1.py::TestBWCompat::test_bwcompat_notfound\nPASSED r2e_tests/test_1.py::TestBadCSRFOrigin::test_response_equivalence\nPASSED r2e_tests/test_1.py::TestBadCSRFToken::test_response_equivalence\nPASSED r2e_tests/test_1.py::TestNotFound::test_it\nPASSED r2e_tests/test_1.py::TestNotFound::test_response_equivalence\nPASSED r2e_tests/test_1.py::TestForbidden::test_it\nPASSED r2e_tests/test_1.py::TestForbidden::test_response_equivalence\nPASSED r2e_tests/test_1.py::TestConfigurationConflictError::test_non_sortable_discriminators_in_str\nPASSED r2e_tests/test_1.py::TestConfigurationConflictError::test_str\nPASSED r2e_tests/test_1.py::TestConfigurationExecutionError::test_str\nPASSED r2e_tests/test_1.py::TestCyclicDependencyError::test___str__\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_autocommit_with_introspectables\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_autocommit_with_introspectables_introspection_off\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_kw_is_None\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_kw_is_not_None\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_nonautocommit_with_config_info\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_nonautocommit_with_introspectables\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_nonautocommit_without_config_info\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_nonautocommit_with_introspectables_introspection_off\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_autocommit_no_conflicts\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_commit_conflict_resolved_with_include\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_commit_conflict_resolved_with_two_includes_and_local\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_commit_conflict_simple\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_commit_conflict_with_two_includes\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_conflict_set_forbidden_view\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_conflict_set_notfound_view\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_action_simple\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_action_with_includepath\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_action_with_includepath_and_info\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_action_with_info\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_action_with_introspectables\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_action_with_order\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_execute_actions_dicts\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_execute_actions_error\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_execute_actions_tuples\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_execute_actions_with_introspectable_no_callable\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_execute_actions_with_introspectables\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_executing_conflicting_action_across_orders\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_executing_conflicting_action_across_reentrant_orders\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_it\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_processSpec\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_reentrant_action\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_reentrant_action_error\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_reentrant_action_with_deferred_discriminator\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_reentrant_action_without_clear\nPASSED r2e_tests/test_config/test_actions.py::Test_reentrant_action_functional::test_deferred_discriminator\nPASSED r2e_tests/test_config/test_actions.py::Test_reentrant_action_functional::test_functional\nPASSED r2e_tests/test_config/test_actions.py::Test_resolveConflicts::test_conflicts_across_orders\nPASSED r2e_tests/test_config/test_actions.py::Test_resolveConflicts::test_it_conflict\nPASSED r2e_tests/test_config/test_actions.py::Test_resolveConflicts::test_it_success_dicts\nPASSED r2e_tests/test_config/test_actions.py::Test_resolveConflicts::test_it_success_tuples\nPASSED r2e_tests/test_config/test_actions.py::Test_resolveConflicts::test_it_with_actions_grouped_by_order\nPASSED r2e_tests/test_config/test_actions.py::Test_resolveConflicts::test_override_success_across_orders\nPASSED r2e_tests/test_config/test_actions.py::TestActionInfo::test___str__\nPASSED r2e_tests/test_config/test_actions.py::TestActionInfo::test_class_conforms\nPASSED r2e_tests/test_config/test_actions.py::TestActionInfo::test_ctor\nPASSED r2e_tests/test_config/test_actions.py::TestActionInfo::test_instance_conforms\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_object_event_subscriber\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_resource_url_default_resource_iface_means_Interface\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_resource_url_nodefault_resource_iface\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_response_adapter\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_response_adapter_dottednames\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_response_adapter_self\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_defaults\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_dottednames\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_iface_specified\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_predicate\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_with_default_type_predicates_False\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_with_default_type_predicates_True\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_with_specific_type_and_predicates_False\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_with_specific_type_and_predicates_True\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_traverser_default_iface_means_Interface\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_traverser_introspectables\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_traverser_nondefault_iface\nPASSED r2e_tests/test_config/test_adapters.py::Test_eventonly::test_defaults\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test__override_already_registered\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test__override_not_yet_registered\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_absdirectory\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_absfile\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_file\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_absdirectory\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_absfile\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_directory\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_missing_abspath\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_package\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_package_with_absdirectory\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_samename\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_filename_override_returns_value\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_stream_no_overrides\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_stream_override_returns_None\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_stream_override_returns_value\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_string_no_overrides\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_string_override_returns_None\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_string_override_returns_value\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_has_resource_no_overrides\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_has_resource_override_returns_None\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_has_resource_override_returns_True\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_resource_isdir_no_overrides\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_resource_isdir_override_returns_False\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_resource_isdir_override_returns_None\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_resource_listdir_no_overrides\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_resource_listdir_override_returns_None\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_resource_listdir_override_returns_values\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_class_conforms_to_IPEP302Loader\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_class_conforms_to_IPackageOverrides\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_package_already_has_loader_of_different_type\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_package_already_has_loader_of_same_type\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_registers_loader_type\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_sets_loader\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_sets_local_state\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_filtered_sources\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_code_pkg_has___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_code_pkg_has_no___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_data_pkg_has___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_data_pkg_has_no___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_filename\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_filename_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_source_pkg_has___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_source_pkg_has_no___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_stream\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_stream_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_string\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_string_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_has_resource\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_has_resource_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_insert_directory\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_insert_emptystring\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_insert_file\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_instance_conforms_to_IPEP302Loader\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_instance_conforms_to_IPackageOverrides\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_is_package_pkg_has___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_is_package_pkg_has_no___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_isdir_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_isdir_false\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_isdir_true\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_listdir\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_listdir_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_exists\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_exists_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_exists_with_prefix\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_filename_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_stream\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_stream_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_stream_with_prefix\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_string\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_string_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_string_with_prefix\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_isdir_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_isdir_false\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_isdir_true\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_listdir\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_listdir_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_exists\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_exists_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_exists_with_prefix\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_filename\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_filename_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_filename_with_prefix\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_stream\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_stream_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_stream_with_prefix\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_string\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_string_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_string_with_prefix\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_isdir_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_isdir_false\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_isdir_true\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_listdir\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_listdir_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestDirectoryOverride::test_it_match\nPASSED r2e_tests/test_config/test_assets.py::TestDirectoryOverride::test_it_no_match\nPASSED r2e_tests/test_config/test_assets.py::TestFileOverride::test_it_match\nPASSED r2e_tests/test_config/test_assets.py::TestFileOverride::test_it_no_match\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_None_callable\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_None_callable_and_no_name\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_None_callable_conflict\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_callable\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_text_name\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_unnamed_callable\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_execution_policy\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_execution_policy_to_None\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_multiple_request_methods_conflict\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_request_factory\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_response_factory\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_root_factory\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_root_factory_as_None\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_session_factory\nPASSED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_invalid_kwargs\nPASSED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_missing_dir\nPASSED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_no_specs\nPASSED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_set_locale_negotiator\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test___getattr__matches\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test___getattr__matches_no_action_wrap\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test___getattr__missing_when_directives_dont_exist\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test___getattr__missing_when_directives_exist\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_adds__lock\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_adds_clear_view_lookup_cache\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_has_listeners\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_notify\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_queryAdapterOrSelf\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_registerSelfAdapter\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_absolute_asset_spec_already_absolute\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_absolute_asset_spec_notastring\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_absolute_asset_spec_relative\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_begin\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_begin_does_not_propagate_request_for_diff_registry\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_begin_overrides_request\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_begin_propagates_request_for_same_registry\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_begin_with_request\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_context_manager\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_alternate_renderers\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authentication_policy\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authorization_policy_only\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_default_permission\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_default_renderers\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_default_view_mapper\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_default_webob_response_adapter_registered\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_exceptionresponse_view_None\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_exceptionresponse_view_custom\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_httpexception_view_default\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_no_root_factory\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_noreg_custom_settings\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_noreg_debug_logger_non_None\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_security_policy\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_session_factory\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_with_introspection\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_with_package_registry\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_with_root_factory\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_end\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_hook_zca\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_threadlocals_active\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_with_dotted_name\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_with_missing_source_file\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_with_module_defaults_to_includeme\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_with_module_defaults_to_includeme_missing\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_with_nested_route_prefix\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_with_route_prefix\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_introspector_decorator\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_make_wsgi_app\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_maybe_dotted_notstring_success\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_maybe_dotted_string_fail\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_maybe_dotted_string_success\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_conflict\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_dottedname_package\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_with_extra_kw\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_with_ignore\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_with_onerror\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_alternate_renderers\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy_dottedname\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_dottedname\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_only\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_calls_fix_registry\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_custom_settings\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_debug_logger_name\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_debug_logger_non_None\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_default_permission\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_dottedname_root_factory\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_explicit_notfound_trumps_iexceptionresponse\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_includes\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_includes_spaces\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_locale_negotiator\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_locale_negotiator_dottedname\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_no_default_root_factory\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_registers_default_exceptionresponse_views\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_registers_default_view_predicates\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_registers_default_webob_iresponse_adapter\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_request_factory\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_request_factory_dottedname\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_response_factory\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_unhook_zca\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_with_package\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_with_package_package\nPASSED r2e_tests/test_config/test_init.py::TestConfigurator_add_directive::test_directive_persists_across_configurator_creations\nPASSED r2e_tests/test_config/test_init.py::TestConfigurator_add_directive::test_extend_action_method_successful\nPASSED r2e_tests/test_config/test_init.py::TestConfigurator_add_directive::test_extend_same_name_doesnt_conflict\nPASSED r2e_tests/test_config/test_init.py::TestConfigurator__add_predicate::test_factory_as_object\nPASSED r2e_tests/test_config/test_init.py::TestGlobalRegistriesIntegration::test_global_registries\nPASSED r2e_tests/test_config/test_init.py::TestGlobalRegistriesIntegration::test_global_registries_empty\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_custom_predicates_can_affect_traversal\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_different_custom_predicates_with_same_hash\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_mixed\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_mixed_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_with_values\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_with_values_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_simple\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_simple_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_with_value\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_with_value_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_with_value_fails_case\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_is_authenticated_false_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_is_authenticated_false_matches\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_is_authenticated_true_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_is_authenticated_true_matches\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_match_param_from_dict\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_match_param_from_dict_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_match_param_from_string\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_match_param_from_string_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_notted\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_ordering_importance_and_number\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_ordering_importance_of_predicates\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_ordering_number_of_predicates\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_ordering_xhr_and_request_method_trump_only_containment\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_predicate_close_matches\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_predicate_text_is_correct\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_predicate_text_is_correct_when_multiple\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_request_method_ordering_hashes_same\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_request_method_sequence\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_traverse_has_remainder_already\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_traverse_matches\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_traverse_matches_with_highorder_chars\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_unknown_predicate\nPASSED r2e_tests/test_config/test_predicates.py::Test_sort_accept_offers::test_default_specificities\nPASSED r2e_tests/test_config/test_predicates.py::Test_sort_accept_offers::test_params_inherit_type_prefs\nPASSED r2e_tests/test_config/test_predicates.py::Test_sort_accept_offers::test_params_order\nPASSED r2e_tests/test_config/test_predicates.py::Test_sort_accept_offers::test_specific_type_order\nPASSED r2e_tests/test_config/test_rendering.py::TestRenderingConfiguratorMixin::test_add_default_renderers\nPASSED r2e_tests/test_config/test_rendering.py::TestRenderingConfiguratorMixin::test_add_renderer\nPASSED r2e_tests/test_config/test_rendering.py::TestRenderingConfiguratorMixin::test_add_renderer_dottedname_factory\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_defaults\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_discriminator\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_effective_principals_deprecated\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_path_no_pattern\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_pattern_with_path\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_view_with_view_attr\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_view_with_view_context\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_view_with_view_permission\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_view_with_view_renderer\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_accept\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_accept_list\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_custom_predicates\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_factory\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_header\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_inherit_errors\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_is_authenticated\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_path_info\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_path_info_highorder\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_path_info_regex\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_pregenerator\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_request_method\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_request_param\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_root_slash_with_route_prefix\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_route_prefix\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_route_prefix_with_inherit_slash\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_static\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_wildcard_accept_raises\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_xhr\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_get_routes_mapper_already_registered\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_get_routes_mapper_not_yet_registered\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_add_permission\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_changing_set_default_csrf_options\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_no_authz_policy\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_no_authz_policy_autocommit\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_authz_policy\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_authz_policy_autocommit\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_security_policy\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_no_authn_policy\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_no_authn_policy_autocommit\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_with_authn_policy\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_with_authn_policy_autocommit\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_default_csrf_options\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_default_permission\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_security_policy\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test__set_settings_as_None\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test__set_settings_as_dictwithvalues\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test__set_settings_does_not_uses_original_dict\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_add_settings_settings_None\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_add_settings_settings_already_registered\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_add_settings_settings_not_yet_registered\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_get_settings_nosettings\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_get_settings_withsettings\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_settings_parameter_dict_is_never_updated\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_csrf_trusted_origins\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_debug_all\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_debug_authorization\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_debug_notfound\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_debug_routematch\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_debug_templates\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_default_locale_name\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_noargs\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_originals_kept\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_prevent_cachebust\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_prevent_http_cache\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_reload_all\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_reload_assets\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_reload_resources\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_reload_templates\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_renderer\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_renderer_explicitrenderer\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_renderer_twice\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_subscriber_defaults\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_subscriber_multiple\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_subscriber_single\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_template\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_resources\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_securitypolicy\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_securitypolicy_forget_result\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_securitypolicy_remember_result\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_instance\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_name_ingress\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_name_main\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_over_ingress\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_over_ingress_iterable\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_under_main\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_under_main_iterable\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_unsuitable\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_conflict\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_names_with_over_nonstringoriter\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_names_with_under_nonstringoriter\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test___call___explicit\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test___call___implicit\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_add_explicit\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_add_implicit\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_1\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_2\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_3\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_4\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_5\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_conflict_direct\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_conflict_indirect\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_over_and_under_partials\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_over_partial\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_over_partial_with_fallback\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_under_partial\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_under_partial_with_fallback\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_with_missing_fallbacks\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_with_multiple_matching_fallbacks\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_with_partial_fallbacks\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_accept_view_order_override\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_accept_view_order_throws_on_type_mismatch\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_accept_view_order_throws_on_wildcard\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_exception_only\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_for_\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_name\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_permission\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_require_csrf\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_with_subclass\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_allows_other_predicates\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_context\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_for_\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_name\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_permission\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_require_csrf\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_no_view_argument\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_with_renderer\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_normal_and_exception_view_intr_derived_callable\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_allows_other_predicates\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_append_slash\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_append_slash_custom_response\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_context\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_for_\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_name\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_permission\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_require_csrf\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_no_view_argument\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_with_renderer\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_static_view_absolute\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_static_view_here_no_utility_registered\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_static_view_package_relative\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_instance\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_instance_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_instancemethod\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_instancemethod_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_oldstyle_class\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_oldstyle_class_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_class_method_no_attr\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_context_as_class\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_context_as_iface\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_context_trumps_for\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_custom_more_preds_first_bests_fewer_preds_last\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_custom_predicate_bests_standard_predicate\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_default_phash_overrides_default_phash\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_default_phash_overrides_no_phash\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_does_not_accept_iterable_accept\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_default_phash_overrides_default_phash\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_default_phash_overrides_no_phash\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_multiview_replaces_existing_securedview\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_multiview_replaces_existing_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_multiview_replaces_multiviews\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_multiview_replaces_only_exc_multiview\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_mulview_replaces_existing_view_with___accept__\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_same_phash_overrides_existing_single_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_with_accept_multiview_replaces_existing_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exception_only\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exception_only_misconfiguration\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exception_only_no_regular_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exception_register_secured_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_for_as_class\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_for_as_iface\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_mixed_case_replaces_existing_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview___discriminator__\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_call_ordering\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_context_superclass_then_subclass\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_exception_superclass_then_subclass\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_replaces_existing_securedview\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_replaces_existing_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_replaces_existing_view_with___accept__\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_replaces_multiview\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_register_secured_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_same_phash_overrides_existing_single_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_same_predicates\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_view_callable_None_no_renderer\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_view_callable_None_with_renderer\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_view_callable_dottedname\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_accept_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_accept_multiview_replaces_existing_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_accept_nomatch\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_containment_false\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_containment_true\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_csrf_header\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_csrf_param\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_custom_predicates_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_custom_predicates_nomatch\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_decorator\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_decorator_tuple\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_default_permission_no_explicit_permission\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_default_renderer\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_function_callable\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_function_callable_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_badregex\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_noval_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_noval_nomatch\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_val_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_val_missing\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_val_nomatch\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_http_cache\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_is_authenticated_false_matches\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_is_authenticated_false_no_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_is_authenticated_true_matches\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_is_authenticated_true_no_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_mapper\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_missing_csrf_header\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_name\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_name_unicode\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_no_default_permission_no_explicit_permission\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_nonexistant_route_name\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_path_info_badregex\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_path_info_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_path_info_nomatch\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_permission\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_false\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_get_implies_head\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_sequence_conflict\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_sequence_false\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_sequence_true\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_true\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_param_noval_false\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_param_noval_true\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_param_val_false\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_param_val_true\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_type\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_type_and_route_name\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_type_as_iface\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_type_as_noniface\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_route_name\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_route_name_exception\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_tmpl_renderer_factory_introspector_missing\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_tmpl_renderer_factory_no_renderer_factory\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_tmpl_renderer_factory_with_renderer_factory\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_config_and_view_defaults_conflicts\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_config_and_view_defaults_doesnt_conflict\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_wildcard_accept_raises\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_xhr_false\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_xhr_true\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_wrapped_view_is_decorated\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_views_with_accept_multiview_replaces_existing\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_default_accept_view_order\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_derive_view_dottedname\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_derive_view_function\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_derive_view_with_default_renderer_no_explicit_renderer\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_derive_view_with_default_renderer_with_explicit_renderer\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_effective_principals_deprecated\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_set_view_mapper\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_set_view_mapper_dottedname\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_view_with_most_specific_predicate\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_view_with_most_specific_predicate_with_mismatch\nPASSED r2e_tests/test_config/test_views.py::Test_runtime_exc_view::test_call\nPASSED r2e_tests/test_config/test_views.py::Test_runtime_exc_view::test_call_dispatches_on_exception\nPASSED r2e_tests/test_config/test_views.py::Test_runtime_exc_view::test_permitted\nPASSED r2e_tests/test_config/test_views.py::Test_runtime_exc_view::test_permitted_dispatches_on_exception\nPASSED r2e_tests/test_config/test_views.py::Test_requestonly::test_defaults\nPASSED r2e_tests/test_config/test_views.py::Test_requestonly::test_otherattr\nPASSED r2e_tests/test_config/test_views.py::Test_isexception::test_is_IException\nPASSED r2e_tests/test_config/test_views.py::Test_isexception::test_is_IException_subinterface\nPASSED r2e_tests/test_config/test_views.py::Test_isexception::test_is_exception_class\nPASSED r2e_tests/test_config/test_views.py::Test_isexception::test_is_exception_instance\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test___call__\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test___call__intermediate_not_found\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test___call__raise_not_found_isnt_interpreted_as_pred_mismatch\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test___call_permissive_has_call_permissive\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test___call_permissive_has_no_call_permissive\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test__call__not_found\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test__call__with_accept_match\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test__call__with_accept_miss\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test__call_permissive__not_found\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_add\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_add_with_phash\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_add_with_phash_override_accept\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_add_with_phash_override_accept2\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_class_implements_ISecuredView\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_get_views\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_get_views_best_match_returns_None\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_get_views_no_self_accepts\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_get_views_request_has_no_accept\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_instance_implements_ISecuredView\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_match_not_found\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_match_predicate_fails\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_match_predicate_succeeds\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_multiple_with_functions_as_views\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_permitted\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_permitted_no_match_with__permitted__\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_permitted_no_views\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test__view_as_function_with_attr\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_function_context_and_request\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_function_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_function_requestonly_with_attr\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_instance_context_and_request\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_instance_context_and_request_and_attr\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_instance_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_instance_requestonly_with_attr\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_newstyle_class_context_and_request\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_newstyle_class_context_and_request_with_attr\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_newstyle_class_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_newstyle_class_requestonly_with_attr\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_oldstyle_class_context_and_request\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_oldstyle_class_context_and_request_with_attr\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_oldstyle_class_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_oldstyle_class_requestonly_with_attr\nPASSED r2e_tests/test_config/test_views.py::Test_preserve_view_attrs::test_it_different\nPASSED r2e_tests/test_config/test_views.py::Test_preserve_view_attrs::test_it_different_with_existing_original_view\nPASSED r2e_tests/test_config/test_views.py::Test_preserve_view_attrs::test_it_same\nPASSED r2e_tests/test_config/test_views.py::Test_preserve_view_attrs::test_it_view_is_None\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_already_exists\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebust_prevented\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster_abspath\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster_for_more_specific_path\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster_overwrite\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster_overwrite_explicit\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_package_root\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_url_noendslash\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_url_noscheme\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_url_withendslash\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_context\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_for_\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_permission\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_renderer\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_route_prefix\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_missing\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_quoting\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_registration_miss\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_route_url\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_slash_in_name1\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_slash_in_name2\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_cachebust\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_cachebust_abspath\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_cachebust_nomatch\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_quoted_remote\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_unquoted_local\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_with_custom_anchor\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_with_custom_query\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_verifyClass\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_verifyObject\nPASSED r2e_tests/test_config/test_views.py::Test_view_description::test_with_text\nPASSED r2e_tests/test_scripts/test_common.py::TestParseVars::test_parse_vars_bad\nPASSED r2e_tests/test_scripts/test_common.py::TestParseVars::test_parse_vars_good\nPASSED r2e_tests/test_scripts/test_pdistreport.py::TestPDistReportCommand::test_no_dists\nPASSED r2e_tests/test_scripts/test_pdistreport.py::TestPDistReportCommand::test_with_dists\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_display_headers\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_has_bad_config_header\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_has_content_type_header_var\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_has_good_header_var\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_has_multiple_header_vars\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_configures_logging\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_get\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_options\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_patch\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_post\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_propfind\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_put\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_not_enough_args\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_path_doesnt_start_with_slash\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_response_has_no_charset\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_script_name\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_two_args\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_w_basic_auth\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_with_query_string\nPASSED r2e_tests/test_scripts/test_prequest.py::Test_main::test_it\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test__get_mapper\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_bad_args\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_bad_format\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_config_format_ini_commas\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_config_format_ini_newlines\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_config_format_ini_spaces\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_good_args\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_good_format\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_no_mapper\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_no_routes\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_as_wsgiapp\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_no_view\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_with_no_slash_prefix\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_no_route_registered\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_no_views_registered\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_one_view_registered_with_factory\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_static_routes_included_in_list\nPASSED r2e_tests/test_scripts/test_proutes.py::Test_main::test_it\nPASSED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_config_file_finds_open_url\nPASSED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_guess_server_url\nPASSED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_original_ignore_files\nPASSED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_parse_vars_bad\nPASSED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_parse_vars_good\nPASSED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_reload_call_hupper_with_correct_args\nPASSED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_run_no_args\nPASSED r2e_tests/test_scripts/test_pserve.py::Test_main::test_it\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_custom_section_override\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_default_shell_option\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_errors_with_unknown_shell\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_check_variable_override_order\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_custom_items\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_default_shell\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_ipython\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_pythonstartup\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_setup_from_options\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_setup\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_setup_generator\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_list_shells\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_shell_entry_points\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_shell_ordering\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_shell_override\nPASSED r2e_tests/test_scripts/test_pshell.py::Test_python_shell_runner::test_it\nPASSED r2e_tests/test_scripts/test_pshell.py::Test_main::test_it\nPASSED r2e_tests/test_scripts/test_ptweens.py::TestPTweensCommand::test__get_tweens\nPASSED r2e_tests/test_scripts/test_ptweens.py::TestPTweensCommand::test_command_implicit_and_explicit_tweens\nPASSED r2e_tests/test_scripts/test_ptweens.py::TestPTweensCommand::test_command_implicit_tweens_only\nPASSED r2e_tests/test_scripts/test_ptweens.py::TestPTweensCommand::test_command_no_tweens\nPASSED r2e_tests/test_scripts/test_ptweens.py::Test_main::test_it\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_multi_routes_all_match\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_multi_routes_none_match\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_multi_routes_some_match\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_no_match\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_no_match_multiview_registered\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_route_multiview\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_route_multiview_no_view_registered\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_route_no_multiview\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_traversal\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_traversal_multiview\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_not_found\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_not_found_url_starts_without_slash\nPASSED r2e_tests/test_scripts/test_pviews.py::Test_main::test_it\nFAILED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_resource_url_adapter_dotted_names\nFAILED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_resource_url_adapter_introspectables\nFAILED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_traverser_dotted_names\nFAILED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_directory\nFAILED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_package\nFAILED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_file\nFAILED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_package_with_directory\nFAILED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_package_with_package\nFAILED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_filename_no_overrides\nFAILED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_filename_override_returns_None\nFAILED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_filename\nFAILED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_filename_with_prefix\nFAILED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_request_factory_dottedname\nFAILED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_response_factory_dottedname\nFAILED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_root_factory_dottedname\nFAILED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_session_factory_dottedname\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_abspath\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_asset_spec\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_asset_spec_existing_translation_dirs\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_doesnt_use_override_w_autocommit\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_multiple_specs\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_multiple_specs_multiple_calls\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_override_multiple_specs_multiple_calls\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_uses_override_out_of_order\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_uses_override_w_autocommit\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_set_locale_negotiator_dottedname\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_no_registry\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_noreg_debug_logger_None_default\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_constant_root_package\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_with_python_callable\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_debug_logger_None_default\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_tweens\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_with_package_module\nFAILED r2e_tests/test_config/test_init.py::TestConfigurator_add_directive::test_add_directive_with_custom_callable\nFAILED r2e_tests/test_config/test_init.py::TestConfigurator_add_directive::test_add_directive_with_partial\nFAILED r2e_tests/test_config/test_init.py::TestConfigurator_add_directive::test_extend_with_dotted_name\nFAILED r2e_tests/test_config/test_init.py::TestConfigurator_add_directive::test_extend_with_python_callable\nFAILED r2e_tests/test_config/test_init.py::TestConfigurator__add_predicate::test_factory_as_dotted_name\nFAILED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_factory_dottedname\nFAILED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_subscriber_dottedname\nFAILED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_dottedname\nFAILED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_names_distinct\nFAILED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_names_with_underover\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_with_view_defaults\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_with_view_defaults\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_with_view_defaults\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_static_view_package_here_relative\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_context_as_dottedname\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_for__as_dottedname\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_containment_dottedname\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_template_renderer\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_template_renderer_no_callable\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_defaults\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_defaults_viewname_is_dottedname_kwarg\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_defaults_viewname_is_dottedname_nonkwarg\nFAILED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_cachebust_with_overrides\nFAILED r2e_tests/test_config/test_views.py::Test_view_description::test_without_text\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_class_view\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_one_route_all_methods_view_only_post\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_one_route_only_post_view_all_methods\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_one_route_only_post_view_post_and_get\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_one_route_with_long_name_one_view_registered\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_is_get_view_request_method_not_post\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_request_method_mismatch\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_static_views\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_multiview_registered\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_one_view_registered\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_view_glob\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_view_request_method_not_post\nFAILED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_config_file_finds_watch_files\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multi_view_nested\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview_with_permission\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview_with_predicates\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_function_traversal\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_route\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_route_with_route_predicates\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal_with_permission\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal_with_predicates\n================= 80 failed, 757 passed, 28 warnings in 6.31s ==================\n",
    "new_commit_res_stderr": "",
    "old_commit_res_code": 1,
    "old_commit_res_stdout": "============================= test session starts ==============================\nplatform linux -- Python 3.8.20, pytest-8.3.4, pluggy-1.5.0\nrootdir: /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0\nconfigfile: setup.cfg\nplugins: cov-5.0.0\ncollected 837 items\n\nr2e_tests/test_1.py ..FF........                                         [  1%]\nr2e_tests/test_config/test_actions.py .................................. [  5%]\n............                                                             [  6%]\nr2e_tests/test_config/test_adapters.py .FF..............F...             [  9%]\nr2e_tests/test_config/test_assets.py ....F.F...F...FF.FF................ [ 13%]\n.....................................F.F................................ [ 22%]\n                                                                         [ 22%]\nr2e_tests/test_config/test_factories.py ..........F.F..F.F               [ 24%]\nr2e_tests/test_config/test_i18n.py FFFF..FF.FFF.F                        [ 26%]\nr2e_tests/test_config/test_init.py .............................F..F.... [ 30%]\n....F......F...................F................F..F.FF...FFF...         [ 38%]\nr2e_tests/test_config/test_predicates.py ............................... [ 41%]\n........                                                                 [ 42%]\nr2e_tests/test_config/test_rendering.py ...                              [ 43%]\nr2e_tests/test_config/test_routes.py .............F.................     [ 46%]\nr2e_tests/test_config/test_security.py ..............                    [ 48%]\nr2e_tests/test_config/test_settings.py ........................          [ 51%]\nr2e_tests/test_config/test_testing.py ....F.......                       [ 52%]\nr2e_tests/test_config/test_tweens.py F.........F..F...................   [ 56%]\nr2e_tests/test_config/test_views.py ..........F.........F............F.. [ 61%]\nF.........F....................F....................F................... [ 69%]\n..............................FF.....FFF................................ [ 78%]\n.................................................................F...... [ 86%]\n.F                                                                       [ 87%]\nr2e_tests/test_scripts/test_common.py ..                                 [ 87%]\nr2e_tests/test_scripts/test_pdistreport.py ..                            [ 87%]\nr2e_tests/test_scripts/test_prequest.py ....................             [ 89%]\nr2e_tests/test_scripts/test_proutes.py ...F.......FFFF.F.FF.F..F..FF.    [ 93%]\nr2e_tests/test_scripts/test_pserve.py .F.......                          [ 94%]\nr2e_tests/test_scripts/test_pshell.py .................                  [ 96%]\nr2e_tests/test_scripts/test_ptweens.py .....                             [ 97%]\nr2e_tests/test_scripts/test_pviews.py ..........FFFF..FFFFFF.            [100%]\n\n=================================== FAILURES ===================================\n_________________ TestBadCSRFOrigin.test_response_equivalence __________________\n\nself = <r2e_tests.test_1.TestBadCSRFOrigin testMethod=test_response_equivalence>\n\n    def test_response_equivalence(self):\n        from pyramid.exceptions import BadCSRFOrigin\n        from pyramid.httpexceptions import HTTPBadRequest\n    \n        self.assertTrue(isinstance(BadCSRFOrigin(), HTTPBadRequest))\n>       self.assertEqual(BadCSRFOrigin().status, HTTPBadRequest().status)\nE       AssertionError: '400 Bad CSRF Origin' != '400 Bad Request'\nE       - 400 Bad CSRF Origin\nE       + 400 Bad Request\n\nr2e_tests/test_1.py:25: AssertionError\n__________________ TestBadCSRFToken.test_response_equivalence __________________\n\nself = <r2e_tests.test_1.TestBadCSRFToken testMethod=test_response_equivalence>\n\n    def test_response_equivalence(self):\n        from pyramid.exceptions import BadCSRFToken\n        from pyramid.httpexceptions import HTTPBadRequest\n    \n        self.assertTrue(isinstance(BadCSRFToken(), HTTPBadRequest))\n>       self.assertEqual(BadCSRFToken().status, HTTPBadRequest().status)\nE       AssertionError: '400 Bad CSRF Token' != '400 Bad Request'\nE       - 400 Bad CSRF Token\nE       + 400 Bad Request\n\nr2e_tests/test_1.py:34: AssertionError\n__ AdaptersConfiguratorMixinTests.test_add_resource_url_adapter_dotted_names ___\n\nself = <r2e_tests.test_config.test_adapters.AdaptersConfiguratorMixinTests testMethod=test_add_resource_url_adapter_dotted_names>\n\n    def test_add_resource_url_adapter_dotted_names(self):\n        from pyramid.interfaces import IResourceURL\n    \n        config = self._makeOne(autocommit=True)\n        config.add_resource_url_adapter(\n            'tests.test_config.test_adapters.DummyResourceURL',\n            'tests.test_config.test_adapters.DummyIface',\n        )\n        iface = DummyIface()\n>       adapter = config.registry.getMultiAdapter((iface, iface), IResourceURL)\n\nr2e_tests/test_config/test_adapters.py:325: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <Registry r2e_tests.test_config>\nobjects = (<r2e_tests.test_config.test_adapters.DummyIface object at 0x70b6ff61cca0>, <r2e_tests.test_config.test_adapters.DummyIface object at 0x70b6ff61cca0>)\ninterface = <InterfaceClass pyramid.interfaces.IResourceURL>, name = ''\n\n    def getMultiAdapter(self, objects, interface, name=''):\n        adapter = self.adapters.queryMultiAdapter(objects, interface, name)\n        if adapter is None:\n>           raise ComponentLookupError(objects, interface, name)\nE           zope.interface.interfaces.ComponentLookupError: ((<r2e_tests.test_config.test_adapters.DummyIface object at 0x70b6ff61cca0>, <r2e_tests.test_config.test_adapters.DummyIface object at 0x70b6ff61cca0>), <InterfaceClass pyramid.interfaces.IResourceURL>, '')\n\n.venv/lib/python3.8/site-packages/zope/interface/registry.py:379: ComponentLookupError\n_ AdaptersConfiguratorMixinTests.test_add_resource_url_adapter_introspectables _\n\nself = <r2e_tests.test_config.test_adapters.AdaptersConfiguratorMixinTests testMethod=test_add_resource_url_adapter_introspectables>\n\n    def test_add_resource_url_adapter_introspectables(self):\n        config = self._makeOne()\n        config.add_resource_url_adapter(DummyResourceURL, DummyIface)\n        actions = config.action_state.actions\n        self.assertEqual(len(actions), 1)\n        intrs = actions[0]['introspectables']\n        self.assertEqual(len(intrs), 1)\n        intr = intrs[0]\n        self.assertEqual(intr.type_name, 'resource url adapter')\n        self.assertEqual(\n            intr.discriminator, ('resource url adapter', DummyIface)\n        )\n        self.assertEqual(intr.category_name, 'resource url adapters')\n>       self.assertEqual(\n            intr.title,\n            \"resource url adapter for resource iface \"\n            \"<class 'tests.test_config.test_adapters.DummyIface'>\",\n        )\nE       AssertionError: \"reso[30 chars]iface <class 'r2e_tests.test_config.test_adapters.DummyIface'>\" != \"reso[30 chars]iface <class 'tests.test_config.test_adapters.DummyIface'>\"\nE       - resource url adapter for resource iface <class 'r2e_tests.test_config.test_adapters.DummyIface'>\nE       ?                                                 ----\nE       + resource url adapter for resource iface <class 'tests.test_config.test_adapters.DummyIface'>\n\nr2e_tests/test_config/test_adapters.py:371: AssertionError\n________ AdaptersConfiguratorMixinTests.test_add_traverser_dotted_names ________\n\nself = <r2e_tests.test_config.test_adapters.AdaptersConfiguratorMixinTests testMethod=test_add_traverser_dotted_names>\n\n    def test_add_traverser_dotted_names(self):\n        from pyramid.interfaces import ITraverser\n    \n        config = self._makeOne(autocommit=True)\n        config.add_traverser(\n            'tests.test_config.test_adapters.DummyTraverser',\n            'tests.test_config.test_adapters.DummyIface',\n        )\n        iface = DummyIface()\n>       traverser = config.registry.getAdapter(iface, ITraverser)\n\nr2e_tests/test_config/test_adapters.py:279: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <Registry r2e_tests.test_config>\nobject = <r2e_tests.test_config.test_adapters.DummyIface object at 0x70b6ff614970>\ninterface = <InterfaceClass pyramid.interfaces.ITraverser>, name = ''\n\n    def getAdapter(self, object, interface, name=''):\n        adapter = self.adapters.queryAdapter(object, interface, name)\n        if adapter is None:\n>           raise ComponentLookupError(object, interface, name)\nE           zope.interface.interfaces.ComponentLookupError: (<r2e_tests.test_config.test_adapters.DummyIface object at 0x70b6ff614970>, <InterfaceClass pyramid.interfaces.ITraverser>, '')\n\n.venv/lib/python3.8/site-packages/zope/interface/registry.py:368: ComponentLookupError\n___ TestAssetsConfiguratorMixin.test_override_asset_directory_with_directory ___\n\nself = <r2e_tests.test_config.test_assets.TestAssetsConfiguratorMixin testMethod=test_override_asset_directory_with_directory>\n\n    def test_override_asset_directory_with_directory(self):\n        from pyramid.config.assets import PackageAssetSource\n    \n        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'tests.test_config.pkgs.asset:templates/',\n            'tests.test_config.pkgs.asset.subpackage:templates/',\n            _override=override,\n        )\n        from tests.test_config.pkgs import asset\n        from tests.test_config.pkgs.asset import subpackage\n    \n        self.assertEqual(override.package, asset)\n        self.assertEqual(override.path, 'templates/')\n        source = override.source\n        self.assertTrue(isinstance(source, PackageAssetSource))\n        self.assertEqual(source.package, subpackage)\n        self.assertEqual(source.prefix, 'templates/')\n    \n        resource_name = 'bar.pt'\n        expected = os.path.join(\n            here, 'pkgs', 'asset', 'subpackage', 'templates', 'bar.pt'\n        )\n>       self.assertEqual(override.source.get_filename(resource_name), expected)\nE       AssertionError: '/hom[90 chars]91d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt' != '/hom[90 chars]91d0/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:132: AssertionError\n____ TestAssetsConfiguratorMixin.test_override_asset_directory_with_package ____\n\nself = <r2e_tests.test_config.test_assets.TestAssetsConfiguratorMixin testMethod=test_override_asset_directory_with_package>\n\n    def test_override_asset_directory_with_package(self):\n        from pyramid.config.assets import PackageAssetSource\n    \n        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'tests.test_config.pkgs.asset:templates/',\n            'tests.test_config.pkgs.asset.subpackage',\n            _override=override,\n        )\n        from tests.test_config.pkgs import asset\n        from tests.test_config.pkgs.asset import subpackage\n    \n        self.assertEqual(override.package, asset)\n        self.assertEqual(override.path, 'templates/')\n        source = override.source\n        self.assertTrue(isinstance(source, PackageAssetSource))\n        self.assertEqual(source.package, subpackage)\n        self.assertEqual(source.prefix, '')\n    \n        resource_name = 'templates/bar.pt'\n        expected = os.path.join(\n            here, 'pkgs', 'asset', 'subpackage', 'templates', 'bar.pt'\n        )\n>       self.assertEqual(override.source.get_filename(resource_name), expected)\nE       AssertionError: '/hom[90 chars]91d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt' != '/hom[90 chars]91d0/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:158: AssertionError\n________ TestAssetsConfiguratorMixin.test_override_asset_file_with_file ________\n\nself = <r2e_tests.test_config.test_assets.TestAssetsConfiguratorMixin testMethod=test_override_asset_file_with_file>\n\n    def test_override_asset_file_with_file(self):\n        from pyramid.config.assets import PackageAssetSource\n    \n        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'tests.test_config.pkgs.asset:templates/foo.pt',\n            'tests.test_config.pkgs.asset.subpackage:templates/bar.pt',\n            _override=override,\n        )\n        from tests.test_config.pkgs import asset\n        from tests.test_config.pkgs.asset import subpackage\n    \n        self.assertEqual(override.package, asset)\n        self.assertEqual(override.path, 'templates/foo.pt')\n        source = override.source\n        self.assertTrue(isinstance(source, PackageAssetSource))\n        self.assertEqual(source.package, subpackage)\n        self.assertEqual(source.prefix, 'templates/bar.pt')\n    \n        resource_name = ''\n        expected = os.path.join(\n            here, 'pkgs', 'asset', 'subpackage', 'templates', 'bar.pt'\n        )\n>       self.assertEqual(override.source.get_filename(resource_name), expected)\nE       AssertionError: '/hom[90 chars]91d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt' != '/hom[90 chars]91d0/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:80: AssertionError\n____ TestAssetsConfiguratorMixin.test_override_asset_package_with_directory ____\n\nself = <r2e_tests.test_config.test_assets.TestAssetsConfiguratorMixin testMethod=test_override_asset_package_with_directory>\n\n    def test_override_asset_package_with_directory(self):\n        from pyramid.config.assets import PackageAssetSource\n    \n        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'tests.test_config.pkgs.asset',\n            'tests.test_config.pkgs.asset.subpackage:templates/',\n            _override=override,\n        )\n        from tests.test_config.pkgs import asset\n        from tests.test_config.pkgs.asset import subpackage\n    \n        self.assertEqual(override.package, asset)\n        self.assertEqual(override.path, '')\n        source = override.source\n        self.assertTrue(isinstance(source, PackageAssetSource))\n        self.assertEqual(source.package, subpackage)\n        self.assertEqual(source.prefix, 'templates/')\n    \n        resource_name = 'bar.pt'\n        expected = os.path.join(\n            here, 'pkgs', 'asset', 'subpackage', 'templates', 'bar.pt'\n        )\n>       self.assertEqual(override.source.get_filename(resource_name), expected)\nE       AssertionError: '/hom[90 chars]91d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt' != '/hom[90 chars]91d0/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:184: AssertionError\n_____ TestAssetsConfiguratorMixin.test_override_asset_package_with_package _____\n\nself = <r2e_tests.test_config.test_assets.TestAssetsConfiguratorMixin testMethod=test_override_asset_package_with_package>\n\n    def test_override_asset_package_with_package(self):\n        from pyramid.config.assets import PackageAssetSource\n    \n        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'tests.test_config.pkgs.asset',\n            'tests.test_config.pkgs.asset.subpackage',\n            _override=override,\n        )\n        from tests.test_config.pkgs import asset\n        from tests.test_config.pkgs.asset import subpackage\n    \n        self.assertEqual(override.package, asset)\n        self.assertEqual(override.path, '')\n        source = override.source\n        self.assertTrue(isinstance(source, PackageAssetSource))\n        self.assertEqual(source.package, subpackage)\n        self.assertEqual(source.prefix, '')\n    \n        resource_name = 'templates/bar.pt'\n        expected = os.path.join(\n            here, 'pkgs', 'asset', 'subpackage', 'templates', 'bar.pt'\n        )\n>       self.assertEqual(override.source.get_filename(resource_name), expected)\nE       AssertionError: '/hom[90 chars]91d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt' != '/hom[90 chars]91d0/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:106: AssertionError\n_________ TestOverrideProvider.test_get_resource_filename_no_overrides _________\n\nself = <r2e_tests.test_config.test_assets.TestOverrideProvider testMethod=test_get_resource_filename_no_overrides>\n\n    def test_get_resource_filename_no_overrides(self):\n        resource_name = 'test_assets.py'\n        import tests.test_config\n    \n        provider = self._makeOne(tests.test_config)\n        expected = os.path.join(here, resource_name)\n        result = provider.get_resource_filename(None, resource_name)\n>       self.assertEqual(result, expected)\nE       AssertionError: '/hom[69 chars]11514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py' != '/hom[69 chars]11514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:360: AssertionError\n____ TestOverrideProvider.test_get_resource_filename_override_returns_None _____\n\nself = <r2e_tests.test_config.test_assets.TestOverrideProvider testMethod=test_get_resource_filename_override_returns_None>\n\n    def test_get_resource_filename_override_returns_None(self):\n        overrides = DummyOverrides(None)\n        self._registerOverrides(overrides)\n        resource_name = 'test_assets.py'\n        import tests.test_config\n    \n        provider = self._makeOne(tests.test_config)\n        expected = os.path.join(here, resource_name)\n        result = provider.get_resource_filename(None, resource_name)\n>       self.assertEqual(result, expected)\nE       AssertionError: '/hom[69 chars]11514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py' != '/hom[69 chars]11514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:414: AssertionError\n___________________ TestPackageAssetSource.test_get_filename ___________________\n\nself = <r2e_tests.test_config.test_assets.TestPackageAssetSource testMethod=test_get_filename>\n\n    def test_get_filename(self):\n        source = self._makeOne('')\n>       self.assertEqual(\n            source.get_filename('test_assets.py'),\n            os.path.join(here, 'test_assets.py'),\n        )\nE       AssertionError: '/hom[69 chars]11514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py' != '/hom[69 chars]11514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:830: AssertionError\n_____________ TestPackageAssetSource.test_get_filename_with_prefix _____________\n\nself = <r2e_tests.test_config.test_assets.TestPackageAssetSource testMethod=test_get_filename_with_prefix>\n\n    def test_get_filename_with_prefix(self):\n        source = self._makeOne('test_assets.py')\n>       self.assertEqual(\n            source.get_filename(''), os.path.join(here, 'test_assets.py')\n        )\nE       AssertionError: '/hom[69 chars]11514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py' != '/hom[69 chars]11514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_config/test_assets.py\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                    ++++\n\nr2e_tests/test_config/test_assets.py:837: AssertionError\n____________ TestFactoriesMixin.test_set_request_factory_dottedname ____________\n\nself = <r2e_tests.test_config.test_factories.TestFactoriesMixin testMethod=test_set_request_factory_dottedname>\n\n    def test_set_request_factory_dottedname(self):\n        from pyramid.interfaces import IRequestFactory\n    \n        config = self._makeOne(autocommit=True)\n        config.set_request_factory('tests.test_config.dummyfactory')\n>       self.assertEqual(\n            config.registry.getUtility(IRequestFactory), dummyfactory\n        )\nE       AssertionError: <function dummyfactory at 0x70b6ff621c10> != <function dummyfactory at 0x70b7001a4b80>\n\nr2e_tests/test_config/test_factories.py:26: AssertionError\n___________ TestFactoriesMixin.test_set_response_factory_dottedname ____________\n\nself = <r2e_tests.test_config.test_factories.TestFactoriesMixin testMethod=test_set_response_factory_dottedname>\n\n    def test_set_response_factory_dottedname(self):\n        from pyramid.interfaces import IResponseFactory\n    \n        config = self._makeOne(autocommit=True)\n        config.set_response_factory('tests.test_config.dummyfactory')\n>       self.assertEqual(\n            config.registry.getUtility(IResponseFactory), dummyfactory\n        )\nE       AssertionError: <function dummyfactory at 0x70b6ff621c10> != <function dummyfactory at 0x70b7001a4b80>\n\nr2e_tests/test_config/test_factories.py:43: AssertionError\n_____________ TestFactoriesMixin.test_set_root_factory_dottedname ______________\n\nself = <r2e_tests.test_config.test_factories.TestFactoriesMixin testMethod=test_set_root_factory_dottedname>\n\n    def test_set_root_factory_dottedname(self):\n        from pyramid.interfaces import IRootFactory\n    \n        config = self._makeOne()\n        config.set_root_factory('tests.test_config.dummyfactory')\n        self.assertEqual(config.registry.queryUtility(IRootFactory), None)\n        config.commit()\n>       self.assertEqual(\n            config.registry.getUtility(IRootFactory), dummyfactory\n        )\nE       AssertionError: <function dummyfactory at 0x70b6ff621c10> != <function dummyfactory at 0x70b7001a4b80>\n\nr2e_tests/test_config/test_factories.py:77: AssertionError\n____________ TestFactoriesMixin.test_set_session_factory_dottedname ____________\n\nself = <r2e_tests.test_config.test_factories.TestFactoriesMixin testMethod=test_set_session_factory_dottedname>\n\n    def test_set_session_factory_dottedname(self):\n        from pyramid.interfaces import ISessionFactory\n    \n        config = self._makeOne()\n        config.set_session_factory('tests.test_config.dummyfactory')\n        self.assertEqual(config.registry.queryUtility(ISessionFactory), None)\n        config.commit()\n>       self.assertEqual(\n            config.registry.getUtility(ISessionFactory), dummyfactory\n        )\nE       AssertionError: <function dummyfactory at 0x70b6ff621c10> != <function dummyfactory at 0x70b7001a4b80>\n\nr2e_tests/test_config/test_factories.py:99: AssertionError\n_________ TestI18NConfiguratorMixin.test_add_translation_dirs_abspath __________\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_abspath>\n\n    def test_add_translation_dirs_abspath(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n>       config.add_translation_dirs(locale)\n\nr2e_tests/test_config/test_i18n.py:131: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/actions.py:565: in wrapper\n    result = wrapped(self, *arg, **kw)\nsrc/pyramid/config/i18n.py:125: in add_translation_dirs\n    self.action(None, register, introspectables=introspectables)\nsrc/pyramid/config/actions.py:94: in action\n    callable(*args, **kw)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\n    def register():\n        directories = []\n        resolver = AssetResolver(self.package_name)\n    \n        # defer spec resolution until register to allow for asset\n        # overrides to take place in an earlier config phase\n        for spec in specs:\n            # the trailing slash helps match asset overrides for folders\n            if not spec.endswith('/'):\n                spec += '/'\n            asset = resolver.resolve(spec)\n            directory = asset.abspath()\n            if not asset.isdir():\n>               raise ConfigurationError(\n                    '\"%s\" is not a directory' % directory\n                )\nE               pyramid.exceptions.ConfigurationError: \"/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale\" is not a directory\n\nsrc/pyramid/config/i18n.py:101: ConfigurationError\n________ TestI18NConfiguratorMixin.test_add_translation_dirs_asset_spec ________\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_asset_spec>\n\n    def test_add_translation_dirs_asset_spec(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs('tests.pkgs.localeapp:locale')\n>       self.assertEqual(\n            config.registry.getUtility(ITranslationDirectories), [locale]\n        )\nE       AssertionError: Lists differ: ['/ho[66 chars]890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale'] != ['/ho[66 chars]890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale']\nE       \nE       First differing element 0:\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale'\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale'\nE       \nE       - ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale']\nE       + ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale']\nE       ?                                                                                                      ++++\n\nr2e_tests/test_config/test_i18n.py:68: AssertionError\n_ TestI18NConfiguratorMixin.test_add_translation_dirs_asset_spec_existing_translation_dirs _\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_asset_spec_existing_translation_dirs>\n\n    def test_add_translation_dirs_asset_spec_existing_translation_dirs(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n        directories = ['abc']\n        config.registry.registerUtility(directories, ITranslationDirectories)\n        config.add_translation_dirs('tests.pkgs.localeapp:locale')\n        result = config.registry.getUtility(ITranslationDirectories)\n>       self.assertEqual(result, [locale, 'abc'])\nE       AssertionError: Lists differ: ['/ho[73 chars]14ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale', 'abc'] != ['/ho[73 chars]14ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale', 'abc']\nE       \nE       First differing element 0:\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale'\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale'\nE       \nE       - ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale',\nE       + ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale',\nE       ?                                                                                                      ++++\nE       \nE          'abc']\n\nr2e_tests/test_config/test_i18n.py:80: AssertionError\n_ TestI18NConfiguratorMixin.test_add_translation_dirs_doesnt_use_override_w_autocommit _\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_doesnt_use_override_w_autocommit>\n\n    def test_add_translation_dirs_doesnt_use_override_w_autocommit(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs('tests.pkgs.localeapp:locale')\n        config.override_asset(\n            'tests.pkgs.localeapp:locale/', 'tests.pkgs.localeapp:locale2/'\n        )\n>       self.assertEqual(\n            config.registry.getUtility(ITranslationDirectories), [locale]\n        )\nE       AssertionError: Lists differ: ['/ho[66 chars]890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale'] != ['/ho[66 chars]890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale']\nE       \nE       First differing element 0:\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale'\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale'\nE       \nE       - ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale']\nE       + ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale']\nE       ?                                                                                                      ++++\n\nr2e_tests/test_config/test_i18n.py:157: AssertionError\n______ TestI18NConfiguratorMixin.test_add_translation_dirs_multiple_specs ______\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_multiple_specs>\n\n    def test_add_translation_dirs_multiple_specs(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs(\n            'tests.pkgs.localeapp:locale', 'tests.pkgs.localeapp:locale2'\n        )\n>       self.assertEqual(\n            config.registry.getUtility(ITranslationDirectories),\n            [locale, locale2],\n        )\nE       AssertionError: Lists differ: ['/ho[91 chars]91d0/tests/pkgs/localeapp/locale', '/home/gcpu[114 chars]le2'] != ['/ho[91 chars]91d0/r2e_tests/pkgs/localeapp/locale', '/home/[122 chars]le2']\nE       \nE       First differing element 0:\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale'\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale'\nE       \nE       Diff is 760 characters long. Set self.maxDiff to None to see it.\n\nr2e_tests/test_config/test_i18n.py:89: AssertionError\n_ TestI18NConfiguratorMixin.test_add_translation_dirs_multiple_specs_multiple_calls _\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_multiple_specs_multiple_calls>\n\n    def test_add_translation_dirs_multiple_specs_multiple_calls(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs(\n            'tests.pkgs.localeapp:locale', 'tests.pkgs.localeapp:locale2'\n        )\n        config.add_translation_dirs('tests.pkgs.localeapp:locale3')\n>       self.assertEqual(\n            config.registry.getUtility(ITranslationDirectories),\n            [locale3, locale, locale2],\n        )\nE       AssertionError: Lists differ: ['/ho[91 chars]91d0/tests/pkgs/localeapp/locale3', '/home/gcp[245 chars]le2'] != ['/ho[91 chars]91d0/r2e_tests/pkgs/localeapp/locale3', '/home[257 chars]le2']\nE       \nE       First differing element 0:\nE       '/hom[65 chars]890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale3'\nE       '/hom[65 chars]890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale3'\nE       \nE       Diff is 1141 characters long. Set self.maxDiff to None to see it.\n\nr2e_tests/test_config/test_i18n.py:102: AssertionError\n_ TestI18NConfiguratorMixin.test_add_translation_dirs_override_multiple_specs_multiple_calls _\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_override_multiple_specs_multiple_calls>\n\n    def test_add_translation_dirs_override_multiple_specs_multiple_calls(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs(\n            'tests.pkgs.localeapp:locale', 'tests.pkgs.localeapp:locale2'\n        )\n        config.add_translation_dirs(\n            'tests.pkgs.localeapp:locale3', override=True\n        )\n>       self.assertEqual(\n            config.registry.getUtility(ITranslationDirectories),\n            [locale, locale2, locale3],\n        )\nE       AssertionError: Lists differ: ['/ho[91 chars]91d0/tests/pkgs/localeapp/locale', '/home/gcpu[245 chars]le3'] != ['/ho[91 chars]91d0/r2e_tests/pkgs/localeapp/locale', '/home/[257 chars]le3']\nE       \nE       First differing element 0:\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale'\nE       '/hom[64 chars]0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale'\nE       \nE       Diff is 1141 characters long. Set self.maxDiff to None to see it.\n\nr2e_tests/test_config/test_i18n.py:117: AssertionError\n_ TestI18NConfiguratorMixin.test_add_translation_dirs_uses_override_out_of_order _\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_uses_override_out_of_order>\n\n    def test_add_translation_dirs_uses_override_out_of_order(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne()\n        config.add_translation_dirs('tests.pkgs.localeapp:locale')\n        config.override_asset(\n            'tests.pkgs.localeapp:locale/', 'tests.pkgs.localeapp:locale2/'\n        )\n        config.commit()\n>       self.assertEqual(\n            config.registry.getUtility(ITranslationDirectories), [locale2]\n        )\nE       AssertionError: Lists differ: ['/ho[67 chars]90911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale2'] != ['/ho[67 chars]90911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale2']\nE       \nE       First differing element 0:\nE       '/hom[65 chars]890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale2'\nE       '/hom[65 chars]890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale2'\nE       \nE       - ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale2']\nE       + ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale2']\nE       ?                                                                                                      ++++\n\nr2e_tests/test_config/test_i18n.py:145: AssertionError\n_ TestI18NConfiguratorMixin.test_add_translation_dirs_uses_override_w_autocommit _\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_add_translation_dirs_uses_override_w_autocommit>\n\n    def test_add_translation_dirs_uses_override_w_autocommit(self):\n        from pyramid.interfaces import ITranslationDirectories\n    \n        config = self._makeOne(autocommit=True)\n        config.override_asset(\n            'tests.pkgs.localeapp:locale/', 'tests.pkgs.localeapp:locale2/'\n        )\n        config.add_translation_dirs('tests.pkgs.localeapp:locale')\n>       self.assertEqual(\n            config.registry.getUtility(ITranslationDirectories), [locale2]\n        )\nE       AssertionError: Lists differ: ['/ho[67 chars]90911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale2'] != ['/ho[67 chars]90911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale2']\nE       \nE       First differing element 0:\nE       '/hom[65 chars]890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale2'\nE       '/hom[65 chars]890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale2'\nE       \nE       - ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/pkgs/localeapp/locale2']\nE       + ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/pkgs/localeapp/locale2']\nE       ?                                                                                                      ++++\n\nr2e_tests/test_config/test_i18n.py:169: AssertionError\n_______ TestI18NConfiguratorMixin.test_set_locale_negotiator_dottedname ________\n\nself = <r2e_tests.test_config.test_i18n.TestI18NConfiguratorMixin testMethod=test_set_locale_negotiator_dottedname>\n\n    def test_set_locale_negotiator_dottedname(self):\n        from pyramid.interfaces import ILocaleNegotiator\n    \n        config = self._makeOne(autocommit=True)\n        config.set_locale_negotiator('tests.test_config.dummyfactory')\n>       self.assertEqual(\n            config.registry.getUtility(ILocaleNegotiator), dummyfactory\n        )\nE       AssertionError: <function dummyfactory at 0x70b6ff621c10> != <function dummyfactory at 0x70b7001a4b80>\n\nr2e_tests/test_config/test_i18n.py:43: AssertionError\n___________________ ConfiguratorTests.test_ctor_no_registry ____________________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_ctor_no_registry>\n\n    def test_ctor_no_registry(self):\n        import sys\n    \n        from pyramid.config import Configurator\n        from pyramid.interfaces import IRendererFactory, ISettings\n    \n        config = Configurator()\n        this_pkg = sys.modules['tests.test_config']\n        self.assertTrue(config.registry.getUtility(ISettings))\n>       self.assertEqual(config.package, this_pkg)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:78: AssertionError\n_________ ConfiguratorTests.test_ctor_noreg_debug_logger_None_default __________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_ctor_noreg_debug_logger_None_default>\n\n    def test_ctor_noreg_debug_logger_None_default(self):\n        from pyramid.interfaces import IDebugLogger\n    \n        config = self._makeOne()\n        logger = config.registry.getUtility(IDebugLogger)\n>       self.assertEqual(logger.name, 'tests.test_config')\nE       AssertionError: 'r2e_tests.test_config' != 'tests.test_config'\nE       - r2e_tests.test_config\nE       ? ----\nE       + tests.test_config\n\nr2e_tests/test_config/test_init.py:204: AssertionError\n_____________ ConfiguratorTests.test_include_constant_root_package _____________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_include_constant_root_package>\n\n    def test_include_constant_root_package(self):\n        import tests\n        from tests import test_config\n    \n        config = self._makeOne(root_package=tests)\n        results = {}\n    \n        def include(config):\n            results['package'] = config.package\n            results['root_package'] = config.root_package\n    \n        config.include(include)\n        self.assertEqual(results['root_package'], tests)\n>       self.assertEqual(results['package'], test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:966: AssertionError\n_____________ ConfiguratorTests.test_include_with_python_callable ______________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_include_with_python_callable>\n\n    def test_include_with_python_callable(self):\n        from tests import test_config\n    \n        config = self._makeOne()\n        config.include(dummy_include)\n        after = config.action_state\n        actions = after.actions\n        self.assertEqual(len(actions), 1)\n        action = actions[0]\n        self.assertEqual(action['discriminator'], 'discrim')\n        self.assertEqual(action['callable'], None)\n>       self.assertEqual(action['args'], test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:878: AssertionError\n_______ ConfiguratorTests.test_setup_registry_debug_logger_None_default ________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_setup_registry_debug_logger_None_default>\n\n    def test_setup_registry_debug_logger_None_default(self):\n        from pyramid.interfaces import IDebugLogger\n        from pyramid.registry import Registry\n    \n        reg = Registry()\n        config = self._makeOne(reg)\n        config.setup_registry()\n        logger = reg.getUtility(IDebugLogger)\n>       self.assertEqual(logger.name, 'tests.test_config')\nE       AssertionError: 'r2e_tests.test_config' != 'tests.test_config'\nE       - r2e_tests.test_config\nE       ? ----\nE       + tests.test_config\n\nr2e_tests/test_config/test_init.py:594: AssertionError\n_________________ ConfiguratorTests.test_setup_registry_tweens _________________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_setup_registry_tweens>\n\n    def test_setup_registry_tweens(self):\n        from pyramid.interfaces import ITweens\n        from pyramid.registry import Registry\n    \n        reg = Registry()\n        config = self._makeOne(reg)\n        settings = {'pyramid.tweens': 'tests.test_config.dummy_tween_factory'}\n        config.setup_registry(settings=settings)\n        config.commit()\n        tweens = config.registry.getUtility(ITweens)\n>       self.assertEqual(\n            tweens.explicit,\n            [('tests.test_config.dummy_tween_factory', dummy_tween_factory)],\n        )\nE       AssertionError: Lists differ: [('te[25 chars]en_factory', <function dummy_tween_factory at 0x70b6ff604700>)] != [('te[25 chars]en_factory', <function dummy_tween_factory at 0x70b700219ca0>)]\nE       \nE       First differing element 0:\nE       ('tes[23 chars]een_factory', <function dummy_tween_factory at 0x70b6ff604700>)\nE       ('tes[23 chars]een_factory', <function dummy_tween_factory at 0x70b700219ca0>)\nE       \nE         [('tests.test_config.dummy_tween_factory',\nE       -   <function dummy_tween_factory at 0x70b6ff604700>)]\nE       ?                                         ------\nE       \nE       +   <function dummy_tween_factory at 0x70b700219ca0>)]\nE       ?                                           ++++++\n\nr2e_tests/test_config/test_init.py:815: AssertionError\n__________________ ConfiguratorTests.test_with_package_module __________________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_with_package_module>\n\n    def test_with_package_module(self):\n        from . import test_init\n    \n        config = self._makeOne()\n        newconfig = config.with_package(test_init)\n        import tests.test_config\n    \n>       self.assertEqual(newconfig.package, tests.test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:354: AssertionError\n____ TestConfigurator_add_directive.test_add_directive_with_custom_callable ____\n\nself = <r2e_tests.test_config.test_init.TestConfigurator_add_directive testMethod=test_add_directive_with_custom_callable>\n\n    def test_add_directive_with_custom_callable(self):\n        from tests import test_config\n    \n        config = self.config\n        config.add_directive(\n            'dummy_callable', 'tests.test_config.dummy_callable'\n        )\n        self.assertTrue(hasattr(config, 'dummy_callable'))\n        config.dummy_callable('discrim')\n        after = config.action_state\n        action = after.actions[-1]\n        self.assertEqual(action['discriminator'], 'discrim')\n        self.assertEqual(action['callable'], None)\n>       self.assertEqual(action['args'], test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:1288: AssertionError\n________ TestConfigurator_add_directive.test_add_directive_with_partial ________\n\nself = <r2e_tests.test_config.test_init.TestConfigurator_add_directive testMethod=test_add_directive_with_partial>\n\n    def test_add_directive_with_partial(self):\n        from tests import test_config\n    \n        config = self.config\n        config.add_directive(\n            'dummy_partial', 'tests.test_config.dummy_partial'\n        )\n        self.assertTrue(hasattr(config, 'dummy_partial'))\n        config.dummy_partial()\n        after = config.action_state\n        action = after.actions[-1]\n        self.assertEqual(action['discriminator'], 'partial')\n        self.assertEqual(action['callable'], None)\n>       self.assertEqual(action['args'], test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:1273: AssertionError\n_________ TestConfigurator_add_directive.test_extend_with_dotted_name __________\n\nself = <r2e_tests.test_config.test_init.TestConfigurator_add_directive testMethod=test_extend_with_dotted_name>\n\n    def test_extend_with_dotted_name(self):\n        from tests import test_config\n    \n        config = self.config\n        config.add_directive('dummy_extend', 'tests.test_config.dummy_extend')\n        self.assertTrue(hasattr(config, 'dummy_extend'))\n        config.dummy_extend('discrim')\n        after = config.action_state\n        action = after.actions[-1]\n        self.assertEqual(action['discriminator'], 'discrim')\n        self.assertEqual(action['callable'], None)\n>       self.assertEqual(action['args'], test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:1258: AssertionError\n_______ TestConfigurator_add_directive.test_extend_with_python_callable ________\n\nself = <r2e_tests.test_config.test_init.TestConfigurator_add_directive testMethod=test_extend_with_python_callable>\n\n    def test_extend_with_python_callable(self):\n        from tests import test_config\n    \n        config = self.config\n        config.add_directive('dummy_extend', dummy_extend)\n        self.assertTrue(hasattr(config, 'dummy_extend'))\n        config.dummy_extend('discrim')\n        after = config.action_state\n        action = after.actions[-1]\n        self.assertEqual(action['discriminator'], 'discrim')\n        self.assertEqual(action['callable'], None)\n>       self.assertEqual(action['args'], test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_init.py:1301: AssertionError\n_________ TestConfigurator__add_predicate.test_factory_as_dotted_name __________\n\nself = <r2e_tests.test_config.test_init.TestConfigurator__add_predicate testMethod=test_factory_as_dotted_name>\n\n    def test_factory_as_dotted_name(self):\n        config = self._makeOne()\n    \n        def _fakeAction(\n            discriminator,\n            callable=None,\n            args=(),\n            kw=None,\n            order=0,\n            introspectables=(),\n            **extra,\n        ):\n            self.assertEqual(len(introspectables), 1)\n            self.assertEqual(introspectables[0]['name'], 'testing')\n            self.assertEqual(introspectables[0]['factory'], DummyPredicate)\n    \n        config.action = _fakeAction\n>       config._add_predicate(\n            'route', 'testing', 'tests.test_config.test_init.DummyPredicate'\n        )\n\nr2e_tests/test_config/test_init.py:1378: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/predicates.py:47: in _add_predicate\n    self.action(\nr2e_tests/test_config/test_init.py:1375: in _fakeAction\n    self.assertEqual(introspectables[0]['factory'], DummyPredicate)\nE   AssertionError: <class 'tests.test_config.test_init.DummyPredicate'> != <class 'r2e_tests.test_config.test_init.DummyPredicate'>\n_____ RoutesConfiguratorMixinTests.test_add_route_with_factory_dottedname ______\n\nself = <r2e_tests.test_config.test_routes.RoutesConfiguratorMixinTests testMethod=test_add_route_with_factory_dottedname>\n\n    def test_add_route_with_factory_dottedname(self):\n        config = self._makeOne(autocommit=True)\n        config.add_route(\n            'name', 'path', factory='tests.test_config.dummyfactory'\n        )\n        route = self._assertRoute(config, 'name', 'path')\n>       self.assertEqual(route.factory, dummyfactory)\nE       AssertionError: <function dummyfactory at 0x70b6ff621c10> != <function dummyfactory at 0x70b7001a4b80>\n\nr2e_tests/test_config/test_routes.py:109: AssertionError\n_____ TestingConfiguratorMixinTests.test_testing_add_subscriber_dottedname _____\n\nself = <r2e_tests.test_config.test_testing.TestingConfiguratorMixinTests testMethod=test_testing_add_subscriber_dottedname>\n\n    def test_testing_add_subscriber_dottedname(self):\n        config = self._makeOne(autocommit=True)\n        L = config.testing_add_subscriber('tests.test_config.IDummy')\n        event = DummyEvent()\n        config.registry.notify(event)\n>       self.assertEqual(len(L), 1)\nE       AssertionError: 0 != 1\n\nr2e_tests/test_config/test_testing.py:108: AssertionError\n____________ TestTweensConfiguratorMixin.test_add_tween_dottedname _____________\n\nself = <r2e_tests.test_config.test_tweens.TestTweensConfiguratorMixin testMethod=test_add_tween_dottedname>\n\n    def test_add_tween_dottedname(self):\n        from pyramid.interfaces import ITweens\n        from pyramid.tweens import excview_tween_factory\n    \n        config = self._makeOne()\n        config.add_tween('tests.test_config.dummy_tween_factory')\n        config.commit()\n        tweens = config.registry.queryUtility(ITweens)\n>       self.assertEqual(\n            tweens.implicit(),\n            [\n                ('tests.test_config.dummy_tween_factory', dummy_tween_factory),\n                (\n                    'pyramid.tweens.excview_tween_factory',\n                    excview_tween_factory,\n                ),\n            ],\n        )\nE       AssertionError: Lists differ: [('te[71 chars]0x70b6ff604700>), ('pyramid.tweens.excview_twe[60 chars]a0>)] != [('te[71 chars]0x70b700219ca0>), ('pyramid.tweens.excview_twe[60 chars]a0>)]\nE       \nE       First differing element 0:\nE       ('tes[23 chars]een_factory', <function dummy_tween_factory at 0x70b6ff604700>)\nE       ('tes[23 chars]een_factory', <function dummy_tween_factory at 0x70b700219ca0>)\nE       \nE         [('tests.test_config.dummy_tween_factory',\nE       -   <function dummy_tween_factory at 0x70b6ff604700>),\nE       ?                                         ------\nE       \nE       +   <function dummy_tween_factory at 0x70b700219ca0>),\nE       ?                                           ++++++\nE       \nE          ('pyramid.tweens.excview_tween_factory',\nE           <function excview_tween_factory at 0x70b6ffb5dca0>)]\n\nr2e_tests/test_config/test_tweens.py:105: AssertionError\n__________ TestTweensConfiguratorMixin.test_add_tweens_names_distinct __________\n\nself = <r2e_tests.test_config.test_tweens.TestTweensConfiguratorMixin testMethod=test_add_tweens_names_distinct>\n\n    def test_add_tweens_names_distinct(self):\n        from pyramid.interfaces import ITweens\n        from pyramid.tweens import excview_tween_factory\n    \n        def factory1(handler, registry):  # pragma: no cover\n            return handler\n    \n        def factory2(handler, registry):  # pragma: no cover\n            return handler\n    \n        config = self._makeOne()\n        config.add_tween('tests.test_config.dummy_tween_factory')\n        config.add_tween('tests.test_config.dummy_tween_factory2')\n        config.commit()\n        tweens = config.registry.queryUtility(ITweens)\n        implicit = tweens.implicit()\n>       self.assertEqual(\n            implicit,\n            [\n                (\n                    'tests.test_config.dummy_tween_factory2',\n                    dummy_tween_factory2,\n                ),\n                ('tests.test_config.dummy_tween_factory', dummy_tween_factory),\n                (\n                    'pyramid.tweens.excview_tween_factory',\n                    excview_tween_factory,\n                ),\n            ],\n        )\nE       AssertionError: Lists differ: [('te[73 chars]0x70b6ff604940>), ('tests.test_config.dummy_tw[153 chars]a0>)] != [('te[73 chars]0x70b7001a41f0>), ('tests.test_config.dummy_tw[153 chars]a0>)]\nE       \nE       First differing element 0:\nE       ('tes[25 chars]n_factory2', <function dummy_tween_factory2 at 0x70b6ff604940>)\nE       ('tes[25 chars]n_factory2', <function dummy_tween_factory2 at 0x70b7001a41f0>)\nE       \nE         [('tests.test_config.dummy_tween_factory2',\nE       -   <function dummy_tween_factory2 at 0x70b6ff604940>),\nE       ?                                          ^ ------\nE       \nE       +   <function dummy_tween_factory2 at 0x70b7001a41f0>),\nE       ?                                          ^^^^^^^\nE       \nE          ('tests.test_config.dummy_tween_factory',\nE       -   <function dummy_tween_factory at 0x70b6ff604700>),\nE       ?                                         ------\nE       \nE       +   <function dummy_tween_factory at 0x70b700219ca0>),\nE       ?                                           ++++++\nE       \nE          ('pyramid.tweens.excview_tween_factory',\nE           <function excview_tween_factory at 0x70b6ffb5dca0>)]\n\nr2e_tests/test_config/test_tweens.py:31: AssertionError\n_______ TestTweensConfiguratorMixin.test_add_tweens_names_with_underover _______\n\nself = <r2e_tests.test_config.test_tweens.TestTweensConfiguratorMixin testMethod=test_add_tweens_names_with_underover>\n\n    def test_add_tweens_names_with_underover(self):\n        from pyramid.interfaces import ITweens\n        from pyramid.tweens import MAIN, excview_tween_factory\n    \n        config = self._makeOne()\n        config.add_tween('tests.test_config.dummy_tween_factory', over=MAIN)\n        config.add_tween(\n            'tests.test_config.dummy_tween_factory2',\n            over=MAIN,\n            under='tests.test_config.dummy_tween_factory',\n        )\n        config.commit()\n        tweens = config.registry.queryUtility(ITweens)\n        implicit = tweens.implicit()\n>       self.assertEqual(\n            implicit,\n            [\n                (\n                    'pyramid.tweens.excview_tween_factory',\n                    excview_tween_factory,\n                ),\n                ('tests.test_config.dummy_tween_factory', dummy_tween_factory),\n                (\n                    'tests.test_config.dummy_tween_factory2',\n                    dummy_tween_factory2,\n                ),\n            ],\n        )\nE       AssertionError: Lists differ: [('py[165 chars]0x70b6ff604700>), ('tests.test_config.dummy_tw[61 chars]40>)] != [('py[165 chars]0x70b700219ca0>), ('tests.test_config.dummy_tw[61 chars]f0>)]\nE       \nE       First differing element 1:\nE       ('tes[23 chars]een_factory', <function dummy_tween_factory at 0x70b6ff604700>)\nE       ('tes[23 chars]een_factory', <function dummy_tween_factory at 0x70b700219ca0>)\nE       \nE         [('pyramid.tweens.excview_tween_factory',\nE           <function excview_tween_factory at 0x70b6ffb5dca0>),\nE          ('tests.test_config.dummy_tween_factory',\nE       -   <function dummy_tween_factory at 0x70b6ff604700>),\nE       ?                                         ------\nE       \nE       +   <function dummy_tween_factory at 0x70b700219ca0>),\nE       ?                                           ++++++\nE       \nE          ('tests.test_config.dummy_tween_factory2',\nE       -   <function dummy_tween_factory2 at 0x70b6ff604940>)]\nE       ?                                          ^ ------\nE       \nE       +   <function dummy_tween_factory2 at 0x70b7001a41f0>)]\nE       ?                                          ^^^^^^^\n\nr2e_tests/test_config/test_tweens.py:60: AssertionError\n____ TestViewsConfigurationMixin.test_add_exception_view_with_view_defaults ____\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_exception_view_with_view_defaults>\n\n    def test_add_exception_view_with_view_defaults(self):\n        from zope.interface import directlyProvides, implementedBy\n    \n        from pyramid.exceptions import PredicateMismatch\n        from pyramid.renderers import null_renderer\n    \n        class view:\n            __view_defaults__ = {'containment': 'tests.test_config.IDummy'}\n    \n            def __init__(self, request):\n                pass\n    \n            def __call__(self):\n                return 'OK'\n    \n        config = self._makeOne(autocommit=True)\n        config.add_exception_view(\n            view=view, context=Exception, renderer=null_renderer\n        )\n        wrapper = self._getViewCallable(\n            config, exc_iface=implementedBy(Exception)\n        )\n        context = DummyContext()\n        directlyProvides(context, IDummy)\n        request = self._makeRequest(config)\n>       self.assertEqual(wrapper(context, request), 'OK')\n\nr2e_tests/test_config/test_views.py:2494: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/views.py:170: in attr_view\n    return view(context, request)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ncontext = <r2e_tests.test_config.test_views.DummyContext object at 0x70b6ff2b05e0>\nrequest = <r2e_tests.test_config.test_views.DummyRequest object at 0x70b6ff2b0400>\n\n    def predicate_wrapper(context, request):\n        for predicate in preds:\n            if not predicate(context, request):\n                view_name = getattr(view, '__name__', view)\n>               raise PredicateMismatch(\n                    'predicate mismatch for view %s (%s)'\n                    % (view_name, predicate.text())\n                )\nE               pyramid.exceptions.PredicateMismatch: predicate mismatch for view view (containment = tests.test_config.IDummy)\n\nsrc/pyramid/config/views.py:192: PredicateMismatch\n____ TestViewsConfigurationMixin.test_add_forbidden_view_with_view_defaults ____\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_forbidden_view_with_view_defaults>\n\n    def test_add_forbidden_view_with_view_defaults(self):\n        from zope.interface import directlyProvides, implementedBy\n    \n        from pyramid.exceptions import PredicateMismatch\n        from pyramid.httpexceptions import HTTPForbidden\n        from pyramid.interfaces import IRequest\n        from pyramid.renderers import null_renderer\n    \n        class view:\n            __view_defaults__ = {'containment': 'tests.test_config.IDummy'}\n    \n            def __init__(self, request):\n                pass\n    \n            def __call__(self):\n                return 'OK'\n    \n        config = self._makeOne(autocommit=True)\n        config.add_forbidden_view(view=view, renderer=null_renderer)\n        wrapper = self._getViewCallable(\n            config,\n            exc_iface=implementedBy(HTTPForbidden),\n            request_iface=IRequest,\n        )\n        context = DummyContext()\n        directlyProvides(context, IDummy)\n        request = self._makeRequest(config)\n>       self.assertEqual(wrapper(context, request), 'OK')\n\nr2e_tests/test_config/test_views.py:2722: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/views.py:170: in attr_view\n    return view(context, request)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ncontext = <r2e_tests.test_config.test_views.DummyContext object at 0x70b6ff5c4790>\nrequest = <r2e_tests.test_config.test_views.DummyRequest object at 0x70b6ff5c4190>\n\n    def predicate_wrapper(context, request):\n        for predicate in preds:\n            if not predicate(context, request):\n                view_name = getattr(view, '__name__', view)\n>               raise PredicateMismatch(\n                    'predicate mismatch for view %s (%s)'\n                    % (view_name, predicate.text())\n                )\nE               pyramid.exceptions.PredicateMismatch: predicate mismatch for view view (containment = tests.test_config.IDummy)\n\nsrc/pyramid/config/views.py:192: PredicateMismatch\n____ TestViewsConfigurationMixin.test_add_notfound_view_with_view_defaults _____\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_notfound_view_with_view_defaults>\n\n    def test_add_notfound_view_with_view_defaults(self):\n        from zope.interface import directlyProvides, implementedBy\n    \n        from pyramid.exceptions import PredicateMismatch\n        from pyramid.httpexceptions import HTTPNotFound\n        from pyramid.interfaces import IRequest\n        from pyramid.renderers import null_renderer\n    \n        class view:\n            __view_defaults__ = {'containment': 'tests.test_config.IDummy'}\n    \n            def __init__(self, request):\n                pass\n    \n            def __call__(self):\n                return 'OK'\n    \n        config = self._makeOne(autocommit=True)\n        config.add_notfound_view(view=view, renderer=null_renderer)\n        wrapper = self._getViewCallable(\n            config,\n            exc_iface=implementedBy(HTTPNotFound),\n            request_iface=IRequest,\n        )\n        context = DummyContext()\n        directlyProvides(context, IDummy)\n        request = self._makeRequest(config)\n>       self.assertEqual(wrapper(context, request), 'OK')\n\nr2e_tests/test_config/test_views.py:2890: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/views.py:170: in attr_view\n    return view(context, request)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ncontext = <r2e_tests.test_config.test_views.DummyContext object at 0x70b6ff3cac40>\nrequest = <r2e_tests.test_config.test_views.DummyRequest object at 0x70b6ff583190>\n\n    def predicate_wrapper(context, request):\n        for predicate in preds:\n            if not predicate(context, request):\n                view_name = getattr(view, '__name__', view)\n>               raise PredicateMismatch(\n                    'predicate mismatch for view %s (%s)'\n                    % (view_name, predicate.text())\n                )\nE               pyramid.exceptions.PredicateMismatch: predicate mismatch for view view (containment = tests.test_config.IDummy)\n\nsrc/pyramid/config/views.py:192: PredicateMismatch\n____ TestViewsConfigurationMixin.test_add_static_view_package_here_relative ____\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_static_view_package_here_relative>\n\n    def test_add_static_view_package_here_relative(self):\n        from pyramid.interfaces import IStaticURLInfo\n    \n        info = DummyStaticURLInfo()\n        config = self._makeOne(autocommit=True)\n        config.registry.registerUtility(info, IStaticURLInfo)\n        config.add_static_view('static', 'files')\n>       self.assertEqual(\n            info.added, [(config, 'static', 'tests.test_config:files', {})]\n        )\nE       AssertionError: Lists differ: [(<py[35 chars] 0x70b6ff5e2670>, 'static', 'r2e_tests.test_config:files', {})] != [(<py[35 chars] 0x70b6ff5e2670>, 'static', 'tests.test_config:files', {})]\nE       \nE       First differing element 0:\nE       (<pyr[33 chars]t 0x70b6ff5e2670>, 'static', 'r2e_tests.test_config:files', {})\nE       (<pyr[33 chars]t 0x70b6ff5e2670>, 'static', 'tests.test_config:files', {})\nE       \nE         [(<pyramid.config.Configurator object at 0x70b6ff5e2670>,\nE           'static',\nE       -   'r2e_tests.test_config:files',\nE       ?    ----\nE       \nE       +   'tests.test_config:files',\nE           {})]\n\nr2e_tests/test_config/test_views.py:2602: AssertionError\n_______ TestViewsConfigurationMixin.test_add_view_context_as_dottedname ________\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_context_as_dottedname>\n\n    def test_add_view_context_as_dottedname(self):\n        from pyramid.renderers import null_renderer\n    \n        view = lambda *arg: 'OK'\n        config = self._makeOne(autocommit=True)\n        config.add_view(\n            context='tests.test_config.IDummy',\n            view=view,\n            renderer=null_renderer,\n        )\n        wrapper = self._getViewCallable(config, IDummy)\n>       self.assertEqual(wrapper, view)\nE       AssertionError: None != <function TestViewsConfigurationMixin.tes[64 chars]3a60>\n\nr2e_tests/test_config/test_views.py:458: AssertionError\n_________ TestViewsConfigurationMixin.test_add_view_for__as_dottedname _________\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_for__as_dottedname>\n\n    def test_add_view_for__as_dottedname(self):\n        from pyramid.renderers import null_renderer\n    \n        view = lambda *arg: 'OK'\n        config = self._makeOne(autocommit=True)\n        config.add_view(\n            for_='tests.test_config.IDummy', view=view, renderer=null_renderer\n        )\n        wrapper = self._getViewCallable(config, IDummy)\n>       self.assertEqual(wrapper, view)\nE       AssertionError: None != <function TestViewsConfigurationMixin.tes[61 chars]7e50>\n\nr2e_tests/test_config/test_views.py:469: AssertionError\n____ TestViewsConfigurationMixin.test_add_view_with_containment_dottedname _____\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_with_containment_dottedname>\n\n    def test_add_view_with_containment_dottedname(self):\n        from zope.interface import directlyProvides\n    \n        from pyramid.renderers import null_renderer\n    \n        view = lambda *arg: 'OK'\n        config = self._makeOne(autocommit=True)\n        config.add_view(\n            view=view,\n            containment='tests.test_config.IDummy',\n            renderer=null_renderer,\n        )\n        wrapper = self._getViewCallable(config)\n        context = DummyContext()\n        directlyProvides(context, IDummy)\n>       self.assertEqual(wrapper(context, None), 'OK')\n\nr2e_tests/test_config/test_views.py:1973: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/views.py:170: in attr_view\n    return view(context, request)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ncontext = <r2e_tests.test_config.test_views.DummyContext object at 0x70b6feff4250>\nrequest = None\n\n    def predicate_wrapper(context, request):\n        for predicate in preds:\n            if not predicate(context, request):\n                view_name = getattr(view, '__name__', view)\n>               raise PredicateMismatch(\n                    'predicate mismatch for view %s (%s)'\n                    % (view_name, predicate.text())\n                )\nE               pyramid.exceptions.PredicateMismatch: predicate mismatch for view <lambda> (containment = tests.test_config.IDummy)\n\nsrc/pyramid/config/views.py:192: PredicateMismatch\n_______ TestViewsConfigurationMixin.test_add_view_with_template_renderer _______\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_with_template_renderer>\n\n    def test_add_view_with_template_renderer(self):\n        from pyramid.interfaces import ISettings\n        from tests import test_config\n    \n        class view:\n            def __init__(self, context, request):\n                self.request = request\n                self.context = context\n    \n            def __call__(self):\n                return {'a': '1'}\n    \n        config = self._makeOne(autocommit=True)\n        renderer = self._registerRenderer(config)\n        fixture = 'tests.test_config:files/minimal.txt'\n        config.introspection = False\n        config.add_view(view=view, renderer=fixture)\n        wrapper = self._getViewCallable(config)\n        request = self._makeRequest(config)\n        result = wrapper(None, request)\n        self.assertEqual(result.body, b'Hello!')\n        settings = config.registry.queryUtility(ISettings)\n        result = renderer.info\n        self.assertEqual(result.registry, config.registry)\n        self.assertEqual(result.type, '.txt')\n>       self.assertEqual(result.package, test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_views.py:1558: AssertionError\n_ TestViewsConfigurationMixin.test_add_view_with_template_renderer_no_callable _\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_with_template_renderer_no_callable>\n\n    def test_add_view_with_template_renderer_no_callable(self):\n        from pyramid.interfaces import ISettings\n        from tests import test_config\n    \n        config = self._makeOne(autocommit=True)\n        renderer = self._registerRenderer(config)\n        fixture = 'tests.test_config:files/minimal.txt'\n        config.introspection = False\n        config.add_view(view=None, renderer=fixture)\n        wrapper = self._getViewCallable(config)\n        request = self._makeRequest(config)\n        result = wrapper(None, request)\n        self.assertEqual(result.body, b'Hello!')\n        settings = config.registry.queryUtility(ISettings)\n        result = renderer.info\n        self.assertEqual(result.registry, config.registry)\n        self.assertEqual(result.type, '.txt')\n>       self.assertEqual(result.package, test_config)\nE       AssertionError: <module 'r2e_tests.test_config' from '/home/gcpuse[117 chars].py'> != <module 'tests.test_config' from '/home/gcpuser/bu[109 chars].py'>\n\nr2e_tests/test_config/test_views.py:1604: AssertionError\n_________ TestViewsConfigurationMixin.test_add_view_with_view_defaults _________\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_with_view_defaults>\n\n    def test_add_view_with_view_defaults(self):\n        from zope.interface import directlyProvides\n    \n        from pyramid.exceptions import PredicateMismatch\n        from pyramid.renderers import null_renderer\n    \n        class view:\n            __view_defaults__ = {'containment': 'tests.test_config.IDummy'}\n    \n            def __init__(self, request):\n                pass\n    \n            def __call__(self):\n                return 'OK'\n    \n        config = self._makeOne(autocommit=True)\n        config.add_view(view=view, renderer=null_renderer)\n        wrapper = self._getViewCallable(config)\n        context = DummyContext()\n        directlyProvides(context, IDummy)\n        request = self._makeRequest(config)\n>       self.assertEqual(wrapper(context, request), 'OK')\n\nr2e_tests/test_config/test_views.py:2253: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/views.py:170: in attr_view\n    return view(context, request)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ncontext = <r2e_tests.test_config.test_views.DummyContext object at 0x70b6ff9a08b0>\nrequest = <r2e_tests.test_config.test_views.DummyRequest object at 0x70b6ff9a0d90>\n\n    def predicate_wrapper(context, request):\n        for predicate in preds:\n            if not predicate(context, request):\n                view_name = getattr(view, '__name__', view)\n>               raise PredicateMismatch(\n                    'predicate mismatch for view %s (%s)'\n                    % (view_name, predicate.text())\n                )\nE               pyramid.exceptions.PredicateMismatch: predicate mismatch for view view (containment = tests.test_config.IDummy)\n\nsrc/pyramid/config/views.py:192: PredicateMismatch\n_ TestViewsConfigurationMixin.test_add_view_with_view_defaults_viewname_is_dottedname_kwarg _\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_with_view_defaults_viewname_is_dottedname_kwarg>\n\n    def test_add_view_with_view_defaults_viewname_is_dottedname_kwarg(self):\n        from zope.interface import directlyProvides\n    \n        from pyramid.exceptions import PredicateMismatch\n        from pyramid.renderers import null_renderer\n    \n        config = self._makeOne(autocommit=True)\n        config.add_view(\n            view='tests.test_config.test_views.DummyViewDefaultsClass',\n            renderer=null_renderer,\n        )\n        wrapper = self._getViewCallable(config)\n        context = DummyContext()\n        directlyProvides(context, IDummy)\n        request = self._makeRequest(config)\n>       self.assertEqual(wrapper(context, request), 'OK')\n\nr2e_tests/test_config/test_views.py:2273: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/views.py:170: in attr_view\n    return view(context, request)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ncontext = <r2e_tests.test_config.test_views.DummyContext object at 0x70b6ff936b50>\nrequest = <r2e_tests.test_config.test_views.DummyRequest object at 0x70b6ffa22370>\n\n    def predicate_wrapper(context, request):\n        for predicate in preds:\n            if not predicate(context, request):\n                view_name = getattr(view, '__name__', view)\n>               raise PredicateMismatch(\n                    'predicate mismatch for view %s (%s)'\n                    % (view_name, predicate.text())\n                )\nE               pyramid.exceptions.PredicateMismatch: predicate mismatch for view DummyViewDefaultsClass (containment = tests.test_config.IDummy)\n\nsrc/pyramid/config/views.py:192: PredicateMismatch\n_ TestViewsConfigurationMixin.test_add_view_with_view_defaults_viewname_is_dottedname_nonkwarg _\n\nself = <r2e_tests.test_config.test_views.TestViewsConfigurationMixin testMethod=test_add_view_with_view_defaults_viewname_is_dottedname_nonkwarg>\n\n    def test_add_view_with_view_defaults_viewname_is_dottedname_nonkwarg(self):\n        from zope.interface import directlyProvides\n    \n        from pyramid.exceptions import PredicateMismatch\n        from pyramid.renderers import null_renderer\n    \n        config = self._makeOne(autocommit=True)\n        config.add_view(\n            'tests.test_config.test_views.DummyViewDefaultsClass',\n            renderer=null_renderer,\n        )\n        wrapper = self._getViewCallable(config)\n        context = DummyContext()\n        directlyProvides(context, IDummy)\n        request = self._makeRequest(config)\n>       self.assertEqual(wrapper(context, request), 'OK')\n\nr2e_tests/test_config/test_views.py:2293: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/pyramid/config/views.py:170: in attr_view\n    return view(context, request)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\ncontext = <r2e_tests.test_config.test_views.DummyContext object at 0x70b6ff40f9a0>\nrequest = <r2e_tests.test_config.test_views.DummyRequest object at 0x70b6ff40f6a0>\n\n    def predicate_wrapper(context, request):\n        for predicate in preds:\n            if not predicate(context, request):\n                view_name = getattr(view, '__name__', view)\n>               raise PredicateMismatch(\n                    'predicate mismatch for view %s (%s)'\n                    % (view_name, predicate.text())\n                )\nE               pyramid.exceptions.PredicateMismatch: predicate mismatch for view DummyViewDefaultsClass (containment = tests.test_config.IDummy)\n\nsrc/pyramid/config/views.py:192: PredicateMismatch\n_________ TestStaticURLInfo.test_generate_url_cachebust_with_overrides _________\n\nself = <r2e_tests.test_config.test_views.TestStaticURLInfo testMethod=test_generate_url_cachebust_with_overrides>\n\n    def test_generate_url_cachebust_with_overrides(self):\n        config = testing.setUp()\n        try:\n            request = testing.DummyRequest()\n            config.add_static_view('static', 'path')\n            config.override_asset(\n                'tests.test_config:path/', 'tests.test_config:other_path/'\n            )\n    \n            def cb(val):\n                def cb_(request, subpath, kw):\n                    kw['_query'] = {'x': val}\n                    return subpath, kw\n    \n                return cb_\n    \n            config.add_cache_buster('path', cb('foo'))\n            result = request.static_url('path/foo.png')\n            self.assertEqual(result, 'http://example.com/static/foo.png?x=foo')\n            config.add_cache_buster('other_path', cb('bar'), explicit=True)\n            result = request.static_url('path/foo.png')\n>           self.assertEqual(result, 'http://example.com/static/foo.png?x=bar')\nE           AssertionError: 'http://example.com/static/foo.png?x=foo' != 'http://example.com/static/foo.png?x=bar'\nE           - http://example.com/static/foo.png?x=foo\nE           ?                                     ^^^\nE           + http://example.com/static/foo.png?x=bar\nE           ?                                     ^^^\n\nr2e_tests/test_config/test_views.py:4085: AssertionError\n___________________ Test_view_description.test_without_text ____________________\n\nself = <r2e_tests.test_config.test_views.Test_view_description testMethod=test_without_text>\n\n    def test_without_text(self):\n        def view():  # pragma: no cover\n            pass\n    \n        result = self._callFUT(view)\n>       self.assertEqual(result, 'function tests.test_config.test_views.view')\nE       AssertionError: 'function r2e_tests.test_config.test_views.view' != 'function tests.test_config.test_views.view'\nE       - function r2e_tests.test_config.test_views.view\nE       ?          ----\nE       + function tests.test_config.test_views.view\n\nr2e_tests/test_config/test_views.py:4289: AssertionError\n______________________ TestPRoutesCommand.test_class_view ______________________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_class_view>\n\n    def test_class_view(self):\n        from pyramid.renderers import null_renderer as nr\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b')\n        config.add_view(\n            route_name='foo',\n            view=dummy.DummyView,\n            attr='view',\n            renderer=nr,\n            request_method='POST',\n        )\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.dummy.DummyView.view',\n            'POST',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.dummy.DummyView.view', 'POST'] != ['foo', '/a/b', 'tests.test_scripts.dummy.DummyView.view', 'POST']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.dummy.DummyView.view'\nE       'tests.test_scripts.dummy.DummyView.view'\nE       \nE       - ['foo', '/a/b', 'r2e_tests.test_scripts.dummy.DummyView.view', 'POST']\nE       ?                  ----\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.dummy.DummyView.view', 'POST']\n\nr2e_tests/test_scripts/test_proutes.py:247: AssertionError\n_________ TestPRoutesCommand.test_one_route_all_methods_view_only_post _________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_one_route_all_methods_view_only_post>\n\n    def test_one_route_all_methods_view_only_post(self):\n        from pyramid.renderers import null_renderer as nr\n    \n        def view1(context, request):  # pragma: no cover\n            return 'view1'\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b')\n        config.add_view(\n            route_name='foo', view=view1, renderer=nr, request_method='POST'\n        )\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.test_proutes.view1',\n            'POST',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'POST'] != ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'POST']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'tests.test_scripts.test_proutes.view1'\nE       \nE       - ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'POST']\nE       ?                  ----\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'POST']\n\nr2e_tests/test_scripts/test_proutes.py:362: AssertionError\n_________ TestPRoutesCommand.test_one_route_only_post_view_all_methods _________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_one_route_only_post_view_all_methods>\n\n    def test_one_route_only_post_view_all_methods(self):\n        from pyramid.renderers import null_renderer as nr\n    \n        def view1(context, request):  # pragma: no cover\n            return 'view1'\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b', request_method='POST')\n        config.add_view(route_name='foo', view=view1, renderer=nr)\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.test_proutes.view1',\n            'POST',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'POST'] != ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'POST']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'tests.test_scripts.test_proutes.view1'\nE       \nE       - ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'POST']\nE       ?                  ----\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'POST']\n\nr2e_tests/test_scripts/test_proutes.py:388: AssertionError\n________ TestPRoutesCommand.test_one_route_only_post_view_post_and_get _________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_one_route_only_post_view_post_and_get>\n\n    def test_one_route_only_post_view_post_and_get(self):\n        from pyramid.renderers import null_renderer as nr\n    \n        def view1(context, request):  # pragma: no cover\n            return 'view1'\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b', request_method='POST')\n        config.add_view(\n            route_name='foo',\n            view=view1,\n            renderer=nr,\n            request_method=('POST', 'GET'),\n        )\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.test_proutes.view1',\n            'POST',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'POST'] != ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'POST']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'tests.test_scripts.test_proutes.view1'\nE       \nE       - ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'POST']\nE       ?                  ----\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'POST']\n\nr2e_tests/test_scripts/test_proutes.py:419: AssertionError\n_____ TestPRoutesCommand.test_one_route_with_long_name_one_view_registered _____\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_one_route_with_long_name_one_view_registered>\n\n    def test_one_route_with_long_name_one_view_registered(self):\n        from zope.interface import Interface\n    \n        from pyramid.interfaces import IRouteRequest, IView, IViewClassifier\n    \n        registry = self._makeRegistry()\n    \n        def view():  # pragma: no cover\n            pass\n    \n        class IMyRoute(Interface):\n            pass\n    \n        registry.registerAdapter(\n            view, (IViewClassifier, IMyRoute, Interface), IView, ''\n        )\n    \n        registry.registerUtility(\n            IMyRoute, IRouteRequest, name='very_long_name_123'\n        )\n    \n        command = self._makeOne()\n        route = dummy.DummyRoute(\n            'very_long_name_123', '/and_very_long_pattern_as_well'\n        )\n        mapper = dummy.DummyMapper(route)\n        command._get_mapper = lambda *arg: mapper\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()[:3]\n>       self.assertEqual(\n            compare_to,\n            [\n                'very_long_name_123',\n                '/and_very_long_pattern_as_well',\n                'tests.test_scripts.test_proutes.view',\n            ],\n        )\nE       AssertionError: Lists differ: ['ver[32 chars]g_pattern_as_well', 'r2e_tests.test_scripts.test_proutes.view'] != ['ver[32 chars]g_pattern_as_well', 'tests.test_scripts.test_proutes.view']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view'\nE       'tests.test_scripts.test_proutes.view'\nE       \nE         ['very_long_name_123',\nE          '/and_very_long_pattern_as_well',\nE       -  'r2e_tests.test_scripts.test_proutes.view']\nE       ?   ----\nE       \nE       +  'tests.test_scripts.test_proutes.view']\n\nr2e_tests/test_scripts/test_proutes.py:211: AssertionError\n______ TestPRoutesCommand.test_route_is_get_view_request_method_not_post _______\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_route_is_get_view_request_method_not_post>\n\n    def test_route_is_get_view_request_method_not_post(self):\n        from pyramid.config import not_\n        from pyramid.renderers import null_renderer as nr\n    \n        def view1(context, request):  # pragma: no cover\n            return 'view1'\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b', request_method='GET')\n        config.add_view(\n            route_name='foo',\n            view=view1,\n            renderer=nr,\n            request_method=not_('POST'),\n        )\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.test_proutes.view1',\n            'GET',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'GET'] != ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'GET']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'tests.test_scripts.test_proutes.view1'\nE       \nE       - ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', 'GET']\nE       ?                  ----\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', 'GET']\n\nr2e_tests/test_scripts/test_proutes.py:559: AssertionError\n____________ TestPRoutesCommand.test_route_request_method_mismatch _____________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_route_request_method_mismatch>\n\n    def test_route_request_method_mismatch(self):\n        from pyramid.renderers import null_renderer as nr\n    \n        def view1(context, request):  # pragma: no cover\n            return 'view1'\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b', request_method='POST')\n        config.add_view(\n            route_name='foo', view=view1, renderer=nr, request_method='GET'\n        )\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.test_proutes.view1',\n            '<route',\n            'mismatch>',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1[20 chars]ch>'] != ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', '[16 chars]ch>']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'tests.test_scripts.test_proutes.view1'\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', '<route', 'mismatch>']\nE       - ['foo',\nE       -  '/a/b',\nE       -  'r2e_tests.test_scripts.test_proutes.view1',\nE       -  '<route',\nE       -  'mismatch>']\n\nr2e_tests/test_scripts/test_proutes.py:448: AssertionError\n__________________ TestPRoutesCommand.test_route_static_views __________________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_route_static_views>\n\n    def test_route_static_views(self):\n        config = self._makeConfig(autocommit=True)\n        config.add_static_view('static', 'static', cache_max_age=3600)\n        path2 = os.path.normpath('/var/www/static')\n        config.add_static_view(name='static2', path=path2)\n        config.add_static_view(\n            name='pyramid_scaffold',\n            path='pyramid:scaffolds/starter/+package+/static',\n        )\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 5)\n    \n        expected = [\n            [\n                '__static/',\n                '/static/*subpath',\n                'tests.test_scripts:static/',\n                '*',\n            ],\n            ['__static2/', '/static2/*subpath', path2 + os.sep, '*'],\n            [\n                '__pyramid_scaffold/',\n                '/pyramid_scaffold/*subpath',\n                'pyramid:scaffolds/starter/+package+/static/',\n                '*',\n            ],\n        ]\n    \n        for index, line in enumerate(L[2:]):\n            data = line.split()\n>           self.assertEqual(data, expected[index])\nE           AssertionError: Lists differ: ['__static/', '/static/*subpath', 'r2e_tests.test_scripts:static/', '*'] != ['__static/', '/static/*subpath', 'tests.test_scripts:static/', '*']\nE           \nE           First differing element 2:\nE           'r2e_tests.test_scripts:static/'\nE           'tests.test_scripts:static/'\nE           \nE           - ['__static/', '/static/*subpath', 'r2e_tests.test_scripts:static/', '*']\nE           ?                                    ----\nE           \nE           + ['__static/', '/static/*subpath', 'tests.test_scripts:static/', '*']\n\nr2e_tests/test_scripts/test_proutes.py:486: AssertionError\n__________ TestPRoutesCommand.test_single_route_multiview_registered ___________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_single_route_multiview_registered>\n\n    def test_single_route_multiview_registered(self):\n        from zope.interface import Interface\n    \n        from pyramid.interfaces import (\n            IMultiView,\n            IRouteRequest,\n            IViewClassifier,\n        )\n    \n        registry = self._makeRegistry()\n    \n        def view():  # pragma: no cover\n            pass\n    \n        class IMyRoute(Interface):\n            pass\n    \n        multiview1 = dummy.DummyMultiView(\n            view, context='context', view_name='a1'\n        )\n    \n        registry.registerAdapter(\n            multiview1, (IViewClassifier, IMyRoute, Interface), IMultiView, ''\n        )\n        registry.registerUtility(IMyRoute, IRouteRequest, name='a')\n        command = self._makeOne()\n        route = dummy.DummyRoute('a', '/a')\n        mapper = dummy.DummyMapper(route)\n        command._get_mapper = lambda *arg: mapper\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()[:3]\n        view_module = 'tests.test_scripts.dummy'\n        view_str = '<tests.test_scripts.dummy.DummyMultiView'\n        final = f'{view_module}.{view_str}'\n    \n>       self.assertEqual(compare_to, ['a', '/a', final])\nE       AssertionError: Lists differ: ['a', '/a', 'r2e_tests.test_scripts.dummy.<r2e_tests.t[29 chars]iew'] != ['a', '/a', 'tests.test_scripts.dummy.<tests.test_scri[21 chars]iew']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.dummy.<r2e_tests.test_scripts.dummy.DummyMultiView'\nE       'tests.test_scripts.dummy.<tests.test_scripts.dummy.DummyMultiView'\nE       \nE       - ['a',\nE       -  '/a',\nE       -  'r2e_tests.test_scripts.dummy.<r2e_tests.test_scripts.dummy.DummyMultiView']\nE       ? ^ ^^^^                          ----\nE       \nE       + ['a', '/a', 'tests.test_scripts.dummy.<tests.test_scripts.dummy.DummyMultiView']\nE       ? ^ ^^^^^^^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:325: AssertionError\n___________ TestPRoutesCommand.test_single_route_one_view_registered ___________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_single_route_one_view_registered>\n\n    def test_single_route_one_view_registered(self):\n        from zope.interface import Interface\n    \n        from pyramid.interfaces import IRouteRequest, IView, IViewClassifier\n    \n        registry = self._makeRegistry()\n    \n        def view():  # pragma: no cover\n            pass\n    \n        class IMyRoute(Interface):\n            pass\n    \n        registry.registerAdapter(\n            view, (IViewClassifier, IMyRoute, Interface), IView, ''\n        )\n        registry.registerUtility(IMyRoute, IRouteRequest, name='a')\n        command = self._makeOne()\n        route = dummy.DummyRoute('a', '/a')\n        mapper = dummy.DummyMapper(route)\n        command._get_mapper = lambda *arg: mapper\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()[:3]\n>       self.assertEqual(\n            compare_to, ['a', '/a', 'tests.test_scripts.test_proutes.view']\n        )\nE       AssertionError: Lists differ: ['a', '/a', 'r2e_tests.test_scripts.test_proutes.view'] != ['a', '/a', 'tests.test_scripts.test_proutes.view']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view'\nE       'tests.test_scripts.test_proutes.view'\nE       \nE       - ['a', '/a', 'r2e_tests.test_scripts.test_proutes.view']\nE       ?              ----\nE       \nE       + ['a', '/a', 'tests.test_scripts.test_proutes.view']\n\nr2e_tests/test_scripts/test_proutes.py:173: AssertionError\n______________________ TestPRoutesCommand.test_view_glob _______________________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_view_glob>\n\n    def test_view_glob(self):\n        from pyramid.config import not_\n        from pyramid.renderers import null_renderer as nr\n    \n        def view1(context, request):  # pragma: no cover\n            return 'view1'\n    \n        def view2(context, request):  # pragma: no cover\n            return 'view2'\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b')\n        config.add_view(\n            route_name='foo',\n            view=view1,\n            renderer=nr,\n            request_method=not_('POST'),\n        )\n    \n        config.add_route('bar', '/b/a')\n        config.add_view(\n            route_name='bar',\n            view=view2,\n            renderer=nr,\n            request_method=not_('POST'),\n        )\n    \n        command = self._makeOne()\n        command.args.glob = '*foo*'\n    \n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.test_proutes.view1',\n            '!POST,*',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', '!POST,*'] != ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', '!POST,*']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'tests.test_scripts.test_proutes.view1'\nE       \nE       - ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', '!POST,*']\nE       ?                  ----\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', '!POST,*']\n\nr2e_tests/test_scripts/test_proutes.py:636: AssertionError\n_____________ TestPRoutesCommand.test_view_request_method_not_post _____________\n\nself = <r2e_tests.test_scripts.test_proutes.TestPRoutesCommand testMethod=test_view_request_method_not_post>\n\n    def test_view_request_method_not_post(self):\n        from pyramid.config import not_\n        from pyramid.renderers import null_renderer as nr\n    \n        def view1(context, request):  # pragma: no cover\n            return 'view1'\n    \n        config = self._makeConfig(autocommit=True)\n        config.add_route('foo', '/a/b')\n        config.add_view(\n            route_name='foo',\n            view=view1,\n            renderer=nr,\n            request_method=not_('POST'),\n        )\n    \n        command = self._makeOne()\n        L = []\n        command.out = L.append\n        command.bootstrap = dummy.DummyBootstrap(registry=config.registry)\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(len(L), 3)\n        compare_to = L[-1].split()\n        expected = [\n            'foo',\n            '/a/b',\n            'tests.test_scripts.test_proutes.view1',\n            '!POST,*',\n        ]\n>       self.assertEqual(compare_to, expected)\nE       AssertionError: Lists differ: ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', '!POST,*'] != ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', '!POST,*']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'tests.test_scripts.test_proutes.view1'\nE       \nE       - ['foo', '/a/b', 'r2e_tests.test_scripts.test_proutes.view1', '!POST,*']\nE       ?                  ----\nE       \nE       + ['foo', '/a/b', 'tests.test_scripts.test_proutes.view1', '!POST,*']\n\nr2e_tests/test_scripts/test_proutes.py:591: AssertionError\n_____________ TestPServeCommand.test_config_file_finds_watch_files _____________\n\nself = <r2e_tests.test_scripts.test_pserve.TestPServeCommand testMethod=test_config_file_finds_watch_files>\n\n    def test_config_file_finds_watch_files(self):\n        inst = self._makeOne('development.ini')\n        loader = self.loader('/base/path.ini')\n        loader.settings = {\n            'pserve': {'watch_files': 'foo\\n/baz\\ntests.test_scripts:*.py'}\n        }\n        inst.pserve_file_config(loader, global_conf={'a': '1'})\n        self.assertEqual(loader.calls[0]['defaults'], {'a': '1'})\n>       self.assertEqual(\n            inst.watch_files,\n            {\n                os.path.abspath('/base/foo'),\n                os.path.abspath('/baz'),\n                os.path.abspath(os.path.join(here, '*.py')),\n            },\n        )\nE       AssertionError: Items in the first set but not the second:\nE       '/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/tests/test_scripts/*.py'\nE       Items in the second set but not the first:\nE       '/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_scripts/*.py'\n\nr2e_tests/test_scripts/test_pserve.py:92: AssertionError\n____________ TestPViewsCommand.test_views_command_multi_view_nested ____________\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_multi_view_nested>\n\n    def test_views_command_multi_view_nested(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n        view1 = dummy.DummyView(context='context', view_name='a1')\n        view1.__name__ = 'view1'\n        view1.__view_attr__ = 'call'\n        multiview1 = dummy.DummyMultiView(\n            view1, context='context', view_name='a1'\n        )\n        multiview2 = dummy.DummyMultiView(\n            multiview1, context='context', view_name='a'\n        )\n        command._find_view = lambda arg1: multiview2\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.dummy.DummyMultiView')\nE       AssertionError: '    r2e_tests.test_scripts.dummy.DummyMultiView' != '    tests.test_scripts.dummy.DummyMultiView'\nE       -     r2e_tests.test_scripts.dummy.DummyMultiView\nE       ?     ----\nE       +     tests.test_scripts.dummy.DummyMultiView\n\nr2e_tests/test_scripts/test_pviews.py:475: AssertionError\n________________ TestPViewsCommand.test_views_command_multiview ________________\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_multiview>\n\n    def test_views_command_multiview(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n        view = dummy.DummyView(context='context')\n        view.__name__ = 'view'\n        view.__view_attr__ = 'call'\n        multiview = dummy.DummyMultiView(\n            view, context='context', view_name='a'\n        )\n        command._find_view = lambda arg1: multiview\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.dummy.view.call')\nE       AssertionError: '    r2e_tests.test_scripts.dummy.view.call' != '    tests.test_scripts.dummy.view.call'\nE       -     r2e_tests.test_scripts.dummy.view.call\nE       ?     ----\nE       +     tests.test_scripts.dummy.view.call\n\nr2e_tests/test_scripts/test_pviews.py:531: AssertionError\n________ TestPViewsCommand.test_views_command_multiview_with_permission ________\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_multiview_with_permission>\n\n    def test_views_command_multiview_with_permission(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n        view = dummy.DummyView(context='context')\n        view.__name__ = 'view'\n        view.__view_attr__ = 'call'\n        view.__permission__ = 'test'\n        multiview = dummy.DummyMultiView(\n            view, context='context', view_name='a'\n        )\n        command._find_view = lambda arg1: multiview\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.dummy.view.call')\nE       AssertionError: '    r2e_tests.test_scripts.dummy.view.call' != '    tests.test_scripts.dummy.view.call'\nE       -     r2e_tests.test_scripts.dummy.view.call\nE       ?     ----\nE       +     tests.test_scripts.dummy.view.call\n\nr2e_tests/test_scripts/test_pviews.py:555: AssertionError\n________ TestPViewsCommand.test_views_command_multiview_with_predicates ________\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_multiview_with_predicates>\n\n    def test_views_command_multiview_with_predicates(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n    \n        def predicate():  # pragma: no cover\n            pass\n    \n        predicate.text = lambda *arg: \"predicate = x\"\n        view = dummy.DummyView(context='context')\n        view.__name__ = 'view'\n        view.__view_attr__ = 'call'\n        view.__predicates__ = [predicate]\n        multiview = dummy.DummyMultiView(\n            view, context='context', view_name='a'\n        )\n        command._find_view = lambda arg1: multiview\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.dummy.view.call')\nE       AssertionError: '    r2e_tests.test_scripts.dummy.view.call' != '    tests.test_scripts.dummy.view.call'\nE       -     r2e_tests.test_scripts.dummy.view.call\nE       ?     ----\nE       +     tests.test_scripts.dummy.view.call\n\nr2e_tests/test_scripts/test_pviews.py:585: AssertionError\n_____ TestPViewsCommand.test_views_command_single_view_function_traversal ______\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_single_view_function_traversal>\n\n    def test_views_command_single_view_function_traversal(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n    \n        def view():  # pragma: no cover\n            pass\n    \n        view.__request_attrs__ = {'context': 'context', 'view_name': 'a'}\n        command._find_view = lambda arg1: view\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.test_pviews.view')\nE       AssertionError: '    r2e_tests.test_scripts.test_pviews.view' != '    tests.test_scripts.test_pviews.view'\nE       -     r2e_tests.test_scripts.test_pviews.view\nE       ?     ----\nE       +     tests.test_scripts.test_pviews.view\n\nr2e_tests/test_scripts/test_pviews.py:378: AssertionError\n____________ TestPViewsCommand.test_views_command_single_view_route ____________\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_single_view_route>\n\n    def test_views_command_single_view_route(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n        route = dummy.DummyRoute('a', '/a', matchdict={})\n        view = dummy.DummyView(\n            context='context', view_name='a', matched_route=route, subpath=''\n        )\n        command._find_view = lambda arg1: view\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n        self.assertEqual(L[6], '    Route:')\n        self.assertEqual(L[8], '    route name: a')\n        self.assertEqual(L[9], '    route pattern: /a')\n        self.assertEqual(L[10], '    route path: /a')\n        self.assertEqual(L[11], '    subpath: ')\n>       self.assertEqual(L[15], '        tests.test_scripts.dummy.DummyView')\nE       AssertionError: '        r2e_tests.test_scripts.dummy.DummyView' != '        tests.test_scripts.dummy.DummyView'\nE       -         r2e_tests.test_scripts.dummy.DummyView\nE       ?         ----\nE       +         tests.test_scripts.dummy.DummyView\n\nr2e_tests/test_scripts/test_pviews.py:449: AssertionError\n_ TestPViewsCommand.test_views_command_single_view_route_with_route_predicates _\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_single_view_route_with_route_predicates>\n\n    def test_views_command_single_view_route_with_route_predicates(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n    \n        def predicate():  # pragma: no cover\n            pass\n    \n        predicate.text = lambda *arg: \"predicate = x\"\n        route = dummy.DummyRoute('a', '/a', matchdict={}, predicate=predicate)\n        view = dummy.DummyView(\n            context='context', view_name='a', matched_route=route, subpath=''\n        )\n        command._find_view = lambda arg1: view\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n        self.assertEqual(L[6], '    Route:')\n        self.assertEqual(L[8], '    route name: a')\n        self.assertEqual(L[9], '    route pattern: /a')\n        self.assertEqual(L[10], '    route path: /a')\n        self.assertEqual(L[11], '    subpath: ')\n        self.assertEqual(L[12], '    route predicates (predicate = x)')\n>       self.assertEqual(L[16], '        tests.test_scripts.dummy.DummyView')\nE       AssertionError: '        r2e_tests.test_scripts.dummy.DummyView' != '        tests.test_scripts.dummy.DummyView'\nE       -         r2e_tests.test_scripts.dummy.DummyView\nE       ?         ----\nE       +         tests.test_scripts.dummy.DummyView\n\nr2e_tests/test_scripts/test_pviews.py:508: AssertionError\n__________ TestPViewsCommand.test_views_command_single_view_traversal __________\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_single_view_traversal>\n\n    def test_views_command_single_view_traversal(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n        view = dummy.DummyView(context='context', view_name='a')\n        command._find_view = lambda arg1: view\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.dummy.DummyView')\nE       AssertionError: '    r2e_tests.test_scripts.dummy.DummyView' != '    tests.test_scripts.dummy.DummyView'\nE       -     r2e_tests.test_scripts.dummy.DummyView\nE       ?     ----\nE       +     tests.test_scripts.dummy.DummyView\n\nr2e_tests/test_scripts/test_pviews.py:356: AssertionError\n__ TestPViewsCommand.test_views_command_single_view_traversal_with_permission __\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_single_view_traversal_with_permission>\n\n    def test_views_command_single_view_traversal_with_permission(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n        view = dummy.DummyView(context='context', view_name='a')\n        view.__permission__ = 'test'\n        command._find_view = lambda arg1: view\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.dummy.DummyView')\nE       AssertionError: '    r2e_tests.test_scripts.dummy.DummyView' != '    tests.test_scripts.dummy.DummyView'\nE       -     r2e_tests.test_scripts.dummy.DummyView\nE       ?     ----\nE       +     tests.test_scripts.dummy.DummyView\n\nr2e_tests/test_scripts/test_pviews.py:397: AssertionError\n__ TestPViewsCommand.test_views_command_single_view_traversal_with_predicates __\n\nself = <r2e_tests.test_scripts.test_pviews.TestPViewsCommand testMethod=test_views_command_single_view_traversal_with_predicates>\n\n    def test_views_command_single_view_traversal_with_predicates(self):\n        from pyramid.registry import Registry\n    \n        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n    \n        def predicate():  # pragma: no cover\n            pass\n    \n        predicate.text = lambda *arg: \"predicate = x\"\n        view = dummy.DummyView(context='context', view_name='a')\n        view.__predicates__ = [predicate]\n        command._find_view = lambda arg1: view\n        command.args.config_uri = '/foo/bar/myapp.ini#myapp'\n        command.args.url = '/a'\n        result = command.run()\n        self.assertEqual(result, 0)\n        self.assertEqual(L[1], 'URL = /a')\n        self.assertEqual(L[3], '    context: context')\n        self.assertEqual(L[4], '    view name: a')\n>       self.assertEqual(L[8], '    tests.test_scripts.dummy.DummyView')\nE       AssertionError: '    r2e_tests.test_scripts.dummy.DummyView' != '    tests.test_scripts.dummy.DummyView'\nE       -     r2e_tests.test_scripts.dummy.DummyView\nE       ?     ----\nE       +     tests.test_scripts.dummy.DummyView\n\nr2e_tests/test_scripts/test_pviews.py:422: AssertionError\n=============================== warnings summary ===============================\nsrc/pyramid/path.py:3\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/src/pyramid/path.py:3: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html\n    import pkg_resources\n\n.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('paste')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    declare_namespace(pkg)\n\n.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154\n.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154\n.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154\n.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154\n.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/.venv/lib/python3.8/site-packages/pkg_resources/__init__.py:3154: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('zope')`.\n  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages\n    declare_namespace(pkg)\n\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authentication_policy\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authorization_policy_only\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy_dottedname\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_dottedname\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_only\nr2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_no_default_permission_no_explicit_permission\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/src/pyramid/config/__init__.py:405: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    self.set_authorization_policy(authorization_policy)\n\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authentication_policy\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy_dottedname\nr2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_dottedname\nr2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_no_default_permission_no_explicit_permission\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/src/pyramid/config/__init__.py:408: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    self.set_authentication_policy(authentication_policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_no_authz_policy\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:37: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authentication_policy(policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_no_authz_policy_autocommit\n  /home/gcpuser/.local/share/uv/python/cpython-3.8.20-linux-x86_64-gnu/lib/python3.8/unittest/case.py:202: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    callable_obj(*args, **kwargs)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_authz_policy\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:59: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authentication_policy(authn_policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_authz_policy_autocommit\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:80: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authentication_policy(authn_policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_security_policy\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:31: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authentication_policy(authn_policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_no_authn_policy\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:92: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authorization_policy(policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_no_authn_policy_autocommit\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:100: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authorization_policy(policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_with_authn_policy\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:115: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authorization_policy(authz_policy)\n\nr2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_with_authn_policy_autocommit\n  /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_e77b72dc3a0890911514ad8aab8c8bf26c4591d0/r2e_tests/test_config/test_security.py:131: DeprecationWarning: Authentication and authorization policies have been deprecated in favor of security policies.  See \"Upgrading Authentication/Authorization\" in \"What's New in Pyramid 2.0\" of the documentation for more information.\n    config.set_authorization_policy(authz_policy)\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n==================================== PASSES ====================================\n=========================== short test summary info ============================\nPASSED r2e_tests/test_1.py::TestBWCompat::test_bwcompat_forbidden\nPASSED r2e_tests/test_1.py::TestBWCompat::test_bwcompat_notfound\nPASSED r2e_tests/test_1.py::TestNotFound::test_it\nPASSED r2e_tests/test_1.py::TestNotFound::test_response_equivalence\nPASSED r2e_tests/test_1.py::TestForbidden::test_it\nPASSED r2e_tests/test_1.py::TestForbidden::test_response_equivalence\nPASSED r2e_tests/test_1.py::TestConfigurationConflictError::test_non_sortable_discriminators_in_str\nPASSED r2e_tests/test_1.py::TestConfigurationConflictError::test_str\nPASSED r2e_tests/test_1.py::TestConfigurationExecutionError::test_str\nPASSED r2e_tests/test_1.py::TestCyclicDependencyError::test___str__\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_autocommit_with_introspectables\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_autocommit_with_introspectables_introspection_off\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_kw_is_None\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_kw_is_not_None\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_nonautocommit_with_config_info\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_nonautocommit_with_introspectables\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_branching_nonautocommit_without_config_info\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_action_nonautocommit_with_introspectables_introspection_off\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_autocommit_no_conflicts\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_commit_conflict_resolved_with_include\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_commit_conflict_resolved_with_two_includes_and_local\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_commit_conflict_simple\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_commit_conflict_with_two_includes\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_conflict_set_forbidden_view\nPASSED r2e_tests/test_config/test_actions.py::ActionConfiguratorMixinTests::test_conflict_set_notfound_view\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_action_simple\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_action_with_includepath\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_action_with_includepath_and_info\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_action_with_info\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_action_with_introspectables\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_action_with_order\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_execute_actions_dicts\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_execute_actions_error\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_execute_actions_tuples\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_execute_actions_with_introspectable_no_callable\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_execute_actions_with_introspectables\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_executing_conflicting_action_across_orders\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_executing_conflicting_action_across_reentrant_orders\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_it\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_processSpec\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_reentrant_action\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_reentrant_action_error\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_reentrant_action_with_deferred_discriminator\nPASSED r2e_tests/test_config/test_actions.py::TestActionState::test_reentrant_action_without_clear\nPASSED r2e_tests/test_config/test_actions.py::Test_reentrant_action_functional::test_deferred_discriminator\nPASSED r2e_tests/test_config/test_actions.py::Test_reentrant_action_functional::test_functional\nPASSED r2e_tests/test_config/test_actions.py::Test_resolveConflicts::test_conflicts_across_orders\nPASSED r2e_tests/test_config/test_actions.py::Test_resolveConflicts::test_it_conflict\nPASSED r2e_tests/test_config/test_actions.py::Test_resolveConflicts::test_it_success_dicts\nPASSED r2e_tests/test_config/test_actions.py::Test_resolveConflicts::test_it_success_tuples\nPASSED r2e_tests/test_config/test_actions.py::Test_resolveConflicts::test_it_with_actions_grouped_by_order\nPASSED r2e_tests/test_config/test_actions.py::Test_resolveConflicts::test_override_success_across_orders\nPASSED r2e_tests/test_config/test_actions.py::TestActionInfo::test___str__\nPASSED r2e_tests/test_config/test_actions.py::TestActionInfo::test_class_conforms\nPASSED r2e_tests/test_config/test_actions.py::TestActionInfo::test_ctor\nPASSED r2e_tests/test_config/test_actions.py::TestActionInfo::test_instance_conforms\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_object_event_subscriber\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_resource_url_default_resource_iface_means_Interface\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_resource_url_nodefault_resource_iface\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_response_adapter\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_response_adapter_dottednames\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_response_adapter_self\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_defaults\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_dottednames\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_iface_specified\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_predicate\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_with_default_type_predicates_False\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_with_default_type_predicates_True\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_with_specific_type_and_predicates_False\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_subscriber_with_specific_type_and_predicates_True\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_traverser_default_iface_means_Interface\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_traverser_introspectables\nPASSED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_traverser_nondefault_iface\nPASSED r2e_tests/test_config/test_adapters.py::Test_eventonly::test_defaults\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test__override_already_registered\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test__override_not_yet_registered\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_absdirectory\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_absfile\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_file\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_absdirectory\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_absfile\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_directory\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_missing_abspath\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_package\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_package_with_absdirectory\nPASSED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_samename\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_filename_override_returns_value\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_stream_no_overrides\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_stream_override_returns_None\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_stream_override_returns_value\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_string_no_overrides\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_string_override_returns_None\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_string_override_returns_value\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_has_resource_no_overrides\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_has_resource_override_returns_None\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_has_resource_override_returns_True\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_resource_isdir_no_overrides\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_resource_isdir_override_returns_False\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_resource_isdir_override_returns_None\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_resource_listdir_no_overrides\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_resource_listdir_override_returns_None\nPASSED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_resource_listdir_override_returns_values\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_class_conforms_to_IPEP302Loader\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_class_conforms_to_IPackageOverrides\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_package_already_has_loader_of_different_type\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_package_already_has_loader_of_same_type\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_registers_loader_type\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_sets_loader\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_ctor_sets_local_state\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_filtered_sources\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_code_pkg_has___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_code_pkg_has_no___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_data_pkg_has___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_data_pkg_has_no___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_filename\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_filename_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_source_pkg_has___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_source_pkg_has_no___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_stream\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_stream_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_string\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_get_string_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_has_resource\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_has_resource_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_insert_directory\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_insert_emptystring\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_insert_file\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_instance_conforms_to_IPEP302Loader\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_instance_conforms_to_IPackageOverrides\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_is_package_pkg_has___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_is_package_pkg_has_no___loader__\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_isdir_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_isdir_false\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_isdir_true\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_listdir\nPASSED r2e_tests/test_config/test_assets.py::TestPackageOverrides::test_listdir_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_exists\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_exists_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_exists_with_prefix\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_filename_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_stream\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_stream_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_stream_with_prefix\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_string\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_string_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_string_with_prefix\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_isdir_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_isdir_false\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_isdir_true\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_listdir\nPASSED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_listdir_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_exists\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_exists_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_exists_with_prefix\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_filename\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_filename_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_filename_with_prefix\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_stream\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_stream_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_stream_with_prefix\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_string\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_string_file_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_get_string_with_prefix\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_isdir_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_isdir_false\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_isdir_true\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_listdir\nPASSED r2e_tests/test_config/test_assets.py::TestFSAssetSource::test_listdir_doesnt_exist\nPASSED r2e_tests/test_config/test_assets.py::TestDirectoryOverride::test_it_match\nPASSED r2e_tests/test_config/test_assets.py::TestDirectoryOverride::test_it_no_match\nPASSED r2e_tests/test_config/test_assets.py::TestFileOverride::test_it_match\nPASSED r2e_tests/test_config/test_assets.py::TestFileOverride::test_it_no_match\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_None_callable\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_None_callable_and_no_name\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_None_callable_conflict\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_callable\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_text_name\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_add_request_method_with_unnamed_callable\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_execution_policy\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_execution_policy_to_None\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_multiple_request_methods_conflict\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_request_factory\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_response_factory\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_root_factory\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_root_factory_as_None\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_session_factory\nPASSED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_invalid_kwargs\nPASSED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_missing_dir\nPASSED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_no_specs\nPASSED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_set_locale_negotiator\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test___getattr__matches\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test___getattr__matches_no_action_wrap\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test___getattr__missing_when_directives_dont_exist\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test___getattr__missing_when_directives_exist\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_adds__lock\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_adds_clear_view_lookup_cache\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_has_listeners\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_notify\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_queryAdapterOrSelf\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test__fix_registry_registerSelfAdapter\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_absolute_asset_spec_already_absolute\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_absolute_asset_spec_notastring\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_absolute_asset_spec_relative\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_begin\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_begin_does_not_propagate_request_for_diff_registry\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_begin_overrides_request\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_begin_propagates_request_for_same_registry\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_begin_with_request\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_context_manager\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_alternate_renderers\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authentication_policy\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_authorization_policy_only\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_default_permission\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_default_renderers\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_default_view_mapper\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_default_webob_response_adapter_registered\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_exceptionresponse_view_None\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_exceptionresponse_view_custom\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_httpexception_view_default\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_no_root_factory\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_noreg_custom_settings\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_noreg_debug_logger_non_None\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_security_policy\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_session_factory\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_with_introspection\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_with_package_registry\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_with_root_factory\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_end\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_hook_zca\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_threadlocals_active\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_with_dotted_name\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_with_missing_source_file\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_with_module_defaults_to_includeme\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_with_module_defaults_to_includeme_missing\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_with_nested_route_prefix\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_with_route_prefix\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_introspector_decorator\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_make_wsgi_app\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_maybe_dotted_notstring_success\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_maybe_dotted_string_fail\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_maybe_dotted_string_success\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_conflict\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_dottedname_package\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_with_extra_kw\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_with_ignore\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_scan_integration_with_onerror\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_alternate_renderers\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authentication_policy_dottedname\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_dottedname\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_authorization_policy_only\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_calls_fix_registry\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_custom_settings\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_debug_logger_name\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_debug_logger_non_None\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_default_permission\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_dottedname_root_factory\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_explicit_notfound_trumps_iexceptionresponse\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_includes\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_includes_spaces\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_locale_negotiator\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_locale_negotiator_dottedname\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_no_default_root_factory\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_registers_default_exceptionresponse_views\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_registers_default_view_predicates\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_registers_default_webob_iresponse_adapter\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_request_factory\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_request_factory_dottedname\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_response_factory\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_unhook_zca\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_with_package\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_with_package_package\nPASSED r2e_tests/test_config/test_init.py::TestConfigurator_add_directive::test_directive_persists_across_configurator_creations\nPASSED r2e_tests/test_config/test_init.py::TestConfigurator_add_directive::test_extend_action_method_successful\nPASSED r2e_tests/test_config/test_init.py::TestConfigurator_add_directive::test_extend_same_name_doesnt_conflict\nPASSED r2e_tests/test_config/test_init.py::TestConfigurator__add_predicate::test_factory_as_object\nPASSED r2e_tests/test_config/test_init.py::TestGlobalRegistriesIntegration::test_global_registries\nPASSED r2e_tests/test_config/test_init.py::TestGlobalRegistriesIntegration::test_global_registries_empty\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_custom_predicates_can_affect_traversal\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_different_custom_predicates_with_same_hash\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_mixed\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_mixed_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_with_values\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_multiple_with_values_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_simple\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_simple_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_with_value\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_with_value_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_header_with_value_fails_case\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_is_authenticated_false_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_is_authenticated_false_matches\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_is_authenticated_true_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_is_authenticated_true_matches\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_match_param_from_dict\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_match_param_from_dict_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_match_param_from_string\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_match_param_from_string_fails\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_notted\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_ordering_importance_and_number\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_ordering_importance_of_predicates\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_ordering_number_of_predicates\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_ordering_xhr_and_request_method_trump_only_containment\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_predicate_close_matches\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_predicate_text_is_correct\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_predicate_text_is_correct_when_multiple\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_request_method_ordering_hashes_same\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_request_method_sequence\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_traverse_has_remainder_already\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_traverse_matches\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_traverse_matches_with_highorder_chars\nPASSED r2e_tests/test_config/test_predicates.py::TestPredicateList::test_unknown_predicate\nPASSED r2e_tests/test_config/test_predicates.py::Test_sort_accept_offers::test_default_specificities\nPASSED r2e_tests/test_config/test_predicates.py::Test_sort_accept_offers::test_params_inherit_type_prefs\nPASSED r2e_tests/test_config/test_predicates.py::Test_sort_accept_offers::test_params_order\nPASSED r2e_tests/test_config/test_predicates.py::Test_sort_accept_offers::test_specific_type_order\nPASSED r2e_tests/test_config/test_rendering.py::TestRenderingConfiguratorMixin::test_add_default_renderers\nPASSED r2e_tests/test_config/test_rendering.py::TestRenderingConfiguratorMixin::test_add_renderer\nPASSED r2e_tests/test_config/test_rendering.py::TestRenderingConfiguratorMixin::test_add_renderer_dottedname_factory\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_defaults\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_discriminator\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_effective_principals_deprecated\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_path_no_pattern\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_pattern_with_path\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_view_with_view_attr\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_view_with_view_context\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_view_with_view_permission\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_no_view_with_view_renderer\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_accept\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_accept_list\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_custom_predicates\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_factory\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_header\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_inherit_errors\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_is_authenticated\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_path_info\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_path_info_highorder\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_path_info_regex\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_pregenerator\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_request_method\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_request_param\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_root_slash_with_route_prefix\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_route_prefix\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_route_prefix_with_inherit_slash\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_static\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_wildcard_accept_raises\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_xhr\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_get_routes_mapper_already_registered\nPASSED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_get_routes_mapper_not_yet_registered\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_add_permission\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_changing_set_default_csrf_options\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_no_authz_policy\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_no_authz_policy_autocommit\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_authz_policy\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_authz_policy_autocommit\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authentication_policy_with_security_policy\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_no_authn_policy\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_no_authn_policy_autocommit\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_with_authn_policy\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_authorization_policy_with_authn_policy_autocommit\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_default_csrf_options\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_default_permission\nPASSED r2e_tests/test_config/test_security.py::ConfiguratorSecurityMethodsTests::test_set_security_policy\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test__set_settings_as_None\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test__set_settings_as_dictwithvalues\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test__set_settings_does_not_uses_original_dict\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_add_settings_settings_None\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_add_settings_settings_already_registered\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_add_settings_settings_not_yet_registered\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_get_settings_nosettings\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_get_settings_withsettings\nPASSED r2e_tests/test_config/test_settings.py::TestSettingsConfiguratorMixin::test_settings_parameter_dict_is_never_updated\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_csrf_trusted_origins\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_debug_all\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_debug_authorization\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_debug_notfound\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_debug_routematch\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_debug_templates\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_default_locale_name\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_noargs\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_originals_kept\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_prevent_cachebust\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_prevent_http_cache\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_reload_all\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_reload_assets\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_reload_resources\nPASSED r2e_tests/test_config/test_settings.py::TestSettings::test_reload_templates\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_renderer\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_renderer_explicitrenderer\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_renderer_twice\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_subscriber_defaults\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_subscriber_multiple\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_subscriber_single\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_template\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_resources\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_securitypolicy\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_securitypolicy_forget_result\nPASSED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_securitypolicy_remember_result\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_instance\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_name_ingress\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_name_main\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_over_ingress\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_over_ingress_iterable\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_under_main\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_under_main_iterable\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_unsuitable\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_conflict\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_names_with_over_nonstringoriter\nPASSED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_names_with_under_nonstringoriter\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test___call___explicit\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test___call___implicit\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_add_explicit\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_add_implicit\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_1\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_2\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_3\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_4\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_5\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_conflict_direct\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_conflict_indirect\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_over_and_under_partials\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_over_partial\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_over_partial_with_fallback\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_under_partial\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_missing_under_partial_with_fallback\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_with_missing_fallbacks\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_with_multiple_matching_fallbacks\nPASSED r2e_tests/test_config/test_tweens.py::TestTweens::test_implicit_ordering_with_partial_fallbacks\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_accept_view_order_override\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_accept_view_order_throws_on_type_mismatch\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_accept_view_order_throws_on_wildcard\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_exception_only\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_for_\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_name\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_permission\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_disallows_require_csrf\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_with_subclass\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_allows_other_predicates\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_context\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_for_\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_name\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_permission\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_disallows_require_csrf\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_no_view_argument\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_with_renderer\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_normal_and_exception_view_intr_derived_callable\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_allows_other_predicates\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_append_slash\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_append_slash_custom_response\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_context\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_for_\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_name\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_permission\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_disallows_require_csrf\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_no_view_argument\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_with_renderer\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_static_view_absolute\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_static_view_here_no_utility_registered\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_static_view_package_relative\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_instance\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_instance_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_instancemethod\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_instancemethod_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_oldstyle_class\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_as_oldstyle_class_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_class_method_no_attr\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_context_as_class\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_context_as_iface\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_context_trumps_for\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_custom_more_preds_first_bests_fewer_preds_last\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_custom_predicate_bests_standard_predicate\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_default_phash_overrides_default_phash\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_default_phash_overrides_no_phash\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_does_not_accept_iterable_accept\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_default_phash_overrides_default_phash\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_default_phash_overrides_no_phash\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_multiview_replaces_existing_securedview\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_multiview_replaces_existing_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_multiview_replaces_multiviews\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_multiview_replaces_only_exc_multiview\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_mulview_replaces_existing_view_with___accept__\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_same_phash_overrides_existing_single_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exc_with_accept_multiview_replaces_existing_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exception_only\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exception_only_misconfiguration\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exception_only_no_regular_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_exception_register_secured_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_for_as_class\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_for_as_iface\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_mixed_case_replaces_existing_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview___discriminator__\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_call_ordering\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_context_superclass_then_subclass\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_exception_superclass_then_subclass\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_replaces_existing_securedview\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_replaces_existing_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_replaces_existing_view_with___accept__\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_multiview_replaces_multiview\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_register_secured_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_same_phash_overrides_existing_single_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_same_predicates\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_view_callable_None_no_renderer\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_view_callable_None_with_renderer\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_view_callable_dottedname\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_accept_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_accept_multiview_replaces_existing_view\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_accept_nomatch\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_containment_false\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_containment_true\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_csrf_header\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_csrf_param\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_custom_predicates_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_custom_predicates_nomatch\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_decorator\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_decorator_tuple\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_default_permission_no_explicit_permission\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_default_renderer\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_function_callable\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_function_callable_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_badregex\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_noval_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_noval_nomatch\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_val_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_val_missing\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_header_val_nomatch\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_http_cache\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_is_authenticated_false_matches\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_is_authenticated_false_no_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_is_authenticated_true_matches\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_is_authenticated_true_no_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_mapper\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_missing_csrf_header\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_name\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_name_unicode\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_no_default_permission_no_explicit_permission\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_nonexistant_route_name\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_path_info_badregex\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_path_info_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_path_info_nomatch\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_permission\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_false\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_get_implies_head\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_sequence_conflict\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_sequence_false\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_sequence_true\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_method_true\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_param_noval_false\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_param_noval_true\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_param_val_false\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_param_val_true\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_type\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_type_and_route_name\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_type_as_iface\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_request_type_as_noniface\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_route_name\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_route_name_exception\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_tmpl_renderer_factory_introspector_missing\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_tmpl_renderer_factory_no_renderer_factory\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_tmpl_renderer_factory_with_renderer_factory\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_config_and_view_defaults_conflicts\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_config_and_view_defaults_doesnt_conflict\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_wildcard_accept_raises\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_xhr_false\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_xhr_true\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_wrapped_view_is_decorated\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_views_with_accept_multiview_replaces_existing\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_default_accept_view_order\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_derive_view_dottedname\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_derive_view_function\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_derive_view_with_default_renderer_no_explicit_renderer\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_derive_view_with_default_renderer_with_explicit_renderer\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_effective_principals_deprecated\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_set_view_mapper\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_set_view_mapper_dottedname\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_view_with_most_specific_predicate\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_view_with_most_specific_predicate_with_mismatch\nPASSED r2e_tests/test_config/test_views.py::Test_runtime_exc_view::test_call\nPASSED r2e_tests/test_config/test_views.py::Test_runtime_exc_view::test_call_dispatches_on_exception\nPASSED r2e_tests/test_config/test_views.py::Test_runtime_exc_view::test_permitted\nPASSED r2e_tests/test_config/test_views.py::Test_runtime_exc_view::test_permitted_dispatches_on_exception\nPASSED r2e_tests/test_config/test_views.py::Test_requestonly::test_defaults\nPASSED r2e_tests/test_config/test_views.py::Test_requestonly::test_otherattr\nPASSED r2e_tests/test_config/test_views.py::Test_isexception::test_is_IException\nPASSED r2e_tests/test_config/test_views.py::Test_isexception::test_is_IException_subinterface\nPASSED r2e_tests/test_config/test_views.py::Test_isexception::test_is_exception_class\nPASSED r2e_tests/test_config/test_views.py::Test_isexception::test_is_exception_instance\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test___call__\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test___call__intermediate_not_found\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test___call__raise_not_found_isnt_interpreted_as_pred_mismatch\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test___call_permissive_has_call_permissive\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test___call_permissive_has_no_call_permissive\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test__call__not_found\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test__call__with_accept_match\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test__call__with_accept_miss\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test__call_permissive__not_found\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_add\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_add_with_phash\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_add_with_phash_override_accept\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_add_with_phash_override_accept2\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_class_implements_ISecuredView\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_get_views\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_get_views_best_match_returns_None\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_get_views_no_self_accepts\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_get_views_request_has_no_accept\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_instance_implements_ISecuredView\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_match_not_found\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_match_predicate_fails\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_match_predicate_succeeds\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_multiple_with_functions_as_views\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_permitted\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_permitted_no_match_with__permitted__\nPASSED r2e_tests/test_config/test_views.py::TestMultiView::test_permitted_no_views\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test__view_as_function_with_attr\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_function_context_and_request\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_function_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_function_requestonly_with_attr\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_instance_context_and_request\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_instance_context_and_request_and_attr\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_instance_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_instance_requestonly_with_attr\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_newstyle_class_context_and_request\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_newstyle_class_context_and_request_with_attr\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_newstyle_class_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_newstyle_class_requestonly_with_attr\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_oldstyle_class_context_and_request\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_oldstyle_class_context_and_request_with_attr\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_oldstyle_class_requestonly\nPASSED r2e_tests/test_config/test_views.py::TestDefaultViewMapper::test_view_as_oldstyle_class_requestonly_with_attr\nPASSED r2e_tests/test_config/test_views.py::Test_preserve_view_attrs::test_it_different\nPASSED r2e_tests/test_config/test_views.py::Test_preserve_view_attrs::test_it_different_with_existing_original_view\nPASSED r2e_tests/test_config/test_views.py::Test_preserve_view_attrs::test_it_same\nPASSED r2e_tests/test_config/test_views.py::Test_preserve_view_attrs::test_it_view_is_None\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_already_exists\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebust_prevented\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster_abspath\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster_for_more_specific_path\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster_overwrite\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_cachebuster_overwrite_explicit\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_package_root\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_url_noendslash\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_url_noscheme\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_url_withendslash\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_context\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_for_\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_permission\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_renderer\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_add_viewname_with_route_prefix\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_missing\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_quoting\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_registration_miss\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_route_url\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_slash_in_name1\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_slash_in_name2\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_cachebust\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_cachebust_abspath\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_cachebust_nomatch\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_quoted_remote\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_unquoted_local\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_with_custom_anchor\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_with_custom_query\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_verifyClass\nPASSED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_verifyObject\nPASSED r2e_tests/test_config/test_views.py::Test_view_description::test_with_text\nPASSED r2e_tests/test_scripts/test_common.py::TestParseVars::test_parse_vars_bad\nPASSED r2e_tests/test_scripts/test_common.py::TestParseVars::test_parse_vars_good\nPASSED r2e_tests/test_scripts/test_pdistreport.py::TestPDistReportCommand::test_no_dists\nPASSED r2e_tests/test_scripts/test_pdistreport.py::TestPDistReportCommand::test_with_dists\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_display_headers\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_has_bad_config_header\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_has_content_type_header_var\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_has_good_header_var\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_has_multiple_header_vars\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_configures_logging\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_get\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_options\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_patch\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_post\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_propfind\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_method_put\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_not_enough_args\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_path_doesnt_start_with_slash\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_response_has_no_charset\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_script_name\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_two_args\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_w_basic_auth\nPASSED r2e_tests/test_scripts/test_prequest.py::TestPRequestCommand::test_command_with_query_string\nPASSED r2e_tests/test_scripts/test_prequest.py::Test_main::test_it\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test__get_mapper\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_bad_args\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_bad_format\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_config_format_ini_commas\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_config_format_ini_newlines\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_config_format_ini_spaces\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_good_args\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_good_format\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_no_mapper\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_no_routes\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_as_wsgiapp\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_no_view\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_with_no_slash_prefix\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_no_route_registered\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_no_views_registered\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_one_view_registered_with_factory\nPASSED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_static_routes_included_in_list\nPASSED r2e_tests/test_scripts/test_proutes.py::Test_main::test_it\nPASSED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_config_file_finds_open_url\nPASSED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_guess_server_url\nPASSED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_original_ignore_files\nPASSED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_parse_vars_bad\nPASSED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_parse_vars_good\nPASSED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_reload_call_hupper_with_correct_args\nPASSED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_run_no_args\nPASSED r2e_tests/test_scripts/test_pserve.py::Test_main::test_it\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_custom_section_override\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_default_shell_option\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_errors_with_unknown_shell\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_check_variable_override_order\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_custom_items\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_default_shell\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_ipython\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_pythonstartup\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_loads_setup_from_options\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_setup\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_command_setup_generator\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_list_shells\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_shell_entry_points\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_shell_ordering\nPASSED r2e_tests/test_scripts/test_pshell.py::TestPShellCommand::test_shell_override\nPASSED r2e_tests/test_scripts/test_pshell.py::Test_python_shell_runner::test_it\nPASSED r2e_tests/test_scripts/test_pshell.py::Test_main::test_it\nPASSED r2e_tests/test_scripts/test_ptweens.py::TestPTweensCommand::test__get_tweens\nPASSED r2e_tests/test_scripts/test_ptweens.py::TestPTweensCommand::test_command_implicit_and_explicit_tweens\nPASSED r2e_tests/test_scripts/test_ptweens.py::TestPTweensCommand::test_command_implicit_tweens_only\nPASSED r2e_tests/test_scripts/test_ptweens.py::TestPTweensCommand::test_command_no_tweens\nPASSED r2e_tests/test_scripts/test_ptweens.py::Test_main::test_it\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_multi_routes_all_match\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_multi_routes_none_match\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_multi_routes_some_match\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_no_match\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_no_match_multiview_registered\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_route_multiview\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_route_multiview_no_view_registered\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_route_no_multiview\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_traversal\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test__find_view_traversal_multiview\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_not_found\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_not_found_url_starts_without_slash\nPASSED r2e_tests/test_scripts/test_pviews.py::Test_main::test_it\nFAILED r2e_tests/test_1.py::TestBadCSRFOrigin::test_response_equivalence - As...\nFAILED r2e_tests/test_1.py::TestBadCSRFToken::test_response_equivalence - Ass...\nFAILED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_resource_url_adapter_dotted_names\nFAILED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_resource_url_adapter_introspectables\nFAILED r2e_tests/test_config/test_adapters.py::AdaptersConfiguratorMixinTests::test_add_traverser_dotted_names\nFAILED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_directory\nFAILED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_directory_with_package\nFAILED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_file_with_file\nFAILED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_package_with_directory\nFAILED r2e_tests/test_config/test_assets.py::TestAssetsConfiguratorMixin::test_override_asset_package_with_package\nFAILED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_filename_no_overrides\nFAILED r2e_tests/test_config/test_assets.py::TestOverrideProvider::test_get_resource_filename_override_returns_None\nFAILED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_filename\nFAILED r2e_tests/test_config/test_assets.py::TestPackageAssetSource::test_get_filename_with_prefix\nFAILED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_request_factory_dottedname\nFAILED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_response_factory_dottedname\nFAILED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_root_factory_dottedname\nFAILED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_session_factory_dottedname\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_abspath\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_asset_spec\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_asset_spec_existing_translation_dirs\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_doesnt_use_override_w_autocommit\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_multiple_specs\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_multiple_specs_multiple_calls\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_override_multiple_specs_multiple_calls\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_uses_override_out_of_order\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_add_translation_dirs_uses_override_w_autocommit\nFAILED r2e_tests/test_config/test_i18n.py::TestI18NConfiguratorMixin::test_set_locale_negotiator_dottedname\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_no_registry\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_ctor_noreg_debug_logger_None_default\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_constant_root_package\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_include_with_python_callable\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_debug_logger_None_default\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_tweens\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_with_package_module\nFAILED r2e_tests/test_config/test_init.py::TestConfigurator_add_directive::test_add_directive_with_custom_callable\nFAILED r2e_tests/test_config/test_init.py::TestConfigurator_add_directive::test_add_directive_with_partial\nFAILED r2e_tests/test_config/test_init.py::TestConfigurator_add_directive::test_extend_with_dotted_name\nFAILED r2e_tests/test_config/test_init.py::TestConfigurator_add_directive::test_extend_with_python_callable\nFAILED r2e_tests/test_config/test_init.py::TestConfigurator__add_predicate::test_factory_as_dotted_name\nFAILED r2e_tests/test_config/test_routes.py::RoutesConfiguratorMixinTests::test_add_route_with_factory_dottedname\nFAILED r2e_tests/test_config/test_testing.py::TestingConfiguratorMixinTests::test_testing_add_subscriber_dottedname\nFAILED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tween_dottedname\nFAILED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_names_distinct\nFAILED r2e_tests/test_config/test_tweens.py::TestTweensConfiguratorMixin::test_add_tweens_names_with_underover\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_exception_view_with_view_defaults\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_forbidden_view_with_view_defaults\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_notfound_view_with_view_defaults\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_static_view_package_here_relative\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_context_as_dottedname\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_for__as_dottedname\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_containment_dottedname\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_template_renderer\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_template_renderer_no_callable\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_defaults\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_defaults_viewname_is_dottedname_kwarg\nFAILED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_defaults_viewname_is_dottedname_nonkwarg\nFAILED r2e_tests/test_config/test_views.py::TestStaticURLInfo::test_generate_url_cachebust_with_overrides\nFAILED r2e_tests/test_config/test_views.py::Test_view_description::test_without_text\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_class_view\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_one_route_all_methods_view_only_post\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_one_route_only_post_view_all_methods\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_one_route_only_post_view_post_and_get\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_one_route_with_long_name_one_view_registered\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_is_get_view_request_method_not_post\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_request_method_mismatch\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_route_static_views\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_multiview_registered\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_single_route_one_view_registered\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_view_glob\nFAILED r2e_tests/test_scripts/test_proutes.py::TestPRoutesCommand::test_view_request_method_not_post\nFAILED r2e_tests/test_scripts/test_pserve.py::TestPServeCommand::test_config_file_finds_watch_files\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multi_view_nested\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview_with_permission\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview_with_predicates\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_function_traversal\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_route\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_route_with_route_predicates\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal_with_permission\nFAILED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal_with_predicates\n================= 82 failed, 755 passed, 28 warnings in 5.29s ==================\n",
    "old_commit_res_stderr": ""
}
CHANGES.rst src/pyramid/exceptions.py tests/test_exceptions.py
We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[ISSUE]
**Title:** Inconsistent HTTP Status Messages for CSRF Exceptions

**Description:**
When handling Cross-Site Request Forgery (CSRF) exceptions, the HTTP status messages returned are inconsistent with standard bad request responses. Specifically, raising `BadCSRFOrigin` or `BadCSRFToken` results in status messages like `'400 Bad CSRF Origin'` and `'400 Bad CSRF Token'` instead of the expected `'400 Bad Request'`. This inconsistency can lead to unexpected behaviors in client applications that rely on standard HTTP status codes for error handling.

**Example Buggy Code:**
```python
from pyramid.exceptions import BadCSRFOrigin, BadCSRFToken
from pyramid.httpexceptions import HTTPBadRequest

# Handling a bad CSRF origin
response_origin = BadCSRFOrigin()
print(response_origin.status)  # Outputs: '400 Bad CSRF Origin'

# Handling a bad CSRF token
response_token = BadCSRFToken()
print(response_token.status)  # Outputs: '400 Bad CSRF Token'
```

**Expected Behavior:**
Both `BadCSRFOrigin` and `BadCSRFToken` should return a standard `'400 Bad Request'` status message to ensure consistency with other bad request errors and to facilitate uniform error handling on the client side.

**Actual Behavior:**
Instead of returning `'400 Bad Request'`, the exceptions return customized status messages:
- `'400 Bad CSRF Origin'`
- `'400 Bad CSRF Token'`

This divergence from the standard can cause issues in scenarios where clients expect a generic bad request response for HTTP 400 errors.

[/ISSUE]
--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.

--- BEGIN FILE ---
```
### src/pyramid/exceptions.py
from pyramid.httpexceptions import HTTPBadRequest, HTTPForbidden, HTTPNotFound

NotFound = HTTPNotFound  # bw compat
Forbidden = HTTPForbidden  # bw compat


class BadCSRFOrigin(HTTPBadRequest):
    """
    This exception indicates the request has failed cross-site request forgery
    origin validation.
    """

    title = "Bad CSRF Origin"
    explanation = (
        "Access is denied. This server can not verify that the origin or "
        "referrer of your request matches the current site. Either your "
        "browser supplied the wrong Origin or Referrer or it did not supply "
        "one at all."
    )


class BadCSRFToken(HTTPBadRequest):
    """
    This exception indicates the request has failed cross-site request
    forgery token validation.
    """

    title = 'Bad CSRF Token'
    explanation = (
        'Access is denied.  This server can not verify that your cross-site '
        'request forgery token belongs to your login session.  Either you '
        'supplied the wrong cross-site request forgery token or your session '
        'no longer exists.  This may be due to session timeout or because '
        'browser is not supplying the credentials required, as can happen '
        'when the browser has cookies turned off.'
    )


class PredicateMismatch(HTTPNotFound):
    """
    This exception is raised by multiviews when no view matches
    all given predicates.

    This exception subclasses the :class:`HTTPNotFound` exception for a
    specific reason: if it reaches the main exception handler, it should
    be treated as :class:`HTTPNotFound`` by any exception view
    registrations. Thus, typically, this exception will not be seen
    publicly.

    However, this exception will be raised if the predicates of all
    views configured to handle another exception context cannot be
    successfully matched.  For instance, if a view is configured to
    handle a context of ``HTTPForbidden`` and the configured with
    additional predicates, then :class:`PredicateMismatch` will be
    raised if:

    * An original view callable has raised :class:`HTTPForbidden` (thus
      invoking an exception view); and
    * The given request fails to match all predicates for said
      exception view associated with :class:`HTTPForbidden`.

    The same applies to any type of exception being handled by an
    exception view.
    """


class URLDecodeError(UnicodeDecodeError):
    """
    This exception is raised when :app:`Pyramid` cannot
    successfully decode a URL or a URL path segment.  This exception
    behaves just like the Python builtin
    :exc:`UnicodeDecodeError`. It is a subclass of the builtin
    :exc:`UnicodeDecodeError` exception only for identity purposes,
    mostly so an exception view can be registered when a URL cannot be
    decoded.
    """


class ConfigurationError(Exception):
    """Raised when inappropriate input values are supplied to an API
    method of a :term:`Configurator`"""


class ConfigurationConflictError(ConfigurationError):
    """Raised when a configuration conflict is detected during action
    processing"""

    def __init__(self, conflicts):
        self._conflicts = conflicts

    def __str__(self):
        r = ["Conflicting configuration actions"]
        for discriminator, infos in self._conflicts.items():
            r.append(f"  For: {discriminator}")
            for info in infos:
                for line in str(info).rstrip().split('\n'):
                    r.append("    " + line)

        return '\n'.join(r)


class ConfigurationExecutionError(ConfigurationError):
    """An error occurred during execution of a configuration action"""

    def __init__(self, etype, evalue, info):
        self.etype, self.evalue, self.info = etype, evalue, info

    def __str__(self):
        return f"{self.etype}: {self.evalue}\n  in:\n  {self.info}"


class CyclicDependencyError(Exception):
    """The exception raised when the Pyramid topological sorter detects a
    cyclic dependency."""

    def __init__(self, cycles):
        self.cycles = cycles

    def __str__(self):
        L = []
        cycles = self.cycles
        for cycle in cycles:
            dependent = cycle
            dependees = cycles[cycle]
            L.append(f'{dependent!r} sorts before {dependees!r}')
        msg = 'Implicit ordering cycle:' + '; '.join(L)
        return msg

```
--- END FILE ---

Please first localize the bug based on the issue statement, and then generate *SEARCH/REPLACE* edits to fix the issue.

Every *SEARCH/REPLACE* edit must use this format:
1. The file path
2. The start of search block: <<<<<<< SEARCH
3. A contiguous chunk of lines to search for in the existing source code
4. The dividing line: =======
5. The lines to replace into the source code
6. The end of the replace block: >>>>>>> REPLACE

Here is an example:

```python
### mathweb/flask/app.py
<<<<<<< SEARCH
from flask import Flask
=======
import math
from flask import Flask
>>>>>>> REPLACE
```
</solution>

Please note that the *SEARCH/REPLACE* edit REQUIRES PROPER INDENTATION. If you would like to add the line '        print(x)', you must fully write that out, with all those spaces before the code!
Wrap each *SEARCH/REPLACE* edit in a code block as shown in the example above. If you have multiple *SEARCH/REPLACE* edits, use a separate code block for each one.
[ISSUE]
**Title:** Inconsistent HTTP Status Messages for CSRF Exceptions

**Description:**
When handling Cross-Site Request Forgery (CSRF) exceptions, the HTTP status messages returned are inconsistent with standard bad request responses. Specifically, raising `BadCSRFOrigin` or `BadCSRFToken` results in status messages like `'400 Bad CSRF Origin'` and `'400 Bad CSRF Token'` instead of the expected `'400 Bad Request'`. This inconsistency can lead to unexpected behaviors in client applications that rely on standard HTTP status codes for error handling.

**Example Buggy Code:**
```python
from pyramid.exceptions import BadCSRFOrigin, BadCSRFToken
from pyramid.httpexceptions import HTTPBadRequest

# Handling a bad CSRF origin
response_origin = BadCSRFOrigin()
print(response_origin.status)  # Outputs: '400 Bad CSRF Origin'

# Handling a bad CSRF token
response_token = BadCSRFToken()
print(response_token.status)  # Outputs: '400 Bad CSRF Token'
```

**Expected Behavior:**
Both `BadCSRFOrigin` and `BadCSRFToken` should return a standard `'400 Bad Request'` status message to ensure consistency with other bad request errors and to facilitate uniform error handling on the client side.

**Actual Behavior:**
Instead of returning `'400 Bad Request'`, the exceptions return customized status messages:
- `'400 Bad CSRF Origin'`
- `'400 Bad CSRF Token'`

This divergence from the standard can cause issues in scenarios where clients expect a generic bad request response for HTTP 400 errors.

[/ISSUE]
{
    "TestBWCompat.test_bwcompat_forbidden": "PASSED",
    "TestBWCompat.test_bwcompat_notfound": "PASSED",
    "TestBadCSRFOrigin.test_response_equivalence": "PASSED",
    "TestBadCSRFToken.test_response_equivalence": "PASSED",
    "TestNotFound.test_it": "PASSED",
    "TestNotFound.test_response_equivalence": "PASSED",
    "TestForbidden.test_it": "PASSED",
    "TestForbidden.test_response_equivalence": "PASSED",
    "TestConfigurationConflictError.test_non_sortable_discriminators_in_str": "PASSED",
    "TestConfigurationConflictError.test_str": "PASSED",
    "TestConfigurationExecutionError.test_str": "PASSED",
    "TestCyclicDependencyError.test___str__": "PASSED",
    "ActionConfiguratorMixinTests.test_action_autocommit_with_introspectables": "PASSED",
    "ActionConfiguratorMixinTests.test_action_autocommit_with_introspectables_introspection_off": "PASSED",
    "ActionConfiguratorMixinTests.test_action_branching_kw_is_None": "PASSED",
    "ActionConfiguratorMixinTests.test_action_branching_kw_is_not_None": "PASSED",
    "ActionConfiguratorMixinTests.test_action_branching_nonautocommit_with_config_info": "PASSED",
    "ActionConfiguratorMixinTests.test_action_branching_nonautocommit_with_introspectables": "PASSED",
    "ActionConfiguratorMixinTests.test_action_branching_nonautocommit_without_config_info": "PASSED",
    "ActionConfiguratorMixinTests.test_action_nonautocommit_with_introspectables_introspection_off": "PASSED",
    "ActionConfiguratorMixinTests.test_autocommit_no_conflicts": "PASSED",
    "ActionConfiguratorMixinTests.test_commit_conflict_resolved_with_include": "PASSED",
    "ActionConfiguratorMixinTests.test_commit_conflict_resolved_with_two_includes_and_local": "PASSED",
    "ActionConfiguratorMixinTests.test_commit_conflict_simple": "PASSED",
    "ActionConfiguratorMixinTests.test_commit_conflict_with_two_includes": "PASSED",
    "ActionConfiguratorMixinTests.test_conflict_set_forbidden_view": "PASSED",
    "ActionConfiguratorMixinTests.test_conflict_set_notfound_view": "PASSED",
    "TestActionState.test_action_simple": "PASSED",
    "TestActionState.test_action_with_includepath": "PASSED",
    "TestActionState.test_action_with_includepath_and_info": "PASSED",
    "TestActionState.test_action_with_info": "PASSED",
    "TestActionState.test_action_with_introspectables": "PASSED",
    "TestActionState.test_action_with_order": "PASSED",
    "TestActionState.test_execute_actions_dicts": "PASSED",
    "TestActionState.test_execute_actions_error": "PASSED",
    "TestActionState.test_execute_actions_tuples": "PASSED",
    "TestActionState.test_execute_actions_with_introspectable_no_callable": "PASSED",
    "TestActionState.test_execute_actions_with_introspectables": "PASSED",
    "TestActionState.test_executing_conflicting_action_across_orders": "PASSED",
    "TestActionState.test_executing_conflicting_action_across_reentrant_orders": "PASSED",
    "TestActionState.test_it": "PASSED",
    "TestActionState.test_processSpec": "PASSED",
    "TestActionState.test_reentrant_action": "PASSED",
    "TestActionState.test_reentrant_action_error": "PASSED",
    "TestActionState.test_reentrant_action_with_deferred_discriminator": "PASSED",
    "TestActionState.test_reentrant_action_without_clear": "PASSED",
    "Test_reentrant_action_functional.test_deferred_discriminator": "PASSED",
    "Test_reentrant_action_functional.test_functional": "PASSED",
    "Test_resolveConflicts.test_conflicts_across_orders": "PASSED",
    "Test_resolveConflicts.test_it_conflict": "PASSED",
    "Test_resolveConflicts.test_it_success_dicts": "PASSED",
    "Test_resolveConflicts.test_it_success_tuples": "PASSED",
    "Test_resolveConflicts.test_it_with_actions_grouped_by_order": "PASSED",
    "Test_resolveConflicts.test_override_success_across_orders": "PASSED",
    "TestActionInfo.test___str__": "PASSED",
    "TestActionInfo.test_class_conforms": "PASSED",
    "TestActionInfo.test_ctor": "PASSED",
    "TestActionInfo.test_instance_conforms": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_object_event_subscriber": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_resource_url_default_resource_iface_means_Interface": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_resource_url_nodefault_resource_iface": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_response_adapter": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_response_adapter_dottednames": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_response_adapter_self": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_subscriber_defaults": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_subscriber_dottednames": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_subscriber_iface_specified": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_subscriber_predicate": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_subscriber_with_default_type_predicates_False": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_subscriber_with_default_type_predicates_True": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_subscriber_with_specific_type_and_predicates_False": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_subscriber_with_specific_type_and_predicates_True": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_traverser_default_iface_means_Interface": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_traverser_introspectables": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_traverser_nondefault_iface": "PASSED",
    "Test_eventonly.test_defaults": "PASSED",
    "TestAssetsConfiguratorMixin.test__override_already_registered": "PASSED",
    "TestAssetsConfiguratorMixin.test__override_not_yet_registered": "PASSED",
    "TestAssetsConfiguratorMixin.test_override_asset_directory_with_absdirectory": "PASSED",
    "TestAssetsConfiguratorMixin.test_override_asset_directory_with_absfile": "PASSED",
    "TestAssetsConfiguratorMixin.test_override_asset_directory_with_file": "PASSED",
    "TestAssetsConfiguratorMixin.test_override_asset_file_with_absdirectory": "PASSED",
    "TestAssetsConfiguratorMixin.test_override_asset_file_with_absfile": "PASSED",
    "TestAssetsConfiguratorMixin.test_override_asset_file_with_directory": "PASSED",
    "TestAssetsConfiguratorMixin.test_override_asset_file_with_missing_abspath": "PASSED",
    "TestAssetsConfiguratorMixin.test_override_asset_file_with_package": "PASSED",
    "TestAssetsConfiguratorMixin.test_override_asset_package_with_absdirectory": "PASSED",
    "TestAssetsConfiguratorMixin.test_override_asset_samename": "PASSED",
    "TestOverrideProvider.test_get_resource_filename_override_returns_value": "PASSED",
    "TestOverrideProvider.test_get_resource_stream_no_overrides": "PASSED",
    "TestOverrideProvider.test_get_resource_stream_override_returns_None": "PASSED",
    "TestOverrideProvider.test_get_resource_stream_override_returns_value": "PASSED",
    "TestOverrideProvider.test_get_resource_string_no_overrides": "PASSED",
    "TestOverrideProvider.test_get_resource_string_override_returns_None": "PASSED",
    "TestOverrideProvider.test_get_resource_string_override_returns_value": "PASSED",
    "TestOverrideProvider.test_has_resource_no_overrides": "PASSED",
    "TestOverrideProvider.test_has_resource_override_returns_None": "PASSED",
    "TestOverrideProvider.test_has_resource_override_returns_True": "PASSED",
    "TestOverrideProvider.test_resource_isdir_no_overrides": "PASSED",
    "TestOverrideProvider.test_resource_isdir_override_returns_False": "PASSED",
    "TestOverrideProvider.test_resource_isdir_override_returns_None": "PASSED",
    "TestOverrideProvider.test_resource_listdir_no_overrides": "PASSED",
    "TestOverrideProvider.test_resource_listdir_override_returns_None": "PASSED",
    "TestOverrideProvider.test_resource_listdir_override_returns_values": "PASSED",
    "TestPackageOverrides.test_class_conforms_to_IPEP302Loader": "PASSED",
    "TestPackageOverrides.test_class_conforms_to_IPackageOverrides": "PASSED",
    "TestPackageOverrides.test_ctor_package_already_has_loader_of_different_type": "PASSED",
    "TestPackageOverrides.test_ctor_package_already_has_loader_of_same_type": "PASSED",
    "TestPackageOverrides.test_ctor_registers_loader_type": "PASSED",
    "TestPackageOverrides.test_ctor_sets_loader": "PASSED",
    "TestPackageOverrides.test_ctor_sets_local_state": "PASSED",
    "TestPackageOverrides.test_filtered_sources": "PASSED",
    "TestPackageOverrides.test_get_code_pkg_has___loader__": "PASSED",
    "TestPackageOverrides.test_get_code_pkg_has_no___loader__": "PASSED",
    "TestPackageOverrides.test_get_data_pkg_has___loader__": "PASSED",
    "TestPackageOverrides.test_get_data_pkg_has_no___loader__": "PASSED",
    "TestPackageOverrides.test_get_filename": "PASSED",
    "TestPackageOverrides.test_get_filename_file_doesnt_exist": "PASSED",
    "TestPackageOverrides.test_get_source_pkg_has___loader__": "PASSED",
    "TestPackageOverrides.test_get_source_pkg_has_no___loader__": "PASSED",
    "TestPackageOverrides.test_get_stream": "PASSED",
    "TestPackageOverrides.test_get_stream_file_doesnt_exist": "PASSED",
    "TestPackageOverrides.test_get_string": "PASSED",
    "TestPackageOverrides.test_get_string_file_doesnt_exist": "PASSED",
    "TestPackageOverrides.test_has_resource": "PASSED",
    "TestPackageOverrides.test_has_resource_file_doesnt_exist": "PASSED",
    "TestPackageOverrides.test_insert_directory": "PASSED",
    "TestPackageOverrides.test_insert_emptystring": "PASSED",
    "TestPackageOverrides.test_insert_file": "PASSED",
    "TestPackageOverrides.test_instance_conforms_to_IPEP302Loader": "PASSED",
    "TestPackageOverrides.test_instance_conforms_to_IPackageOverrides": "PASSED",
    "TestPackageOverrides.test_is_package_pkg_has___loader__": "PASSED",
    "TestPackageOverrides.test_is_package_pkg_has_no___loader__": "PASSED",
    "TestPackageOverrides.test_isdir_doesnt_exist": "PASSED",
    "TestPackageOverrides.test_isdir_false": "PASSED",
    "TestPackageOverrides.test_isdir_true": "PASSED",
    "TestPackageOverrides.test_listdir": "PASSED",
    "TestPackageOverrides.test_listdir_doesnt_exist": "PASSED",
    "TestPackageAssetSource.test_exists": "PASSED",
    "TestPackageAssetSource.test_exists_file_doesnt_exist": "PASSED",
    "TestPackageAssetSource.test_exists_with_prefix": "PASSED",
    "TestPackageAssetSource.test_get_filename_file_doesnt_exist": "PASSED",
    "TestPackageAssetSource.test_get_stream": "PASSED",
    "TestPackageAssetSource.test_get_stream_file_doesnt_exist": "PASSED",
    "TestPackageAssetSource.test_get_stream_with_prefix": "PASSED",
    "TestPackageAssetSource.test_get_string": "PASSED",
    "TestPackageAssetSource.test_get_string_file_doesnt_exist": "PASSED",
    "TestPackageAssetSource.test_get_string_with_prefix": "PASSED",
    "TestPackageAssetSource.test_isdir_doesnt_exist": "PASSED",
    "TestPackageAssetSource.test_isdir_false": "PASSED",
    "TestPackageAssetSource.test_isdir_true": "PASSED",
    "TestPackageAssetSource.test_listdir": "PASSED",
    "TestPackageAssetSource.test_listdir_doesnt_exist": "PASSED",
    "TestFSAssetSource.test_exists": "PASSED",
    "TestFSAssetSource.test_exists_file_doesnt_exist": "PASSED",
    "TestFSAssetSource.test_exists_with_prefix": "PASSED",
    "TestFSAssetSource.test_get_filename": "PASSED",
    "TestFSAssetSource.test_get_filename_file_doesnt_exist": "PASSED",
    "TestFSAssetSource.test_get_filename_with_prefix": "PASSED",
    "TestFSAssetSource.test_get_stream": "PASSED",
    "TestFSAssetSource.test_get_stream_file_doesnt_exist": "PASSED",
    "TestFSAssetSource.test_get_stream_with_prefix": "PASSED",
    "TestFSAssetSource.test_get_string": "PASSED",
    "TestFSAssetSource.test_get_string_file_doesnt_exist": "PASSED",
    "TestFSAssetSource.test_get_string_with_prefix": "PASSED",
    "TestFSAssetSource.test_isdir_doesnt_exist": "PASSED",
    "TestFSAssetSource.test_isdir_false": "PASSED",
    "TestFSAssetSource.test_isdir_true": "PASSED",
    "TestFSAssetSource.test_listdir": "PASSED",
    "TestFSAssetSource.test_listdir_doesnt_exist": "PASSED",
    "TestDirectoryOverride.test_it_match": "PASSED",
    "TestDirectoryOverride.test_it_no_match": "PASSED",
    "TestFileOverride.test_it_match": "PASSED",
    "TestFileOverride.test_it_no_match": "PASSED",
    "TestFactoriesMixin.test_add_request_method_with_None_callable": "PASSED",
    "TestFactoriesMixin.test_add_request_method_with_None_callable_and_no_name": "PASSED",
    "TestFactoriesMixin.test_add_request_method_with_None_callable_conflict": "PASSED",
    "TestFactoriesMixin.test_add_request_method_with_callable": "PASSED",
    "TestFactoriesMixin.test_add_request_method_with_text_name": "PASSED",
    "TestFactoriesMixin.test_add_request_method_with_unnamed_callable": "PASSED",
    "TestFactoriesMixin.test_set_execution_policy": "PASSED",
    "TestFactoriesMixin.test_set_execution_policy_to_None": "PASSED",
    "TestFactoriesMixin.test_set_multiple_request_methods_conflict": "PASSED",
    "TestFactoriesMixin.test_set_request_factory": "PASSED",
    "TestFactoriesMixin.test_set_response_factory": "PASSED",
    "TestFactoriesMixin.test_set_root_factory": "PASSED",
    "TestFactoriesMixin.test_set_root_factory_as_None": "PASSED",
    "TestFactoriesMixin.test_set_session_factory": "PASSED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_invalid_kwargs": "PASSED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_missing_dir": "PASSED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_no_specs": "PASSED",
    "TestI18NConfiguratorMixin.test_set_locale_negotiator": "PASSED",
    "ConfiguratorTests.test___getattr__matches": "PASSED",
    "ConfiguratorTests.test___getattr__matches_no_action_wrap": "PASSED",
    "ConfiguratorTests.test___getattr__missing_when_directives_dont_exist": "PASSED",
    "ConfiguratorTests.test___getattr__missing_when_directives_exist": "PASSED",
    "ConfiguratorTests.test__fix_registry_adds__lock": "PASSED",
    "ConfiguratorTests.test__fix_registry_adds_clear_view_lookup_cache": "PASSED",
    "ConfiguratorTests.test__fix_registry_has_listeners": "PASSED",
    "ConfiguratorTests.test__fix_registry_notify": "PASSED",
    "ConfiguratorTests.test__fix_registry_queryAdapterOrSelf": "PASSED",
    "ConfiguratorTests.test__fix_registry_registerSelfAdapter": "PASSED",
    "ConfiguratorTests.test_absolute_asset_spec_already_absolute": "PASSED",
    "ConfiguratorTests.test_absolute_asset_spec_notastring": "PASSED",
    "ConfiguratorTests.test_absolute_asset_spec_relative": "PASSED",
    "ConfiguratorTests.test_begin": "PASSED",
    "ConfiguratorTests.test_begin_does_not_propagate_request_for_diff_registry": "PASSED",
    "ConfiguratorTests.test_begin_overrides_request": "PASSED",
    "ConfiguratorTests.test_begin_propagates_request_for_same_registry": "PASSED",
    "ConfiguratorTests.test_begin_with_request": "PASSED",
    "ConfiguratorTests.test_context_manager": "PASSED",
    "ConfiguratorTests.test_ctor_alternate_renderers": "PASSED",
    "ConfiguratorTests.test_ctor_authentication_policy": "PASSED",
    "ConfiguratorTests.test_ctor_authorization_policy_only": "PASSED",
    "ConfiguratorTests.test_ctor_default_permission": "PASSED",
    "ConfiguratorTests.test_ctor_default_renderers": "PASSED",
    "ConfiguratorTests.test_ctor_default_view_mapper": "PASSED",
    "ConfiguratorTests.test_ctor_default_webob_response_adapter_registered": "PASSED",
    "ConfiguratorTests.test_ctor_exceptionresponse_view_None": "PASSED",
    "ConfiguratorTests.test_ctor_exceptionresponse_view_custom": "PASSED",
    "ConfiguratorTests.test_ctor_httpexception_view_default": "PASSED",
    "ConfiguratorTests.test_ctor_no_root_factory": "PASSED",
    "ConfiguratorTests.test_ctor_noreg_custom_settings": "PASSED",
    "ConfiguratorTests.test_ctor_noreg_debug_logger_non_None": "PASSED",
    "ConfiguratorTests.test_ctor_security_policy": "PASSED",
    "ConfiguratorTests.test_ctor_session_factory": "PASSED",
    "ConfiguratorTests.test_ctor_with_introspection": "PASSED",
    "ConfiguratorTests.test_ctor_with_package_registry": "PASSED",
    "ConfiguratorTests.test_ctor_with_root_factory": "PASSED",
    "ConfiguratorTests.test_end": "PASSED",
    "ConfiguratorTests.test_hook_zca": "PASSED",
    "ConfiguratorTests.test_include_threadlocals_active": "PASSED",
    "ConfiguratorTests.test_include_with_dotted_name": "PASSED",
    "ConfiguratorTests.test_include_with_missing_source_file": "PASSED",
    "ConfiguratorTests.test_include_with_module_defaults_to_includeme": "PASSED",
    "ConfiguratorTests.test_include_with_module_defaults_to_includeme_missing": "PASSED",
    "ConfiguratorTests.test_include_with_nested_route_prefix": "PASSED",
    "ConfiguratorTests.test_include_with_route_prefix": "PASSED",
    "ConfiguratorTests.test_introspector_decorator": "PASSED",
    "ConfiguratorTests.test_make_wsgi_app": "PASSED",
    "ConfiguratorTests.test_maybe_dotted_notstring_success": "PASSED",
    "ConfiguratorTests.test_maybe_dotted_string_fail": "PASSED",
    "ConfiguratorTests.test_maybe_dotted_string_success": "PASSED",
    "ConfiguratorTests.test_scan_integration": "PASSED",
    "ConfiguratorTests.test_scan_integration_conflict": "PASSED",
    "ConfiguratorTests.test_scan_integration_dottedname_package": "PASSED",
    "ConfiguratorTests.test_scan_integration_with_extra_kw": "PASSED",
    "ConfiguratorTests.test_scan_integration_with_ignore": "PASSED",
    "ConfiguratorTests.test_scan_integration_with_onerror": "PASSED",
    "ConfiguratorTests.test_setup_registry_alternate_renderers": "PASSED",
    "ConfiguratorTests.test_setup_registry_authentication_policy": "PASSED",
    "ConfiguratorTests.test_setup_registry_authentication_policy_dottedname": "PASSED",
    "ConfiguratorTests.test_setup_registry_authorization_policy_dottedname": "PASSED",
    "ConfiguratorTests.test_setup_registry_authorization_policy_only": "PASSED",
    "ConfiguratorTests.test_setup_registry_calls_fix_registry": "PASSED",
    "ConfiguratorTests.test_setup_registry_custom_settings": "PASSED",
    "ConfiguratorTests.test_setup_registry_debug_logger_name": "PASSED",
    "ConfiguratorTests.test_setup_registry_debug_logger_non_None": "PASSED",
    "ConfiguratorTests.test_setup_registry_default_permission": "PASSED",
    "ConfiguratorTests.test_setup_registry_dottedname_root_factory": "PASSED",
    "ConfiguratorTests.test_setup_registry_explicit_notfound_trumps_iexceptionresponse": "PASSED",
    "ConfiguratorTests.test_setup_registry_includes": "PASSED",
    "ConfiguratorTests.test_setup_registry_includes_spaces": "PASSED",
    "ConfiguratorTests.test_setup_registry_locale_negotiator": "PASSED",
    "ConfiguratorTests.test_setup_registry_locale_negotiator_dottedname": "PASSED",
    "ConfiguratorTests.test_setup_registry_no_default_root_factory": "PASSED",
    "ConfiguratorTests.test_setup_registry_registers_default_exceptionresponse_views": "PASSED",
    "ConfiguratorTests.test_setup_registry_registers_default_view_predicates": "PASSED",
    "ConfiguratorTests.test_setup_registry_registers_default_webob_iresponse_adapter": "PASSED",
    "ConfiguratorTests.test_setup_registry_request_factory": "PASSED",
    "ConfiguratorTests.test_setup_registry_request_factory_dottedname": "PASSED",
    "ConfiguratorTests.test_setup_registry_response_factory": "PASSED",
    "ConfiguratorTests.test_unhook_zca": "PASSED",
    "ConfiguratorTests.test_with_package": "PASSED",
    "ConfiguratorTests.test_with_package_package": "PASSED",
    "TestConfigurator_add_directive.test_directive_persists_across_configurator_creations": "PASSED",
    "TestConfigurator_add_directive.test_extend_action_method_successful": "PASSED",
    "TestConfigurator_add_directive.test_extend_same_name_doesnt_conflict": "PASSED",
    "TestConfigurator__add_predicate.test_factory_as_object": "PASSED",
    "TestGlobalRegistriesIntegration.test_global_registries": "PASSED",
    "TestGlobalRegistriesIntegration.test_global_registries_empty": "PASSED",
    "TestPredicateList.test_custom_predicates_can_affect_traversal": "PASSED",
    "TestPredicateList.test_different_custom_predicates_with_same_hash": "PASSED",
    "TestPredicateList.test_header_multiple": "PASSED",
    "TestPredicateList.test_header_multiple_fails": "PASSED",
    "TestPredicateList.test_header_multiple_mixed": "PASSED",
    "TestPredicateList.test_header_multiple_mixed_fails": "PASSED",
    "TestPredicateList.test_header_multiple_with_values": "PASSED",
    "TestPredicateList.test_header_multiple_with_values_fails": "PASSED",
    "TestPredicateList.test_header_simple": "PASSED",
    "TestPredicateList.test_header_simple_fails": "PASSED",
    "TestPredicateList.test_header_with_value": "PASSED",
    "TestPredicateList.test_header_with_value_fails": "PASSED",
    "TestPredicateList.test_header_with_value_fails_case": "PASSED",
    "TestPredicateList.test_is_authenticated_false_fails": "PASSED",
    "TestPredicateList.test_is_authenticated_false_matches": "PASSED",
    "TestPredicateList.test_is_authenticated_true_fails": "PASSED",
    "TestPredicateList.test_is_authenticated_true_matches": "PASSED",
    "TestPredicateList.test_match_param_from_dict": "PASSED",
    "TestPredicateList.test_match_param_from_dict_fails": "PASSED",
    "TestPredicateList.test_match_param_from_string": "PASSED",
    "TestPredicateList.test_match_param_from_string_fails": "PASSED",
    "TestPredicateList.test_notted": "PASSED",
    "TestPredicateList.test_ordering_importance_and_number": "PASSED",
    "TestPredicateList.test_ordering_importance_of_predicates": "PASSED",
    "TestPredicateList.test_ordering_number_of_predicates": "PASSED",
    "TestPredicateList.test_ordering_xhr_and_request_method_trump_only_containment": "PASSED",
    "TestPredicateList.test_predicate_close_matches": "PASSED",
    "TestPredicateList.test_predicate_text_is_correct": "PASSED",
    "TestPredicateList.test_predicate_text_is_correct_when_multiple": "PASSED",
    "TestPredicateList.test_request_method_ordering_hashes_same": "PASSED",
    "TestPredicateList.test_request_method_sequence": "PASSED",
    "TestPredicateList.test_traverse_has_remainder_already": "PASSED",
    "TestPredicateList.test_traverse_matches": "PASSED",
    "TestPredicateList.test_traverse_matches_with_highorder_chars": "PASSED",
    "TestPredicateList.test_unknown_predicate": "PASSED",
    "Test_sort_accept_offers.test_default_specificities": "PASSED",
    "Test_sort_accept_offers.test_params_inherit_type_prefs": "PASSED",
    "Test_sort_accept_offers.test_params_order": "PASSED",
    "Test_sort_accept_offers.test_specific_type_order": "PASSED",
    "TestRenderingConfiguratorMixin.test_add_default_renderers": "PASSED",
    "TestRenderingConfiguratorMixin.test_add_renderer": "PASSED",
    "TestRenderingConfiguratorMixin.test_add_renderer_dottedname_factory": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_defaults": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_discriminator": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_effective_principals_deprecated": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_no_path_no_pattern": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_no_pattern_with_path": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_no_view_with_view_attr": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_no_view_with_view_context": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_no_view_with_view_permission": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_no_view_with_view_renderer": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_accept": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_accept_list": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_custom_predicates": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_factory": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_header": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_inherit_errors": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_is_authenticated": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_path_info": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_path_info_highorder": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_path_info_regex": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_pregenerator": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_request_method": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_request_param": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_root_slash_with_route_prefix": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_route_prefix": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_route_prefix_with_inherit_slash": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_static": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_wildcard_accept_raises": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_xhr": "PASSED",
    "RoutesConfiguratorMixinTests.test_get_routes_mapper_already_registered": "PASSED",
    "RoutesConfiguratorMixinTests.test_get_routes_mapper_not_yet_registered": "PASSED",
    "ConfiguratorSecurityMethodsTests.test_add_permission": "PASSED",
    "ConfiguratorSecurityMethodsTests.test_changing_set_default_csrf_options": "PASSED",
    "ConfiguratorSecurityMethodsTests.test_set_authentication_policy_no_authz_policy": "PASSED",
    "ConfiguratorSecurityMethodsTests.test_set_authentication_policy_no_authz_policy_autocommit": "PASSED",
    "ConfiguratorSecurityMethodsTests.test_set_authentication_policy_with_authz_policy": "PASSED",
    "ConfiguratorSecurityMethodsTests.test_set_authentication_policy_with_authz_policy_autocommit": "PASSED",
    "ConfiguratorSecurityMethodsTests.test_set_authentication_policy_with_security_policy": "PASSED",
    "ConfiguratorSecurityMethodsTests.test_set_authorization_policy_no_authn_policy": "PASSED",
    "ConfiguratorSecurityMethodsTests.test_set_authorization_policy_no_authn_policy_autocommit": "PASSED",
    "ConfiguratorSecurityMethodsTests.test_set_authorization_policy_with_authn_policy": "PASSED",
    "ConfiguratorSecurityMethodsTests.test_set_authorization_policy_with_authn_policy_autocommit": "PASSED",
    "ConfiguratorSecurityMethodsTests.test_set_default_csrf_options": "PASSED",
    "ConfiguratorSecurityMethodsTests.test_set_default_permission": "PASSED",
    "ConfiguratorSecurityMethodsTests.test_set_security_policy": "PASSED",
    "TestSettingsConfiguratorMixin.test__set_settings_as_None": "PASSED",
    "TestSettingsConfiguratorMixin.test__set_settings_as_dictwithvalues": "PASSED",
    "TestSettingsConfiguratorMixin.test__set_settings_does_not_uses_original_dict": "PASSED",
    "TestSettingsConfiguratorMixin.test_add_settings_settings_None": "PASSED",
    "TestSettingsConfiguratorMixin.test_add_settings_settings_already_registered": "PASSED",
    "TestSettingsConfiguratorMixin.test_add_settings_settings_not_yet_registered": "PASSED",
    "TestSettingsConfiguratorMixin.test_get_settings_nosettings": "PASSED",
    "TestSettingsConfiguratorMixin.test_get_settings_withsettings": "PASSED",
    "TestSettingsConfiguratorMixin.test_settings_parameter_dict_is_never_updated": "PASSED",
    "TestSettings.test_csrf_trusted_origins": "PASSED",
    "TestSettings.test_debug_all": "PASSED",
    "TestSettings.test_debug_authorization": "PASSED",
    "TestSettings.test_debug_notfound": "PASSED",
    "TestSettings.test_debug_routematch": "PASSED",
    "TestSettings.test_debug_templates": "PASSED",
    "TestSettings.test_default_locale_name": "PASSED",
    "TestSettings.test_noargs": "PASSED",
    "TestSettings.test_originals_kept": "PASSED",
    "TestSettings.test_prevent_cachebust": "PASSED",
    "TestSettings.test_prevent_http_cache": "PASSED",
    "TestSettings.test_reload_all": "PASSED",
    "TestSettings.test_reload_assets": "PASSED",
    "TestSettings.test_reload_resources": "PASSED",
    "TestSettings.test_reload_templates": "PASSED",
    "TestingConfiguratorMixinTests.test_testing_add_renderer": "PASSED",
    "TestingConfiguratorMixinTests.test_testing_add_renderer_explicitrenderer": "PASSED",
    "TestingConfiguratorMixinTests.test_testing_add_renderer_twice": "PASSED",
    "TestingConfiguratorMixinTests.test_testing_add_subscriber_defaults": "PASSED",
    "TestingConfiguratorMixinTests.test_testing_add_subscriber_multiple": "PASSED",
    "TestingConfiguratorMixinTests.test_testing_add_subscriber_single": "PASSED",
    "TestingConfiguratorMixinTests.test_testing_add_template": "PASSED",
    "TestingConfiguratorMixinTests.test_testing_resources": "PASSED",
    "TestingConfiguratorMixinTests.test_testing_securitypolicy": "PASSED",
    "TestingConfiguratorMixinTests.test_testing_securitypolicy_forget_result": "PASSED",
    "TestingConfiguratorMixinTests.test_testing_securitypolicy_remember_result": "PASSED",
    "TestTweensConfiguratorMixin.test_add_tween_instance": "PASSED",
    "TestTweensConfiguratorMixin.test_add_tween_name_ingress": "PASSED",
    "TestTweensConfiguratorMixin.test_add_tween_name_main": "PASSED",
    "TestTweensConfiguratorMixin.test_add_tween_over_ingress": "PASSED",
    "TestTweensConfiguratorMixin.test_add_tween_over_ingress_iterable": "PASSED",
    "TestTweensConfiguratorMixin.test_add_tween_under_main": "PASSED",
    "TestTweensConfiguratorMixin.test_add_tween_under_main_iterable": "PASSED",
    "TestTweensConfiguratorMixin.test_add_tween_unsuitable": "PASSED",
    "TestTweensConfiguratorMixin.test_add_tweens_conflict": "PASSED",
    "TestTweensConfiguratorMixin.test_add_tweens_names_with_over_nonstringoriter": "PASSED",
    "TestTweensConfiguratorMixin.test_add_tweens_names_with_under_nonstringoriter": "PASSED",
    "TestTweens.test___call___explicit": "PASSED",
    "TestTweens.test___call___implicit": "PASSED",
    "TestTweens.test_add_explicit": "PASSED",
    "TestTweens.test_add_implicit": "PASSED",
    "TestTweens.test_implicit_ordering_1": "PASSED",
    "TestTweens.test_implicit_ordering_2": "PASSED",
    "TestTweens.test_implicit_ordering_3": "PASSED",
    "TestTweens.test_implicit_ordering_4": "PASSED",
    "TestTweens.test_implicit_ordering_5": "PASSED",
    "TestTweens.test_implicit_ordering_conflict_direct": "PASSED",
    "TestTweens.test_implicit_ordering_conflict_indirect": "PASSED",
    "TestTweens.test_implicit_ordering_missing_over_and_under_partials": "PASSED",
    "TestTweens.test_implicit_ordering_missing_over_partial": "PASSED",
    "TestTweens.test_implicit_ordering_missing_over_partial_with_fallback": "PASSED",
    "TestTweens.test_implicit_ordering_missing_under_partial": "PASSED",
    "TestTweens.test_implicit_ordering_missing_under_partial_with_fallback": "PASSED",
    "TestTweens.test_implicit_ordering_with_missing_fallbacks": "PASSED",
    "TestTweens.test_implicit_ordering_with_multiple_matching_fallbacks": "PASSED",
    "TestTweens.test_implicit_ordering_with_partial_fallbacks": "PASSED",
    "TestViewsConfigurationMixin.test_add_accept_view_order_override": "PASSED",
    "TestViewsConfigurationMixin.test_add_accept_view_order_throws_on_type_mismatch": "PASSED",
    "TestViewsConfigurationMixin.test_add_accept_view_order_throws_on_wildcard": "PASSED",
    "TestViewsConfigurationMixin.test_add_exception_view": "PASSED",
    "TestViewsConfigurationMixin.test_add_exception_view_disallows_exception_only": "PASSED",
    "TestViewsConfigurationMixin.test_add_exception_view_disallows_for_": "PASSED",
    "TestViewsConfigurationMixin.test_add_exception_view_disallows_name": "PASSED",
    "TestViewsConfigurationMixin.test_add_exception_view_disallows_permission": "PASSED",
    "TestViewsConfigurationMixin.test_add_exception_view_disallows_require_csrf": "PASSED",
    "TestViewsConfigurationMixin.test_add_exception_view_with_subclass": "PASSED",
    "TestViewsConfigurationMixin.test_add_forbidden_view": "PASSED",
    "TestViewsConfigurationMixin.test_add_forbidden_view_allows_other_predicates": "PASSED",
    "TestViewsConfigurationMixin.test_add_forbidden_view_disallows_context": "PASSED",
    "TestViewsConfigurationMixin.test_add_forbidden_view_disallows_for_": "PASSED",
    "TestViewsConfigurationMixin.test_add_forbidden_view_disallows_name": "PASSED",
    "TestViewsConfigurationMixin.test_add_forbidden_view_disallows_permission": "PASSED",
    "TestViewsConfigurationMixin.test_add_forbidden_view_disallows_require_csrf": "PASSED",
    "TestViewsConfigurationMixin.test_add_forbidden_view_no_view_argument": "PASSED",
    "TestViewsConfigurationMixin.test_add_forbidden_view_with_renderer": "PASSED",
    "TestViewsConfigurationMixin.test_add_normal_and_exception_view_intr_derived_callable": "PASSED",
    "TestViewsConfigurationMixin.test_add_notfound_view": "PASSED",
    "TestViewsConfigurationMixin.test_add_notfound_view_allows_other_predicates": "PASSED",
    "TestViewsConfigurationMixin.test_add_notfound_view_append_slash": "PASSED",
    "TestViewsConfigurationMixin.test_add_notfound_view_append_slash_custom_response": "PASSED",
    "TestViewsConfigurationMixin.test_add_notfound_view_disallows_context": "PASSED",
    "TestViewsConfigurationMixin.test_add_notfound_view_disallows_for_": "PASSED",
    "TestViewsConfigurationMixin.test_add_notfound_view_disallows_name": "PASSED",
    "TestViewsConfigurationMixin.test_add_notfound_view_disallows_permission": "PASSED",
    "TestViewsConfigurationMixin.test_add_notfound_view_disallows_require_csrf": "PASSED",
    "TestViewsConfigurationMixin.test_add_notfound_view_no_view_argument": "PASSED",
    "TestViewsConfigurationMixin.test_add_notfound_view_with_renderer": "PASSED",
    "TestViewsConfigurationMixin.test_add_static_view_absolute": "PASSED",
    "TestViewsConfigurationMixin.test_add_static_view_here_no_utility_registered": "PASSED",
    "TestViewsConfigurationMixin.test_add_static_view_package_relative": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_as_instance": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_as_instance_requestonly": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_as_instancemethod": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_as_instancemethod_requestonly": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_as_oldstyle_class": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_as_oldstyle_class_requestonly": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_class_method_no_attr": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_context_as_class": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_context_as_iface": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_context_trumps_for": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_custom_more_preds_first_bests_fewer_preds_last": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_custom_predicate_bests_standard_predicate": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_default_phash_overrides_default_phash": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_default_phash_overrides_no_phash": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_does_not_accept_iterable_accept": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_exc_default_phash_overrides_default_phash": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_exc_default_phash_overrides_no_phash": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_exc_multiview_replaces_existing_securedview": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_exc_multiview_replaces_existing_view": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_exc_multiview_replaces_multiviews": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_exc_multiview_replaces_only_exc_multiview": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_exc_mulview_replaces_existing_view_with___accept__": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_exc_same_phash_overrides_existing_single_view": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_exc_with_accept_multiview_replaces_existing_view": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_exception_only": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_exception_only_misconfiguration": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_exception_only_no_regular_view": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_exception_register_secured_view": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_for_as_class": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_for_as_iface": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_mixed_case_replaces_existing_view": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_multiview___discriminator__": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_multiview_call_ordering": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_multiview_context_superclass_then_subclass": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_multiview_exception_superclass_then_subclass": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_multiview_replaces_existing_securedview": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_multiview_replaces_existing_view": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_multiview_replaces_existing_view_with___accept__": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_multiview_replaces_multiview": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_register_secured_view": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_same_phash_overrides_existing_single_view": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_same_predicates": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_view_callable_None_no_renderer": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_view_callable_None_with_renderer": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_view_callable_dottedname": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_accept_match": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_accept_multiview_replaces_existing_view": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_accept_nomatch": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_containment_false": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_containment_true": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_csrf_header": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_csrf_param": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_custom_predicates_match": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_custom_predicates_nomatch": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_decorator": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_decorator_tuple": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_default_permission_no_explicit_permission": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_default_renderer": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_function_callable": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_function_callable_requestonly": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_header_badregex": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_header_noval_match": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_header_noval_nomatch": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_header_val_match": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_header_val_missing": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_header_val_nomatch": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_http_cache": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_is_authenticated_false_matches": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_is_authenticated_false_no_match": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_is_authenticated_true_matches": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_is_authenticated_true_no_match": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_mapper": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_missing_csrf_header": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_name": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_name_unicode": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_no_default_permission_no_explicit_permission": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_nonexistant_route_name": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_path_info_badregex": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_path_info_match": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_path_info_nomatch": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_permission": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_request_method_false": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_request_method_get_implies_head": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_request_method_sequence_conflict": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_request_method_sequence_false": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_request_method_sequence_true": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_request_method_true": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_request_param_noval_false": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_request_param_noval_true": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_request_param_val_false": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_request_param_val_true": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_request_type": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_request_type_and_route_name": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_request_type_as_iface": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_request_type_as_noniface": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_route_name": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_route_name_exception": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_tmpl_renderer_factory_introspector_missing": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_tmpl_renderer_factory_no_renderer_factory": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_tmpl_renderer_factory_with_renderer_factory": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_view_config_and_view_defaults_conflicts": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_view_config_and_view_defaults_doesnt_conflict": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_wildcard_accept_raises": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_xhr_false": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_xhr_true": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_wrapped_view_is_decorated": "PASSED",
    "TestViewsConfigurationMixin.test_add_views_with_accept_multiview_replaces_existing": "PASSED",
    "TestViewsConfigurationMixin.test_default_accept_view_order": "PASSED",
    "TestViewsConfigurationMixin.test_derive_view_dottedname": "PASSED",
    "TestViewsConfigurationMixin.test_derive_view_function": "PASSED",
    "TestViewsConfigurationMixin.test_derive_view_with_default_renderer_no_explicit_renderer": "PASSED",
    "TestViewsConfigurationMixin.test_derive_view_with_default_renderer_with_explicit_renderer": "PASSED",
    "TestViewsConfigurationMixin.test_effective_principals_deprecated": "PASSED",
    "TestViewsConfigurationMixin.test_set_view_mapper": "PASSED",
    "TestViewsConfigurationMixin.test_set_view_mapper_dottedname": "PASSED",
    "TestViewsConfigurationMixin.test_view_with_most_specific_predicate": "PASSED",
    "TestViewsConfigurationMixin.test_view_with_most_specific_predicate_with_mismatch": "PASSED",
    "Test_runtime_exc_view.test_call": "PASSED",
    "Test_runtime_exc_view.test_call_dispatches_on_exception": "PASSED",
    "Test_runtime_exc_view.test_permitted": "PASSED",
    "Test_runtime_exc_view.test_permitted_dispatches_on_exception": "PASSED",
    "Test_requestonly.test_defaults": "PASSED",
    "Test_requestonly.test_otherattr": "PASSED",
    "Test_isexception.test_is_IException": "PASSED",
    "Test_isexception.test_is_IException_subinterface": "PASSED",
    "Test_isexception.test_is_exception_class": "PASSED",
    "Test_isexception.test_is_exception_instance": "PASSED",
    "TestMultiView.test___call__": "PASSED",
    "TestMultiView.test___call__intermediate_not_found": "PASSED",
    "TestMultiView.test___call__raise_not_found_isnt_interpreted_as_pred_mismatch": "PASSED",
    "TestMultiView.test___call_permissive_has_call_permissive": "PASSED",
    "TestMultiView.test___call_permissive_has_no_call_permissive": "PASSED",
    "TestMultiView.test__call__not_found": "PASSED",
    "TestMultiView.test__call__with_accept_match": "PASSED",
    "TestMultiView.test__call__with_accept_miss": "PASSED",
    "TestMultiView.test__call_permissive__not_found": "PASSED",
    "TestMultiView.test_add": "PASSED",
    "TestMultiView.test_add_with_phash": "PASSED",
    "TestMultiView.test_add_with_phash_override_accept": "PASSED",
    "TestMultiView.test_add_with_phash_override_accept2": "PASSED",
    "TestMultiView.test_class_implements_ISecuredView": "PASSED",
    "TestMultiView.test_get_views": "PASSED",
    "TestMultiView.test_get_views_best_match_returns_None": "PASSED",
    "TestMultiView.test_get_views_no_self_accepts": "PASSED",
    "TestMultiView.test_get_views_request_has_no_accept": "PASSED",
    "TestMultiView.test_instance_implements_ISecuredView": "PASSED",
    "TestMultiView.test_match_not_found": "PASSED",
    "TestMultiView.test_match_predicate_fails": "PASSED",
    "TestMultiView.test_match_predicate_succeeds": "PASSED",
    "TestMultiView.test_multiple_with_functions_as_views": "PASSED",
    "TestMultiView.test_permitted": "PASSED",
    "TestMultiView.test_permitted_no_match_with__permitted__": "PASSED",
    "TestMultiView.test_permitted_no_views": "PASSED",
    "TestDefaultViewMapper.test__view_as_function_with_attr": "PASSED",
    "TestDefaultViewMapper.test_view_as_function_context_and_request": "PASSED",
    "TestDefaultViewMapper.test_view_as_function_requestonly": "PASSED",
    "TestDefaultViewMapper.test_view_as_function_requestonly_with_attr": "PASSED",
    "TestDefaultViewMapper.test_view_as_instance_context_and_request": "PASSED",
    "TestDefaultViewMapper.test_view_as_instance_context_and_request_and_attr": "PASSED",
    "TestDefaultViewMapper.test_view_as_instance_requestonly": "PASSED",
    "TestDefaultViewMapper.test_view_as_instance_requestonly_with_attr": "PASSED",
    "TestDefaultViewMapper.test_view_as_newstyle_class_context_and_request": "PASSED",
    "TestDefaultViewMapper.test_view_as_newstyle_class_context_and_request_with_attr": "PASSED",
    "TestDefaultViewMapper.test_view_as_newstyle_class_requestonly": "PASSED",
    "TestDefaultViewMapper.test_view_as_newstyle_class_requestonly_with_attr": "PASSED",
    "TestDefaultViewMapper.test_view_as_oldstyle_class_context_and_request": "PASSED",
    "TestDefaultViewMapper.test_view_as_oldstyle_class_context_and_request_with_attr": "PASSED",
    "TestDefaultViewMapper.test_view_as_oldstyle_class_requestonly": "PASSED",
    "TestDefaultViewMapper.test_view_as_oldstyle_class_requestonly_with_attr": "PASSED",
    "Test_preserve_view_attrs.test_it_different": "PASSED",
    "Test_preserve_view_attrs.test_it_different_with_existing_original_view": "PASSED",
    "Test_preserve_view_attrs.test_it_same": "PASSED",
    "Test_preserve_view_attrs.test_it_view_is_None": "PASSED",
    "TestStaticURLInfo.test_add_already_exists": "PASSED",
    "TestStaticURLInfo.test_add_cachebust_prevented": "PASSED",
    "TestStaticURLInfo.test_add_cachebuster": "PASSED",
    "TestStaticURLInfo.test_add_cachebuster_abspath": "PASSED",
    "TestStaticURLInfo.test_add_cachebuster_for_more_specific_path": "PASSED",
    "TestStaticURLInfo.test_add_cachebuster_overwrite": "PASSED",
    "TestStaticURLInfo.test_add_cachebuster_overwrite_explicit": "PASSED",
    "TestStaticURLInfo.test_add_package_root": "PASSED",
    "TestStaticURLInfo.test_add_url_noendslash": "PASSED",
    "TestStaticURLInfo.test_add_url_noscheme": "PASSED",
    "TestStaticURLInfo.test_add_url_withendslash": "PASSED",
    "TestStaticURLInfo.test_add_viewname": "PASSED",
    "TestStaticURLInfo.test_add_viewname_with_context": "PASSED",
    "TestStaticURLInfo.test_add_viewname_with_for_": "PASSED",
    "TestStaticURLInfo.test_add_viewname_with_permission": "PASSED",
    "TestStaticURLInfo.test_add_viewname_with_renderer": "PASSED",
    "TestStaticURLInfo.test_add_viewname_with_route_prefix": "PASSED",
    "TestStaticURLInfo.test_generate_missing": "PASSED",
    "TestStaticURLInfo.test_generate_quoting": "PASSED",
    "TestStaticURLInfo.test_generate_registration_miss": "PASSED",
    "TestStaticURLInfo.test_generate_route_url": "PASSED",
    "TestStaticURLInfo.test_generate_slash_in_name1": "PASSED",
    "TestStaticURLInfo.test_generate_slash_in_name2": "PASSED",
    "TestStaticURLInfo.test_generate_url_cachebust": "PASSED",
    "TestStaticURLInfo.test_generate_url_cachebust_abspath": "PASSED",
    "TestStaticURLInfo.test_generate_url_cachebust_nomatch": "PASSED",
    "TestStaticURLInfo.test_generate_url_quoted_remote": "PASSED",
    "TestStaticURLInfo.test_generate_url_unquoted_local": "PASSED",
    "TestStaticURLInfo.test_generate_url_with_custom_anchor": "PASSED",
    "TestStaticURLInfo.test_generate_url_with_custom_query": "PASSED",
    "TestStaticURLInfo.test_verifyClass": "PASSED",
    "TestStaticURLInfo.test_verifyObject": "PASSED",
    "Test_view_description.test_with_text": "PASSED",
    "TestParseVars.test_parse_vars_bad": "PASSED",
    "TestParseVars.test_parse_vars_good": "PASSED",
    "TestPDistReportCommand.test_no_dists": "PASSED",
    "TestPDistReportCommand.test_with_dists": "PASSED",
    "TestPRequestCommand.test_command_display_headers": "PASSED",
    "TestPRequestCommand.test_command_has_bad_config_header": "PASSED",
    "TestPRequestCommand.test_command_has_content_type_header_var": "PASSED",
    "TestPRequestCommand.test_command_has_good_header_var": "PASSED",
    "TestPRequestCommand.test_command_has_multiple_header_vars": "PASSED",
    "TestPRequestCommand.test_command_method_configures_logging": "PASSED",
    "TestPRequestCommand.test_command_method_get": "PASSED",
    "TestPRequestCommand.test_command_method_options": "PASSED",
    "TestPRequestCommand.test_command_method_patch": "PASSED",
    "TestPRequestCommand.test_command_method_post": "PASSED",
    "TestPRequestCommand.test_command_method_propfind": "PASSED",
    "TestPRequestCommand.test_command_method_put": "PASSED",
    "TestPRequestCommand.test_command_not_enough_args": "PASSED",
    "TestPRequestCommand.test_command_path_doesnt_start_with_slash": "PASSED",
    "TestPRequestCommand.test_command_response_has_no_charset": "PASSED",
    "TestPRequestCommand.test_command_script_name": "PASSED",
    "TestPRequestCommand.test_command_two_args": "PASSED",
    "TestPRequestCommand.test_command_w_basic_auth": "PASSED",
    "TestPRequestCommand.test_command_with_query_string": "PASSED",
    "Test_main.test_it": "PASSED",
    "TestPRoutesCommand.test__get_mapper": "PASSED",
    "TestPRoutesCommand.test_bad_args": "PASSED",
    "TestPRoutesCommand.test_bad_format": "PASSED",
    "TestPRoutesCommand.test_config_format_ini_commas": "PASSED",
    "TestPRoutesCommand.test_config_format_ini_newlines": "PASSED",
    "TestPRoutesCommand.test_config_format_ini_spaces": "PASSED",
    "TestPRoutesCommand.test_good_args": "PASSED",
    "TestPRoutesCommand.test_good_format": "PASSED",
    "TestPRoutesCommand.test_no_mapper": "PASSED",
    "TestPRoutesCommand.test_no_routes": "PASSED",
    "TestPRoutesCommand.test_route_as_wsgiapp": "PASSED",
    "TestPRoutesCommand.test_route_no_view": "PASSED",
    "TestPRoutesCommand.test_route_with_no_slash_prefix": "PASSED",
    "TestPRoutesCommand.test_single_route_no_route_registered": "PASSED",
    "TestPRoutesCommand.test_single_route_no_views_registered": "PASSED",
    "TestPRoutesCommand.test_single_route_one_view_registered_with_factory": "PASSED",
    "TestPRoutesCommand.test_static_routes_included_in_list": "PASSED",
    "TestPServeCommand.test_config_file_finds_open_url": "PASSED",
    "TestPServeCommand.test_guess_server_url": "PASSED",
    "TestPServeCommand.test_original_ignore_files": "PASSED",
    "TestPServeCommand.test_parse_vars_bad": "PASSED",
    "TestPServeCommand.test_parse_vars_good": "PASSED",
    "TestPServeCommand.test_reload_call_hupper_with_correct_args": "PASSED",
    "TestPServeCommand.test_run_no_args": "PASSED",
    "TestPShellCommand.test_command_custom_section_override": "PASSED",
    "TestPShellCommand.test_command_default_shell_option": "PASSED",
    "TestPShellCommand.test_command_errors_with_unknown_shell": "PASSED",
    "TestPShellCommand.test_command_loads_check_variable_override_order": "PASSED",
    "TestPShellCommand.test_command_loads_custom_items": "PASSED",
    "TestPShellCommand.test_command_loads_default_shell": "PASSED",
    "TestPShellCommand.test_command_loads_ipython": "PASSED",
    "TestPShellCommand.test_command_loads_pythonstartup": "PASSED",
    "TestPShellCommand.test_command_loads_setup_from_options": "PASSED",
    "TestPShellCommand.test_command_setup": "PASSED",
    "TestPShellCommand.test_command_setup_generator": "PASSED",
    "TestPShellCommand.test_list_shells": "PASSED",
    "TestPShellCommand.test_shell_entry_points": "PASSED",
    "TestPShellCommand.test_shell_ordering": "PASSED",
    "TestPShellCommand.test_shell_override": "PASSED",
    "Test_python_shell_runner.test_it": "PASSED",
    "TestPTweensCommand.test__get_tweens": "PASSED",
    "TestPTweensCommand.test_command_implicit_and_explicit_tweens": "PASSED",
    "TestPTweensCommand.test_command_implicit_tweens_only": "PASSED",
    "TestPTweensCommand.test_command_no_tweens": "PASSED",
    "TestPViewsCommand.test__find_multi_routes_all_match": "PASSED",
    "TestPViewsCommand.test__find_multi_routes_none_match": "PASSED",
    "TestPViewsCommand.test__find_multi_routes_some_match": "PASSED",
    "TestPViewsCommand.test__find_view_no_match": "PASSED",
    "TestPViewsCommand.test__find_view_no_match_multiview_registered": "PASSED",
    "TestPViewsCommand.test__find_view_route_multiview": "PASSED",
    "TestPViewsCommand.test__find_view_route_multiview_no_view_registered": "PASSED",
    "TestPViewsCommand.test__find_view_route_no_multiview": "PASSED",
    "TestPViewsCommand.test__find_view_traversal": "PASSED",
    "TestPViewsCommand.test__find_view_traversal_multiview": "PASSED",
    "TestPViewsCommand.test_views_command_not_found": "PASSED",
    "TestPViewsCommand.test_views_command_not_found_url_starts_without_slash": "PASSED",
    "AdaptersConfiguratorMixinTests.test_add_resource_url_adapter_dotted_names": "FAILED",
    "AdaptersConfiguratorMixinTests.test_add_resource_url_adapter_introspectables": "FAILED",
    "AdaptersConfiguratorMixinTests.test_add_traverser_dotted_names": "FAILED",
    "TestAssetsConfiguratorMixin.test_override_asset_directory_with_directory": "FAILED",
    "TestAssetsConfiguratorMixin.test_override_asset_directory_with_package": "FAILED",
    "TestAssetsConfiguratorMixin.test_override_asset_file_with_file": "FAILED",
    "TestAssetsConfiguratorMixin.test_override_asset_package_with_directory": "FAILED",
    "TestAssetsConfiguratorMixin.test_override_asset_package_with_package": "FAILED",
    "TestOverrideProvider.test_get_resource_filename_no_overrides": "FAILED",
    "TestOverrideProvider.test_get_resource_filename_override_returns_None": "FAILED",
    "TestPackageAssetSource.test_get_filename": "FAILED",
    "TestPackageAssetSource.test_get_filename_with_prefix": "FAILED",
    "TestFactoriesMixin.test_set_request_factory_dottedname": "FAILED",
    "TestFactoriesMixin.test_set_response_factory_dottedname": "FAILED",
    "TestFactoriesMixin.test_set_root_factory_dottedname": "FAILED",
    "TestFactoriesMixin.test_set_session_factory_dottedname": "FAILED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_abspath": "FAILED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_asset_spec": "FAILED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_asset_spec_existing_translation_dirs": "FAILED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_doesnt_use_override_w_autocommit": "FAILED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_multiple_specs": "FAILED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_multiple_specs_multiple_calls": "FAILED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_override_multiple_specs_multiple_calls": "FAILED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_uses_override_out_of_order": "FAILED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_uses_override_w_autocommit": "FAILED",
    "TestI18NConfiguratorMixin.test_set_locale_negotiator_dottedname": "FAILED",
    "ConfiguratorTests.test_ctor_no_registry": "FAILED",
    "ConfiguratorTests.test_ctor_noreg_debug_logger_None_default": "FAILED",
    "ConfiguratorTests.test_include_constant_root_package": "FAILED",
    "ConfiguratorTests.test_include_with_python_callable": "FAILED",
    "ConfiguratorTests.test_setup_registry_debug_logger_None_default": "FAILED",
    "ConfiguratorTests.test_setup_registry_tweens": "FAILED",
    "ConfiguratorTests.test_with_package_module": "FAILED",
    "TestConfigurator_add_directive.test_add_directive_with_custom_callable": "FAILED",
    "TestConfigurator_add_directive.test_add_directive_with_partial": "FAILED",
    "TestConfigurator_add_directive.test_extend_with_dotted_name": "FAILED",
    "TestConfigurator_add_directive.test_extend_with_python_callable": "FAILED",
    "TestConfigurator__add_predicate.test_factory_as_dotted_name": "FAILED",
    "RoutesConfiguratorMixinTests.test_add_route_with_factory_dottedname": "FAILED",
    "TestingConfiguratorMixinTests.test_testing_add_subscriber_dottedname": "FAILED",
    "TestTweensConfiguratorMixin.test_add_tween_dottedname": "FAILED",
    "TestTweensConfiguratorMixin.test_add_tweens_names_distinct": "FAILED",
    "TestTweensConfiguratorMixin.test_add_tweens_names_with_underover": "FAILED",
    "TestViewsConfigurationMixin.test_add_exception_view_with_view_defaults": "FAILED",
    "TestViewsConfigurationMixin.test_add_forbidden_view_with_view_defaults": "FAILED",
    "TestViewsConfigurationMixin.test_add_notfound_view_with_view_defaults": "FAILED",
    "TestViewsConfigurationMixin.test_add_static_view_package_here_relative": "FAILED",
    "TestViewsConfigurationMixin.test_add_view_context_as_dottedname": "FAILED",
    "TestViewsConfigurationMixin.test_add_view_for__as_dottedname": "FAILED",
    "TestViewsConfigurationMixin.test_add_view_with_containment_dottedname": "FAILED",
    "TestViewsConfigurationMixin.test_add_view_with_template_renderer": "FAILED",
    "TestViewsConfigurationMixin.test_add_view_with_template_renderer_no_callable": "FAILED",
    "TestViewsConfigurationMixin.test_add_view_with_view_defaults": "FAILED",
    "TestViewsConfigurationMixin.test_add_view_with_view_defaults_viewname_is_dottedname_kwarg": "FAILED",
    "TestViewsConfigurationMixin.test_add_view_with_view_defaults_viewname_is_dottedname_nonkwarg": "FAILED",
    "TestStaticURLInfo.test_generate_url_cachebust_with_overrides": "FAILED",
    "Test_view_description.test_without_text": "FAILED",
    "TestPRoutesCommand.test_class_view": "FAILED",
    "TestPRoutesCommand.test_one_route_all_methods_view_only_post": "FAILED",
    "TestPRoutesCommand.test_one_route_only_post_view_all_methods": "FAILED",
    "TestPRoutesCommand.test_one_route_only_post_view_post_and_get": "FAILED",
    "TestPRoutesCommand.test_one_route_with_long_name_one_view_registered": "FAILED",
    "TestPRoutesCommand.test_route_is_get_view_request_method_not_post": "FAILED",
    "TestPRoutesCommand.test_route_request_method_mismatch": "FAILED",
    "TestPRoutesCommand.test_route_static_views": "FAILED",
    "TestPRoutesCommand.test_single_route_multiview_registered": "FAILED",
    "TestPRoutesCommand.test_single_route_one_view_registered": "FAILED",
    "TestPRoutesCommand.test_view_glob": "FAILED",
    "TestPRoutesCommand.test_view_request_method_not_post": "FAILED",
    "TestPServeCommand.test_config_file_finds_watch_files": "FAILED",
    "TestPViewsCommand.test_views_command_multi_view_nested": "FAILED",
    "TestPViewsCommand.test_views_command_multiview": "FAILED",
    "TestPViewsCommand.test_views_command_multiview_with_permission": "FAILED",
    "TestPViewsCommand.test_views_command_multiview_with_predicates": "FAILED",
    "TestPViewsCommand.test_views_command_single_view_function_traversal": "FAILED",
    "TestPViewsCommand.test_views_command_single_view_route": "FAILED",
    "TestPViewsCommand.test_views_command_single_view_route_with_route_predicates": "FAILED",
    "TestPViewsCommand.test_views_command_single_view_traversal": "FAILED",
    "TestPViewsCommand.test_views_command_single_view_traversal_with_permission": "FAILED",
    "TestPViewsCommand.test_views_command_single_view_traversal_with_predicates": "FAILED"
}
diff --git a/src/pyramid/exceptions.py b/src/pyramid/exceptions.py
index 16aeb7e4f..9f19a4bb4 100644
--- a/src/pyramid/exceptions.py
+++ b/src/pyramid/exceptions.py
@@ -10,12 +10,11 @@ class BadCSRFOrigin(HTTPBadRequest):
     origin validation.
     """
 
-    title = "Bad CSRF Origin"
     explanation = (
-        "Access is denied. This server can not verify that the origin or "
-        "referrer of your request matches the current site. Either your "
-        "browser supplied the wrong Origin or Referrer or it did not supply "
-        "one at all."
+        "Bad CSRF Origin. Access is denied. This server can not verify that "
+        "the origin or referrer of your request matches the current site. "
+        "Either your browser supplied the wrong Origin or Referrer or it did "
+        "not supply one at all."
     )
 
 
@@ -25,14 +24,13 @@ class BadCSRFToken(HTTPBadRequest):
     forgery token validation.
     """
 
-    title = 'Bad CSRF Token'
     explanation = (
-        'Access is denied.  This server can not verify that your cross-site '
-        'request forgery token belongs to your login session.  Either you '
-        'supplied the wrong cross-site request forgery token or your session '
-        'no longer exists.  This may be due to session timeout or because '
-        'browser is not supplying the credentials required, as can happen '
-        'when the browser has cookies turned off.'
+        'Bad CSRF token received. Access is denied. This server can not '
+        'verify that your cross-site request forgery token belongs to your '
+        'login session. Either you supplied the wrong cross-site request '
+        'forgery token or your session no longer exists. This may be due to '
+        'session timeout or because browser is not supplying the credentials '
+        'required, as can happen when the browser has cookies turned off.'
     )
 
 

{"src/pyramid/exceptions.py": "from pyramid.httpexceptions import HTTPBadRequest, HTTPForbidden, HTTPNotFound\n\nNotFound = HTTPNotFound  # bw compat\nForbidden = HTTPForbidden  # bw compat\n\n\nclass BadCSRFOrigin(HTTPBadRequest):\n    \"\"\"\n    This exception indicates the request has failed cross-site request forgery\n    origin validation.\n    \"\"\"\n\n    title = \"Bad CSRF Origin\"\n    explanation = (\n        \"Access is denied. This server can not verify that the origin or \"\n        \"referrer of your request matches the current site. Either your \"\n        \"browser supplied the wrong Origin or Referrer or it did not supply \"\n        \"one at all.\"\n    )\n\n\nclass BadCSRFToken(HTTPBadRequest):\n    \"\"\"\n    This exception indicates the request has failed cross-site request\n    forgery token validation.\n    \"\"\"\n\n    title = 'Bad CSRF Token'\n    explanation = (\n        'Access is denied.  This server can not verify that your cross-site '\n        'request forgery token belongs to your login session.  Either you '\n        'supplied the wrong cross-site request forgery token or your session '\n        'no longer exists.  This may be due to session timeout or because '\n        'browser is not supplying the credentials required, as can happen '\n        'when the browser has cookies turned off.'\n    )\n\n\nclass PredicateMismatch(HTTPNotFound):\n    \"\"\"\n    This exception is raised by multiviews when no view matches\n    all given predicates.\n\n    This exception subclasses the :class:`HTTPNotFound` exception for a\n    specific reason: if it reaches the main exception handler, it should\n    be treated as :class:`HTTPNotFound`` by any exception view\n    registrations. Thus, typically, this exception will not be seen\n    publicly.\n\n    However, this exception will be raised if the predicates of all\n    views configured to handle another exception context cannot be\n    successfully matched.  For instance, if a view is configured to\n    handle a context of ``HTTPForbidden`` and the configured with\n    additional predicates, then :class:`PredicateMismatch` will be\n    raised if:\n\n    * An original view callable has raised :class:`HTTPForbidden` (thus\n      invoking an exception view); and\n    * The given request fails to match all predicates for said\n      exception view associated with :class:`HTTPForbidden`.\n\n    The same applies to any type of exception being handled by an\n    exception view.\n    \"\"\"\n\n\nclass URLDecodeError(UnicodeDecodeError):\n    \"\"\"\n    This exception is raised when :app:`Pyramid` cannot\n    successfully decode a URL or a URL path segment.  This exception\n    behaves just like the Python builtin\n    :exc:`UnicodeDecodeError`. It is a subclass of the builtin\n    :exc:`UnicodeDecodeError` exception only for identity purposes,\n    mostly so an exception view can be registered when a URL cannot be\n    decoded.\n    \"\"\"\n\n\nclass ConfigurationError(Exception):\n    \"\"\"Raised when inappropriate input values are supplied to an API\n    method of a :term:`Configurator`\"\"\"\n\n\nclass ConfigurationConflictError(ConfigurationError):\n    \"\"\"Raised when a configuration conflict is detected during action\n    processing\"\"\"\n\n    def __init__(self, conflicts):\n        self._conflicts = conflicts\n\n    def __str__(self):\n        r = [\"Conflicting configuration actions\"]\n        for discriminator, infos in self._conflicts.items():\n            r.append(f\"  For: {discriminator}\")\n            for info in infos:\n                for line in str(info).rstrip().split('\\n'):\n                    r.append(\"    \" + line)\n\n        return '\\n'.join(r)\n\n\nclass ConfigurationExecutionError(ConfigurationError):\n    \"\"\"An error occurred during execution of a configuration action\"\"\"\n\n    def __init__(self, etype, evalue, info):\n        self.etype, self.evalue, self.info = etype, evalue, info\n\n    def __str__(self):\n        return f\"{self.etype}: {self.evalue}\\n  in:\\n  {self.info}\"\n\n\nclass CyclicDependencyError(Exception):\n    \"\"\"The exception raised when the Pyramid topological sorter detects a\n    cyclic dependency.\"\"\"\n\n    def __init__(self, cycles):\n        self.cycles = cycles\n\n    def __str__(self):\n        L = []\n        cycles = self.cycles\n        for cycle in cycles:\n            dependent = cycle\n            dependees = cycles[cycle]\n            L.append(f'{dependent!r} sorts before {dependees!r}')\n        msg = 'Implicit ordering cycle:' + '; '.join(L)\n        return msg\n"}
A user will ask you to solve a task. You should first draft your thinking process (inner monologue). Then, generate the solution.

Your response format must follow the template below:
<think>
Your thoughts or/and draft, like working through an exercise on scratch paper. Be as casual and as long as you want until you are confident to generate a correct solution.
</think>
<solution>
Final solution presented to the user.
</solution>
system
We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[ISSUE]
**Title:** Inconsistent HTTP Status Messages for CSRF Exceptions

**Description:**
When handling Cross-Site Request Forgery (CSRF) exceptions, the HTTP status messages returned are inconsistent with standard bad request responses. Specifically, raising `BadCSRFOrigin` or `BadCSRFToken` results in status messages like `'400 Bad CSRF Origin'` and `'400 Bad CSRF Token'` instead of the expected `'400 Bad Request'`. This inconsistency can lead to unexpected behaviors in client applications that rely on standard HTTP status codes for error handling.

**Example Buggy Code:**
```python
from pyramid.exceptions import BadCSRFOrigin, BadCSRFToken
from pyramid.httpexceptions import HTTPBadRequest

# Handling a bad CSRF origin
response_origin = BadCSRFOrigin()
print(response_origin.status)  # Outputs: '400 Bad CSRF Origin'

# Handling a bad CSRF token
response_token = BadCSRFToken()
print(response_token.status)  # Outputs: '400 Bad CSRF Token'
```

**Expected Behavior:**
Both `BadCSRFOrigin` and `BadCSRFToken` should return a standard `'400 Bad Request'` status message to ensure consistency with other bad request errors and to facilitate uniform error handling on the client side.

**Actual Behavior:**
Instead of returning `'400 Bad Request'`, the exceptions return customized status messages:
- `'400 Bad CSRF Origin'`
- `'400 Bad CSRF Token'`

This divergence from the standard can cause issues in scenarios where clients expect a generic bad request response for HTTP 400 errors.

[/ISSUE]
--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.

--- BEGIN FILE ---
```
### src/pyramid/exceptions.py
from pyramid.httpexceptions import HTTPBadRequest, HTTPForbidden, HTTPNotFound

NotFound = HTTPNotFound  # bw compat
Forbidden = HTTPForbidden  # bw compat


class BadCSRFOrigin(HTTPBadRequest):
    """
    This exception indicates the request has failed cross-site request forgery
    origin validation.
    """

    title = "Bad CSRF Origin"
    explanation = (
        "Access is denied. This server can not verify that the origin or "
        "referrer of your request matches the current site. Either your "
        "browser supplied the wrong Origin or Referrer or it did not supply "
        "one at all."
    )


class BadCSRFToken(HTTPBadRequest):
    """
    This exception indicates the request has failed cross-site request
    forgery token validation.
    """

    title = 'Bad CSRF Token'
    explanation = (
        'Access is denied.  This server can not verify that your cross-site '
        'request forgery token belongs to your login session.  Either you '
        'supplied the wrong cross-site request forgery token or your session '
        'no longer exists.  This may be due to session timeout or because '
        'browser is not supplying the credentials required, as can happen '
        'when the browser has cookies turned off.'
    )


class PredicateMismatch(HTTPNotFound):
    """
    This exception is raised by multiviews when no view matches
    all given predicates.

    This exception subclasses the :class:`HTTPNotFound` exception for a
    specific reason: if it reaches the main exception handler, it should
    be treated as :class:`HTTPNotFound`` by any exception view
    registrations. Thus, typically, this exception will not be seen
    publicly.

    However, this exception will be raised if the predicates of all
    views configured to handle another exception context cannot be
    successfully matched.  For instance, if a view is configured to
    handle a context of ``HTTPForbidden`` and the configured with
    additional predicates, then :class:`PredicateMismatch` will be
    raised if:

    * An original view callable has raised :class:`HTTPForbidden` (thus
      invoking an exception view); and
    * The given request fails to match all predicates for said
      exception view associated with :class:`HTTPForbidden`.

    The same applies to any type of exception being handled by an
    exception view.
    """


class URLDecodeError(UnicodeDecodeError):
    """
    This exception is raised when :app:`Pyramid` cannot
    successfully decode a URL or a URL path segment.  This exception
    behaves just like the Python builtin
    :exc:`UnicodeDecodeError`. It is a subclass of the builtin
    :exc:`UnicodeDecodeError` exception only for identity purposes,
    mostly so an exception view can be registered when a URL cannot be
    decoded.
    """


class ConfigurationError(Exception):
    """Raised when inappropriate input values are supplied to an API
    method of a :term:`Configurator`"""


class ConfigurationConflictError(ConfigurationError):
    """Raised when a configuration conflict is detected during action
    processing"""

    def __init__(self, conflicts):
        self._conflicts = conflicts

    def __str__(self):
        r = ["Conflicting configuration actions"]
        for discriminator, infos in self._conflicts.items():
            r.append(f"  For: {discriminator}")
            for info in infos:
                for line in str(info).rstrip().split('\n'):
                    r.append("    " + line)

        return '\n'.join(r)


class ConfigurationExecutionError(ConfigurationError):
    """An error occurred during execution of a configuration action"""

    def __init__(self, etype, evalue, info):
        self.etype, self.evalue, self.info = etype, evalue, info

    def __str__(self):
        return f"{self.etype}: {self.evalue}\n  in:\n  {self.info}"


class CyclicDependencyError(Exception):
    """The exception raised when the Pyramid topological sorter detects a
    cyclic dependency."""

    def __init__(self, cycles):
        self.cycles = cycles

    def __str__(self):
        L = []
        cycles = self.cycles
        for cycle in cycles:
            dependent = cycle
            dependees = cycles[cycle]
            L.append(f'{dependent!r} sorts before {dependees!r}')
        msg = 'Implicit ordering cycle:' + '; '.join(L)
        return msg

```
--- END FILE ---

Please first localize the bug based on the issue statement, and then generate *SEARCH/REPLACE* edits to fix the issue.

Every *SEARCH/REPLACE* edit must use this format:
1. The file path
2. The start of search block: <<<<<<< SEARCH
3. A contiguous chunk of lines to search for in the existing source code
4. The dividing line: =======
5. The lines to replace into the source code
6. The end of the replace block: >>>>>>> REPLACE

Here is an example:

```python
### mathweb/flask/app.py
<<<<<<< SEARCH
from flask import Flask
=======
import math
from flask import Flask
>>>>>>> REPLACE
```
</solution>

Please note that the *SEARCH/REPLACE* edit REQUIRES PROPER INDENTATION. If you would like to add the line '        print(x)', you must fully write that out, with all those spaces before the code!
Wrap each *SEARCH/REPLACE* edit in a code block as shown in the example above. If you have multiple *SEARCH/REPLACE* edits, use a separate code block for each one.
user