{
    "file_diffs": [
        {
            "old_file_content": "unreleased\n==========\n\nBackward Incompatibilities\n--------------------------\n\n - Following the Pyramid deprecation period (1.6 -> 1.8),\n   daemon support for pserve has been removed. This includes removing the\n   daemon commands (start, stop, restart, status) as well as the following\n   arguments:\n   --daemon --pid-file --log-file --monitor-restart --status --user --group\n   --stop-daemon\n\n   To run your server as a daemon you should use a process manager instead of\n   pserve.\n\n   See https://github.com/Pylons/pyramid/pull/2615\n\n- ``pcreate`` is now interactive by default. You will be prompted if\n  a file already exists with different content. Previously if there were\n  similar files it would silently skip them unless you specified\n  ``--interactive`` or ``--overwrite``.\n  See https://github.com/Pylons/pyramid/pull/2775\n\n- Removed undocumented argument ``cachebust_match`` from\n  ``pyramid.static.static_view``. This argument was shipped accidentally\n  in Pyramid 1.6. See https://github.com/Pylons/pyramid/pull/2681\n\n- Change static view to avoid setting the ``Content-Encoding`` response header\n  to an encoding guessed using Python's ``mimetypes`` module. This was causing\n  clients to decode the content of gzipped files when downloading them. The\n  client would end up with a ``foo.txt.gz`` file on disk that was already\n  decoded, thus should really be ``foo.txt``. Also, the ``Content-Encoding``\n  should only have been used if the client itself broadcast support for the\n  encoding via ``Accept-Encoding`` request headers.\n  See https://github.com/Pylons/pyramid/pull/2810\n\nFeatures\n--------\n\n- pcreate learned about --package-name to allow you to create a new project in\n  an existing folder with a different package name than the project name. See\n  https://github.com/Pylons/pyramid/pull/2783\n\n- The `_get_credentials` private method of `BasicAuthAuthenticationPolicy`\n  has been extracted into standalone function ``extract_http_basic_credentials`\n  in `pyramid.authentication` module, this function extracts HTTP Basic\n  credentials from a ``request`` object, and returns them as a named tuple.\n  See https://github.com/Pylons/pyramid/pull/2662\n\n- Pyramid 1.4 silently dropped a feature of the configurator that has been\n  restored. It's again possible for action discriminators to conflict across\n  different action orders.\n  See https://github.com/Pylons/pyramid/pull/2757\n\n- ``pyramid.paster.bootstrap`` and its sibling ``pyramid.scripting.prepare``\n  can now be used as context managers to automatically invoke the ``closer``\n  and pop threadlocals off of the stack to prevent memory leaks.\n  See https://github.com/Pylons/pyramid/pull/2760\n\n- Added ``pyramid.config.Configurator.add_exception_view`` and the\n  ``pyramid.view.exception_view_config`` decorator. It is now possible using\n  these methods or via the new ``exception_only=True`` option to ``add_view``\n  to add a view which will only be matched when handling an exception.\n  Previously any exception views were also registered for a traversal\n  context that inherited from the exception class which prevented any\n  exception-only optimizations.\n  See https://github.com/Pylons/pyramid/pull/2660\n\n- Added the ``exception_only`` boolean to\n  ``pyramid.interfaces.IViewDeriverInfo`` which can be used by view derivers\n  to determine if they are wrapping a view which only handles exceptions.\n  This means that it is no longer necessary to perform request-time checks\n  for ``request.exception`` to determine if the view is handling an exception\n  - the pipeline can be optimized at config-time.\n  See https://github.com/Pylons/pyramid/pull/2660\n\n- ``pserve`` should now work with ``gevent`` and other workers that need\n  to monkeypatch the process, assuming the server and / or the app do so\n  as soon as possible before importing the rest of pyramid.\n  See https://github.com/Pylons/pyramid/pull/2797\n\nBug Fixes\n---------\n\n- Fixed bug in `proutes` such that it now shows the correct view when a class\n  and `attr` is involved.\n  See: https://github.com/Pylons/pyramid/pull/2687\n\n- Fix a ``FutureWarning`` in Python 3.5 when using ``re.split`` on the\n  ``format`` setting to the ``proutes`` script.\n  See https://github.com/Pylons/pyramid/pull/2714\n\n- Fix a ``RuntimeWarning`` emitted by WebOb when using arbitrary objects\n  as the ``userid`` in the ``AuthTktAuthenticationPolicy``. This is now caught\n  by the policy and the object is serialized as a base64 string to avoid\n  the cryptic warning. Since the userid will be read back as a string on\n  subsequent requests a more useful warning is emitted encouraging you to\n  use a primitive type instead.\n  See https://github.com/Pylons/pyramid/pull/2715\n\n- Pyramid 1.6 introduced the ability for an action to invoke another action.\n  There was a bug in the way that ``config.add_view`` would interact with\n  custom view derivers introduced in Pyramid 1.7 because the view's\n  discriminator cannot be computed until view derivers and view predicates\n  have been created in earlier orders. Invoking an action from another action\n  would trigger an unrolling of the pipeline and would compute discriminators\n  before they were ready. The new behavior respects the ``order`` of the action\n  and ensures the discriminators are not computed until dependent actions\n  from previous orders have executed.\n  See https://github.com/Pylons/pyramid/pull/2757\n\nDeprecations\n------------\n\nDocumentation Changes\n---------------------\n- Add pyramid_nacl_session to session factories.\n  See https://github.com/Pylons/pyramid/issues/2791\n\n- Update HACKING.txt from stale branch that was never merged to master.\n  See https://github.com/Pylons/pyramid/pull/2782\n\n- Updated Windows installation instructions and related bits.\n  See https://github.com/Pylons/pyramid/issues/2661\n\n- Fix an inconsistency in the documentation between view predicates and\n  route predicates and highlight the differences in their APIs.\n  See https://github.com/Pylons/pyramid/pull/2764\n\n- Clarify a possible misuse of the ``headers`` kwarg to subclasses of\n  :class:`pyramid.httpexceptions.HTTPException` in which more appropriate\n  kwargs from the parent class :class:`pyramid.response.Response` should be\n  used instead. See https://github.com/Pylons/pyramid/pull/2750\n",
            "new_file_content": "unreleased\n==========\n\nBackward Incompatibilities\n--------------------------\n\n - Following the Pyramid deprecation period (1.6 -> 1.8),\n   daemon support for pserve has been removed. This includes removing the\n   daemon commands (start, stop, restart, status) as well as the following\n   arguments:\n   --daemon --pid-file --log-file --monitor-restart --status --user --group\n   --stop-daemon\n\n   To run your server as a daemon you should use a process manager instead of\n   pserve.\n\n   See https://github.com/Pylons/pyramid/pull/2615\n\n- ``pcreate`` is now interactive by default. You will be prompted if\n  a file already exists with different content. Previously if there were\n  similar files it would silently skip them unless you specified\n  ``--interactive`` or ``--overwrite``.\n  See https://github.com/Pylons/pyramid/pull/2775\n\n- Removed undocumented argument ``cachebust_match`` from\n  ``pyramid.static.static_view``. This argument was shipped accidentally\n  in Pyramid 1.6. See https://github.com/Pylons/pyramid/pull/2681\n\n- Change static view to avoid setting the ``Content-Encoding`` response header\n  to an encoding guessed using Python's ``mimetypes`` module. This was causing\n  clients to decode the content of gzipped files when downloading them. The\n  client would end up with a ``foo.txt.gz`` file on disk that was already\n  decoded, thus should really be ``foo.txt``. Also, the ``Content-Encoding``\n  should only have been used if the client itself broadcast support for the\n  encoding via ``Accept-Encoding`` request headers.\n  See https://github.com/Pylons/pyramid/pull/2810\n\n- Settings are no longer accessible as attributes on the settings object\n  (e.g. ``request.registry.settings.foo``). This was deprecated in Pyramid 1.2.\n  See https://github.com/Pylons/pyramid/pull/2823\n\nFeatures\n--------\n\n- pcreate learned about --package-name to allow you to create a new project in\n  an existing folder with a different package name than the project name. See\n  https://github.com/Pylons/pyramid/pull/2783\n\n- The `_get_credentials` private method of `BasicAuthAuthenticationPolicy`\n  has been extracted into standalone function ``extract_http_basic_credentials`\n  in `pyramid.authentication` module, this function extracts HTTP Basic\n  credentials from a ``request`` object, and returns them as a named tuple.\n  See https://github.com/Pylons/pyramid/pull/2662\n\n- Pyramid 1.4 silently dropped a feature of the configurator that has been\n  restored. It's again possible for action discriminators to conflict across\n  different action orders.\n  See https://github.com/Pylons/pyramid/pull/2757\n\n- ``pyramid.paster.bootstrap`` and its sibling ``pyramid.scripting.prepare``\n  can now be used as context managers to automatically invoke the ``closer``\n  and pop threadlocals off of the stack to prevent memory leaks.\n  See https://github.com/Pylons/pyramid/pull/2760\n\n- Added ``pyramid.config.Configurator.add_exception_view`` and the\n  ``pyramid.view.exception_view_config`` decorator. It is now possible using\n  these methods or via the new ``exception_only=True`` option to ``add_view``\n  to add a view which will only be matched when handling an exception.\n  Previously any exception views were also registered for a traversal\n  context that inherited from the exception class which prevented any\n  exception-only optimizations.\n  See https://github.com/Pylons/pyramid/pull/2660\n\n- Added the ``exception_only`` boolean to\n  ``pyramid.interfaces.IViewDeriverInfo`` which can be used by view derivers\n  to determine if they are wrapping a view which only handles exceptions.\n  This means that it is no longer necessary to perform request-time checks\n  for ``request.exception`` to determine if the view is handling an exception\n  - the pipeline can be optimized at config-time.\n  See https://github.com/Pylons/pyramid/pull/2660\n\n- ``pserve`` should now work with ``gevent`` and other workers that need\n  to monkeypatch the process, assuming the server and / or the app do so\n  as soon as possible before importing the rest of pyramid.\n  See https://github.com/Pylons/pyramid/pull/2797\n\n- Pyramid no longer copies the settings object passed to the\n  ``pyramid.config.Configurator(settings=)``. The original ``dict`` is kept.\n  See https://github.com/Pylons/pyramid/pull/2823\n\n- The csrf trusted origins setting may now be a whitespace-separated list of\n  domains. Previously only a python list was allowed. Also, it can now be set\n  using the ``PYRAMID_CSRF_TRUSTED_ORIGINS`` environment variable similar to\n  other settings. See https://github.com/Pylons/pyramid/pull/2823\n\nBug Fixes\n---------\n\n- Fixed bug in `proutes` such that it now shows the correct view when a class\n  and `attr` is involved.\n  See: https://github.com/Pylons/pyramid/pull/2687\n\n- Fix a ``FutureWarning`` in Python 3.5 when using ``re.split`` on the\n  ``format`` setting to the ``proutes`` script.\n  See https://github.com/Pylons/pyramid/pull/2714\n\n- Fix a ``RuntimeWarning`` emitted by WebOb when using arbitrary objects\n  as the ``userid`` in the ``AuthTktAuthenticationPolicy``. This is now caught\n  by the policy and the object is serialized as a base64 string to avoid\n  the cryptic warning. Since the userid will be read back as a string on\n  subsequent requests a more useful warning is emitted encouraging you to\n  use a primitive type instead.\n  See https://github.com/Pylons/pyramid/pull/2715\n\n- Pyramid 1.6 introduced the ability for an action to invoke another action.\n  There was a bug in the way that ``config.add_view`` would interact with\n  custom view derivers introduced in Pyramid 1.7 because the view's\n  discriminator cannot be computed until view derivers and view predicates\n  have been created in earlier orders. Invoking an action from another action\n  would trigger an unrolling of the pipeline and would compute discriminators\n  before they were ready. The new behavior respects the ``order`` of the action\n  and ensures the discriminators are not computed until dependent actions\n  from previous orders have executed.\n  See https://github.com/Pylons/pyramid/pull/2757\n\nDeprecations\n------------\n\nDocumentation Changes\n---------------------\n- Add pyramid_nacl_session to session factories.\n  See https://github.com/Pylons/pyramid/issues/2791\n\n- Update HACKING.txt from stale branch that was never merged to master.\n  See https://github.com/Pylons/pyramid/pull/2782\n\n- Updated Windows installation instructions and related bits.\n  See https://github.com/Pylons/pyramid/issues/2661\n\n- Fix an inconsistency in the documentation between view predicates and\n  route predicates and highlight the differences in their APIs.\n  See https://github.com/Pylons/pyramid/pull/2764\n\n- Clarify a possible misuse of the ``headers`` kwarg to subclasses of\n  :class:`pyramid.httpexceptions.HTTPException` in which more appropriate\n  kwargs from the parent class :class:`pyramid.response.Response` should be\n  used instead. See https://github.com/Pylons/pyramid/pull/2750\n",
            "header": {
                "file": {
                    "path": "CHANGES.txt"
                },
                "misc_line": null
            },
            "index_line": {
                "old_commit_hash": "1939ad125",
                "new_commit_hash": "a0a928f83",
                "mode": "100644"
            },
            "is_binary_file": false,
            "binary_line": null,
            "minus_file": {
                "path": "a/CHANGES.txt"
            },
            "plus_file": {
                "path": "b/CHANGES.txt"
            },
            "hunks": [
                {
                    "descriptor": {
                        "old_range": {
                            "start": 35,
                            "length": 6
                        },
                        "new_range": {
                            "start": 35,
                            "length": 10
                        },
                        "section": "Backward Incompatibilities"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "  encoding via ``Accept-Encoding`` request headers.",
                                "type": "context"
                            },
                            {
                                "content": "  See https://github.com/Pylons/pyramid/pull/2810",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "- Settings are no longer accessible as attributes on the settings object",
                                "type": "added"
                            },
                            {
                                "content": "  (e.g. ``request.registry.settings.foo``). This was deprecated in Pyramid 1.2.",
                                "type": "added"
                            },
                            {
                                "content": "  See https://github.com/Pylons/pyramid/pull/2823",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "Features",
                                "type": "context"
                            },
                            {
                                "content": "--------",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [],
                    "added_entities": [],
                    "deleted_entities": []
                },
                {
                    "descriptor": {
                        "old_range": {
                            "start": 80,
                            "length": 6
                        },
                        "new_range": {
                            "start": 84,
                            "length": 15
                        },
                        "section": "Features"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "  as soon as possible before importing the rest of pyramid.",
                                "type": "context"
                            },
                            {
                                "content": "  See https://github.com/Pylons/pyramid/pull/2797",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "- Pyramid no longer copies the settings object passed to the",
                                "type": "added"
                            },
                            {
                                "content": "  ``pyramid.config.Configurator(settings=)``. The original ``dict`` is kept.",
                                "type": "added"
                            },
                            {
                                "content": "  See https://github.com/Pylons/pyramid/pull/2823",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "- The csrf trusted origins setting may now be a whitespace-separated list of",
                                "type": "added"
                            },
                            {
                                "content": "  domains. Previously only a python list was allowed. Also, it can now be set",
                                "type": "added"
                            },
                            {
                                "content": "  using the ``PYRAMID_CSRF_TRUSTED_ORIGINS`` environment variable similar to",
                                "type": "added"
                            },
                            {
                                "content": "  other settings. See https://github.com/Pylons/pyramid/pull/2823",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "Bug Fixes",
                                "type": "context"
                            },
                            {
                                "content": "---------",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [],
                    "added_entities": [],
                    "deleted_entities": []
                }
            ]
        },
        {
            "old_file_content": "import os\n\nfrom pyramid.settings import asbool, aslist\n\nclass SettingsConfiguratorMixin(object):\n    def _set_settings(self, mapping):\n        if not mapping:\n            mapping = {}\n        settings = Settings(mapping)\n        self.registry.settings = settings\n        return settings\n\n    def add_settings(self, settings=None, **kw):\n        \"\"\"Augment the :term:`deployment settings` with one or more\n        key/value pairs.\n\n        You may pass a dictionary::\n\n           config.add_settings({'external_uri':'http://example.com'})\n\n        Or a set of key/value pairs::\n\n           config.add_settings(external_uri='http://example.com')\n\n        This function is useful when you need to test code that accesses the\n        :attr:`pyramid.registry.Registry.settings` API (or the\n        :meth:`pyramid.config.Configurator.get_settings` API) and\n        which uses values from that API.\n        \"\"\"\n        if settings is None:\n            settings = {}\n        utility = self.registry.settings\n        if utility is None:\n            utility = self._set_settings(settings)\n        utility.update(settings)\n        utility.update(kw)\n\n    def get_settings(self):\n        \"\"\"\n        Return a :term:`deployment settings` object for the current\n        application.  A deployment settings object is a dictionary-like\n        object that contains key/value pairs based on the dictionary passed\n        as the ``settings`` argument to the\n        :class:`pyramid.config.Configurator` constructor.\n\n        .. note:: the :attr:`pyramid.registry.Registry.settings` API\n           performs the same duty.\n           \"\"\"\n        return self.registry.settings\n\n\ndef Settings(d=None, _environ_=os.environ, **kw):\n    \"\"\" Deployment settings.  Update application settings (usually\n    from PasteDeploy keywords) with framework-specific key/value pairs\n    (e.g. find ``PYRAMID_DEBUG_AUTHORIZATION`` in os.environ and jam into\n    keyword args).\"\"\"\n    if d is None:\n        d = {}\n    d.update(**kw)\n\n    eget = _environ_.get\n    def expand_key(key):\n        keys = [key]\n        if not key.startswith('pyramid.'):\n            keys.append('pyramid.' + key)\n        return keys\n    def S(settings_key, env_key=None, type_=str, default=False):\n        value = default\n        keys = expand_key(settings_key)\n        for key in keys:\n            value = d.get(key, value)\n        if env_key:\n            value = eget(env_key, value)\n        value = type_(value)\n        d.update({k: value for k in keys})\n    def O(settings_key, override_key):\n        for key in expand_key(settings_key):\n            d[key] = d[key] or d[override_key]\n\n    S('debug_all', 'PYRAMID_DEBUG_ALL', asbool)\n    S('debug_authorization', 'PYRAMID_DEBUG_AUTHORIZATION', asbool)\n    O('debug_authorization', 'debug_all')\n    S('debug_notfound', 'PYRAMID_DEBUG_NOTFOUND', asbool)\n    O('debug_notfound', 'debug_all')\n    S('debug_routematch', 'PYRAMID_DEBUG_ROUTEMATCH', asbool)\n    O('debug_routematch', 'debug_all')\n    S('debug_templates', 'PYRAMID_DEBUG_TEMPLATES', asbool)\n    O('debug_templates', 'debug_all')\n\n    S('reload_all', 'PYRAMID_RELOAD_ALL', asbool)\n    S('reload_templates', 'PYRAMID_RELOAD_TEMPLATES', asbool)\n    O('reload_templates', 'reload_all')\n    S('reload_assets', 'PYRAMID_RELOAD_ASSETS', asbool)\n    O('reload_assets', 'reload_all')\n    S('reload_resources', 'PYRAMID_RELOAD_RESOURCES', asbool)\n    O('reload_resources', 'reload_all')\n    # reload_resources is an older alias for reload_assets\n    for k in expand_key('reload_assets') + expand_key('reload_resources'):\n        d[k] = d['reload_assets'] or d['reload_resources']\n\n    S('default_locale_name', 'PYRAMID_DEFAULT_LOCALE_NAME', str, 'en')\n    S('prevent_http_cache', 'PYRAMID_PREVENT_HTTP_CACHE', asbool)\n    S('prevent_cachebust', 'PYRAMID_PREVENT_CACHEBUST', asbool)\n    S('csrf_trusted_origins', 'PYRAMID_CSRF_TRUSTED_ORIGINS', aslist, [])\n\n    return d\n",
            "new_file_content": "import os\n\nfrom pyramid.settings import asbool, aslist\n\nclass SettingsConfiguratorMixin(object):\n    def _set_settings(self, mapping):\n        if mapping is None:\n            mapping = {}\n        settings = Settings(mapping)\n        self.registry.settings = settings\n        return settings\n\n    def add_settings(self, settings=None, **kw):\n        \"\"\"Augment the :term:`deployment settings` with one or more\n        key/value pairs.\n\n        You may pass a dictionary::\n\n           config.add_settings({'external_uri':'http://example.com'})\n\n        Or a set of key/value pairs::\n\n           config.add_settings(external_uri='http://example.com')\n\n        This function is useful when you need to test code that accesses the\n        :attr:`pyramid.registry.Registry.settings` API (or the\n        :meth:`pyramid.config.Configurator.get_settings` API) and\n        which uses values from that API.\n        \"\"\"\n        if settings is None:\n            settings = {}\n        utility = self.registry.settings\n        if utility is None:\n            utility = self._set_settings(settings)\n        utility.update(settings)\n        utility.update(kw)\n\n    def get_settings(self):\n        \"\"\"\n        Return a :term:`deployment settings` object for the current\n        application.  A deployment settings object is a dictionary-like\n        object that contains key/value pairs based on the dictionary passed\n        as the ``settings`` argument to the\n        :class:`pyramid.config.Configurator` constructor.\n\n        .. note:: the :attr:`pyramid.registry.Registry.settings` API\n           performs the same duty.\n           \"\"\"\n        return self.registry.settings\n\n\ndef Settings(d=None, _environ_=os.environ, **kw):\n    \"\"\" Deployment settings.  Update application settings (usually\n    from PasteDeploy keywords) with framework-specific key/value pairs\n    (e.g. find ``PYRAMID_DEBUG_AUTHORIZATION`` in os.environ and jam into\n    keyword args).\"\"\"\n    if d is None:\n        d = {}\n    d.update(**kw)\n\n    eget = _environ_.get\n    def expand_key(key):\n        keys = [key]\n        if not key.startswith('pyramid.'):\n            keys.append('pyramid.' + key)\n        return keys\n    def S(settings_key, env_key=None, type_=str, default=False):\n        value = default\n        keys = expand_key(settings_key)\n        for key in keys:\n            value = d.get(key, value)\n        if env_key:\n            value = eget(env_key, value)\n        value = type_(value)\n        d.update({k: value for k in keys})\n    def O(settings_key, override_key):\n        for key in expand_key(settings_key):\n            d[key] = d[key] or d[override_key]\n\n    S('debug_all', 'PYRAMID_DEBUG_ALL', asbool)\n    S('debug_authorization', 'PYRAMID_DEBUG_AUTHORIZATION', asbool)\n    O('debug_authorization', 'debug_all')\n    S('debug_notfound', 'PYRAMID_DEBUG_NOTFOUND', asbool)\n    O('debug_notfound', 'debug_all')\n    S('debug_routematch', 'PYRAMID_DEBUG_ROUTEMATCH', asbool)\n    O('debug_routematch', 'debug_all')\n    S('debug_templates', 'PYRAMID_DEBUG_TEMPLATES', asbool)\n    O('debug_templates', 'debug_all')\n\n    S('reload_all', 'PYRAMID_RELOAD_ALL', asbool)\n    S('reload_templates', 'PYRAMID_RELOAD_TEMPLATES', asbool)\n    O('reload_templates', 'reload_all')\n    S('reload_assets', 'PYRAMID_RELOAD_ASSETS', asbool)\n    O('reload_assets', 'reload_all')\n    S('reload_resources', 'PYRAMID_RELOAD_RESOURCES', asbool)\n    O('reload_resources', 'reload_all')\n    # reload_resources is an older alias for reload_assets\n    for k in expand_key('reload_assets') + expand_key('reload_resources'):\n        d[k] = d['reload_assets'] or d['reload_resources']\n\n    S('default_locale_name', 'PYRAMID_DEFAULT_LOCALE_NAME', str, 'en')\n    S('prevent_http_cache', 'PYRAMID_PREVENT_HTTP_CACHE', asbool)\n    S('prevent_cachebust', 'PYRAMID_PREVENT_CACHEBUST', asbool)\n    S('csrf_trusted_origins', 'PYRAMID_CSRF_TRUSTED_ORIGINS', aslist, [])\n\n    return d\n",
            "header": {
                "file": {
                    "path": "pyramid/config/settings.py"
                },
                "misc_line": null
            },
            "index_line": {
                "old_commit_hash": "5684f1867",
                "new_commit_hash": "26eb48951",
                "mode": "100644"
            },
            "is_binary_file": false,
            "binary_line": null,
            "minus_file": {
                "path": "a/pyramid/config/settings.py"
            },
            "plus_file": {
                "path": "b/pyramid/config/settings.py"
            },
            "hunks": [
                {
                    "descriptor": {
                        "old_range": {
                            "start": 4,
                            "length": 7
                        },
                        "new_range": {
                            "start": 4,
                            "length": 7
                        },
                        "section": "from pyramid.settings import asbool, aslist"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "class SettingsConfiguratorMixin(object):",
                                "type": "context"
                            },
                            {
                                "content": "    def _set_settings(self, mapping):",
                                "type": "context"
                            },
                            {
                                "content": "        if not mapping:",
                                "type": "deleted"
                            },
                            {
                                "content": "        if mapping is None:",
                                "type": "added"
                            },
                            {
                                "content": "            mapping = {}",
                                "type": "context"
                            },
                            {
                                "content": "        settings = Settings(mapping)",
                                "type": "context"
                            },
                            {
                                "content": "        self.registry.settings = settings",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [
                        {
                            "file_name": "pyramid/config/settings.py",
                            "type": "class",
                            "name": "SettingsConfiguratorMixin",
                            "content": "class SettingsConfiguratorMixin(object):\n    def _set_settings(self, mapping):\n        if not mapping:\n            mapping = {}\n        settings = Settings(mapping)\n        self.registry.settings = settings\n        return settings\n\n    def add_settings(self, settings=None, **kw):\n        \"\"\"Augment the :term:`deployment settings` with one or more\n        key/value pairs.\n\n        You may pass a dictionary::\n\n           config.add_settings({'external_uri':'http://example.com'})\n\n        Or a set of key/value pairs::\n\n           config.add_settings(external_uri='http://example.com')\n\n        This function is useful when you need to test code that accesses the\n        :attr:`pyramid.registry.Registry.settings` API (or the\n        :meth:`pyramid.config.Configurator.get_settings` API) and\n        which uses values from that API.\n        \"\"\"\n        if settings is None:\n            settings = {}\n        utility = self.registry.settings\n        if utility is None:\n            utility = self._set_settings(settings)\n        utility.update(settings)\n        utility.update(kw)\n\n    def get_settings(self):\n        \"\"\"\n        Return a :term:`deployment settings` object for the current\n        application.  A deployment settings object is a dictionary-like\n        object that contains key/value pairs based on the dictionary passed\n        as the ``settings`` argument to the\n        :class:`pyramid.config.Configurator` constructor.\n\n        .. note:: the :attr:`pyramid.registry.Registry.settings` API\n           performs the same duty.\n           \"\"\"\n        return self.registry.settings",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 5,
                            "end_lineno": 49,
                            "parent": null
                        },
                        {
                            "file_name": "pyramid/config/settings.py",
                            "type": "method",
                            "name": "SettingsConfiguratorMixin._set_settings",
                            "content": "class SettingsConfiguratorMixin(object):\n    def _set_settings(self, mapping):\n        if not mapping:\n            mapping = {}\n        settings = Settings(mapping)\n        self.registry.settings = settings\n        return settings\n\n    def add_settings(self, settings=None, **kw):\n        \"\"\"Augment the :term:`deployment settings` with one or more\n        key/value pairs.\n\n        You may pass a dictionary::\n\n           config.add_settings({'external_uri':'http://example.com'})\n\n        Or a set of key/value pairs::\n\n           config.add_settings(external_uri='http://example.com')\n\n        This function is useful when you need to test code that accesses the\n        :attr:`pyramid.registry.Registry.settings` API (or the\n        :meth:`pyramid.config.Configurator.get_settings` API) and\n        which uses values from that API.\n        \"\"\"\n        if settings is None:\n            settings = {}\n        utility = self.registry.settings\n        if utility is None:\n            utility = self._set_settings(settings)\n        utility.update(settings)\n        utility.update(kw)\n\n    def get_settings(self):\n        \"\"\"\n        Return a :term:`deployment settings` object for the current\n        application.  A deployment settings object is a dictionary-like\n        object that contains key/value pairs based on the dictionary passed\n        as the ``settings`` argument to the\n        :class:`pyramid.config.Configurator` constructor.\n\n        .. note:: the :attr:`pyramid.registry.Registry.settings` API\n           performs the same duty.\n           \"\"\"\n        return self.registry.settings",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 6,
                            "end_lineno": 11,
                            "parent": {
                                "file_name": "pyramid/config/settings.py",
                                "type": "class",
                                "name": "SettingsConfiguratorMixin",
                                "content": "class SettingsConfiguratorMixin(object):\n    def _set_settings(self, mapping):\n        if not mapping:\n            mapping = {}\n        settings = Settings(mapping)\n        self.registry.settings = settings\n        return settings\n\n    def add_settings(self, settings=None, **kw):\n        \"\"\"Augment the :term:`deployment settings` with one or more\n        key/value pairs.\n\n        You may pass a dictionary::\n\n           config.add_settings({'external_uri':'http://example.com'})\n\n        Or a set of key/value pairs::\n\n           config.add_settings(external_uri='http://example.com')\n\n        This function is useful when you need to test code that accesses the\n        :attr:`pyramid.registry.Registry.settings` API (or the\n        :meth:`pyramid.config.Configurator.get_settings` API) and\n        which uses values from that API.\n        \"\"\"\n        if settings is None:\n            settings = {}\n        utility = self.registry.settings\n        if utility is None:\n            utility = self._set_settings(settings)\n        utility.update(settings)\n        utility.update(kw)\n\n    def get_settings(self):\n        \"\"\"\n        Return a :term:`deployment settings` object for the current\n        application.  A deployment settings object is a dictionary-like\n        object that contains key/value pairs based on the dictionary passed\n        as the ``settings`` argument to the\n        :class:`pyramid.config.Configurator` constructor.\n\n        .. note:: the :attr:`pyramid.registry.Registry.settings` API\n           performs the same duty.\n           \"\"\"\n        return self.registry.settings",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 5,
                                "end_lineno": 49,
                                "parent": null
                            }
                        }
                    ],
                    "added_entities": [],
                    "deleted_entities": []
                }
            ]
        },
        {
            "old_file_content": "import unittest\n\nclass TestSettingsConfiguratorMixin(unittest.TestCase):\n    def _makeOne(self, *arg, **kw):\n        from pyramid.config import Configurator\n        config = Configurator(*arg, **kw)\n        return config\n\n    def test__set_settings_as_None(self):\n        config = self._makeOne()\n        settings = config._set_settings(None)\n        self.assertTrue(settings)\n\n    def test__set_settings_as_dictwithvalues(self):\n        config = self._makeOne()\n        settings = config._set_settings({'a':'1'})\n        self.assertEqual(settings['a'], '1')\n\n    def test_get_settings_nosettings(self):\n        from pyramid.registry import Registry\n        reg = Registry()\n        config = self._makeOne(reg)\n        self.assertEqual(config.get_settings(), None)\n\n    def test_get_settings_withsettings(self):\n        settings = {'a':1}\n        config = self._makeOne()\n        config.registry.settings = settings\n        self.assertEqual(config.get_settings(), settings)\n\n    def test_add_settings_settings_already_registered(self):\n        from pyramid.registry import Registry\n        reg = Registry()\n        config = self._makeOne(reg)\n        config._set_settings({'a':1})\n        config.add_settings({'b':2})\n        settings = reg.settings\n        self.assertEqual(settings['a'], 1)\n        self.assertEqual(settings['b'], 2)\n\n    def test_add_settings_settings_not_yet_registered(self):\n        from pyramid.registry import Registry\n        from pyramid.interfaces import ISettings\n        reg = Registry()\n        config = self._makeOne(reg)\n        config.add_settings({'a':1})\n        settings = reg.getUtility(ISettings)\n        self.assertEqual(settings['a'], 1)\n\n    def test_add_settings_settings_None(self):\n        from pyramid.registry import Registry\n        from pyramid.interfaces import ISettings\n        reg = Registry()\n        config = self._makeOne(reg)\n        config.add_settings(None, a=1)\n        settings = reg.getUtility(ISettings)\n        self.assertEqual(settings['a'], 1)\n\nclass TestSettings(unittest.TestCase):\n\n    def _getTargetClass(self):\n        from pyramid.config.settings import Settings\n        return Settings\n\n    def _makeOne(self, d=None, environ=None):\n        if environ is None:\n            environ = {}\n        klass = self._getTargetClass()\n        return klass(d, _environ_=environ)\n\n    def test_noargs(self):\n        settings = self._makeOne()\n        self.assertEqual(settings['debug_authorization'], False)\n        self.assertEqual(settings['debug_notfound'], False)\n        self.assertEqual(settings['debug_routematch'], False)\n        self.assertEqual(settings['reload_templates'], False)\n        self.assertEqual(settings['reload_resources'], False)\n\n        self.assertEqual(settings['pyramid.debug_authorization'], False)\n        self.assertEqual(settings['pyramid.debug_notfound'], False)\n        self.assertEqual(settings['pyramid.debug_routematch'], False)\n        self.assertEqual(settings['pyramid.reload_templates'], False)\n        self.assertEqual(settings['pyramid.reload_resources'], False)\n\n    def test_prevent_http_cache(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['prevent_http_cache'], False)\n        self.assertEqual(settings['pyramid.prevent_http_cache'], False)\n        result = self._makeOne({'prevent_http_cache':'false'})\n        self.assertEqual(result['prevent_http_cache'], False)\n        self.assertEqual(result['pyramid.prevent_http_cache'], False)\n        result = self._makeOne({'prevent_http_cache':'t'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'pyramid.prevent_http_cache':'t'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({}, {'PYRAMID_PREVENT_HTTP_CACHE':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'false',\n                                'pyramid.prevent_http_cache':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'false',\n                                'pyramid.prevent_http_cache':'f'},\n                               {'PYRAMID_PREVENT_HTTP_CACHE':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n\n    def test_prevent_cachebust(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['prevent_cachebust'], False)\n        self.assertEqual(settings['pyramid.prevent_cachebust'], False)\n        result = self._makeOne({'prevent_cachebust':'false'})\n        self.assertEqual(result['prevent_cachebust'], False)\n        self.assertEqual(result['pyramid.prevent_cachebust'], False)\n        result = self._makeOne({'prevent_cachebust':'t'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'pyramid.prevent_cachebust':'t'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({}, {'PYRAMID_PREVENT_CACHEBUST':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'false',\n                                'pyramid.prevent_cachebust':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'false',\n                                'pyramid.prevent_cachebust':'f'},\n                               {'PYRAMID_PREVENT_CACHEBUST':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n\n    def test_reload_templates(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['reload_templates'], False)\n        self.assertEqual(settings['pyramid.reload_templates'], False)\n        result = self._makeOne({'reload_templates':'false'})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        result = self._makeOne({'reload_templates':'t'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'pyramid.reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_TEMPLATES':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'false',\n                                'pyramid.reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'false'},\n                               {'PYRAMID_RELOAD_TEMPLATES':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n\n    def test_reload_resources(self):\n        # alias for reload_assets\n        result = self._makeOne({})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_resources':'false'})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_resources':'t'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'pyramid.reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_RESOURCES':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'false',\n                                'pyramid.reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'false',\n                                'pyramid.reload_resources':'false'},\n                               {'PYRAMID_RELOAD_RESOURCES':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n\n    def test_reload_assets(self):\n        # alias for reload_resources\n        result = self._makeOne({})\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        result = self._makeOne({'reload_assets':'false'})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        result = self._makeOne({'reload_assets':'t'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'pyramid.reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_ASSETS':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'false',\n                                'pyramid.reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'false',\n                                'pyramid.reload_assets':'false'},\n                               {'PYRAMID_RELOAD_ASSETS':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n\n    def test_reload_all(self):\n        result = self._makeOne({})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_all':'false'})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_all':'t'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'pyramid.reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_ALL':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'false',\n                                'pyramid.reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'false',\n                                'pyramid.reload_all':'false'},\n                               {'PYRAMID_RELOAD_ALL':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n\n    def test_debug_authorization(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        result = self._makeOne({'debug_authorization':'false'})\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        result = self._makeOne({'debug_authorization':'t'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'pyramid.debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_AUTHORIZATION':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'false',\n                                'pyramid.debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'false',\n                                'pyramid.debug_authorization':'false'},\n                               {'PYRAMID_DEBUG_AUTHORIZATION':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n\n    def test_debug_notfound(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        result = self._makeOne({'debug_notfound':'false'})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        result = self._makeOne({'debug_notfound':'t'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'pyramid.debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_NOTFOUND':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'false',\n                                'pyramid.debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'false',\n                                'pyramid.debug_notfound':'false'},\n                               {'PYRAMID_DEBUG_NOTFOUND':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n\n    def test_debug_routematch(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        result = self._makeOne({'debug_routematch':'false'})\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        result = self._makeOne({'debug_routematch':'t'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'pyramid.debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_ROUTEMATCH':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'false',\n                                'pyramid.debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'false',\n                                'pyramid.debug_routematch':'false'},\n                               {'PYRAMID_DEBUG_ROUTEMATCH':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n\n    def test_debug_templates(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_templates':'false'})\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_templates':'t'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'pyramid.debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_TEMPLATES':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'false',\n                                'pyramid.debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'false',\n                                'pyramid.debug_templates':'false'},\n                               {'PYRAMID_DEBUG_TEMPLATES':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n\n    def test_debug_all(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_all':'false'})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_all':'t'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'pyramid.debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_ALL':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'false',\n                                'pyramid.debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'false',\n                                'pyramid.debug_all':'false'},\n                               {'PYRAMID_DEBUG_ALL':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n\n    def test_default_locale_name(self):\n        result = self._makeOne({})\n        self.assertEqual(result['default_locale_name'], 'en')\n        self.assertEqual(result['pyramid.default_locale_name'], 'en')\n        result = self._makeOne({'default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'pyramid.default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({}, {'PYRAMID_DEFAULT_LOCALE_NAME':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'default_locale_name':'def',\n                                'pyramid.default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'default_locale_name':'def',\n                                'pyramid.default_locale_name':'ghi'},\n                               {'PYRAMID_DEFAULT_LOCALE_NAME':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n\n    def test_originals_kept(self):\n        result = self._makeOne({'a':'i am so a'})\n        self.assertEqual(result['a'], 'i am so a')\n\n\n",
            "new_file_content": "import unittest\n\nclass TestSettingsConfiguratorMixin(unittest.TestCase):\n    def _makeOne(self, *arg, **kw):\n        from pyramid.config import Configurator\n        config = Configurator(*arg, **kw)\n        return config\n\n    def test__set_settings_as_None(self):\n        config = self._makeOne()\n        settings = config._set_settings(None)\n        self.assertTrue(settings)\n\n    def test__set_settings_uses_original_dict(self):\n        config = self._makeOne()\n        dummy = {}\n        result = config._set_settings(dummy)\n        self.assertTrue(dummy is result)\n        self.assertEqual(dummy['pyramid.debug_all'], False)\n\n    def test__set_settings_as_dictwithvalues(self):\n        config = self._makeOne()\n        settings = config._set_settings({'a':'1'})\n        self.assertEqual(settings['a'], '1')\n\n    def test_get_settings_nosettings(self):\n        from pyramid.registry import Registry\n        reg = Registry()\n        config = self._makeOne(reg)\n        self.assertEqual(config.get_settings(), None)\n\n    def test_get_settings_withsettings(self):\n        settings = {'a':1}\n        config = self._makeOne()\n        config.registry.settings = settings\n        self.assertEqual(config.get_settings(), settings)\n\n    def test_add_settings_settings_already_registered(self):\n        from pyramid.registry import Registry\n        reg = Registry()\n        config = self._makeOne(reg)\n        config._set_settings({'a':1})\n        config.add_settings({'b':2})\n        settings = reg.settings\n        self.assertEqual(settings['a'], 1)\n        self.assertEqual(settings['b'], 2)\n\n    def test_add_settings_settings_not_yet_registered(self):\n        from pyramid.registry import Registry\n        from pyramid.interfaces import ISettings\n        reg = Registry()\n        config = self._makeOne(reg)\n        config.add_settings({'a':1})\n        settings = reg.getUtility(ISettings)\n        self.assertEqual(settings['a'], 1)\n\n    def test_add_settings_settings_None(self):\n        from pyramid.registry import Registry\n        from pyramid.interfaces import ISettings\n        reg = Registry()\n        config = self._makeOne(reg)\n        config.add_settings(None, a=1)\n        settings = reg.getUtility(ISettings)\n        self.assertEqual(settings['a'], 1)\n\nclass TestSettings(unittest.TestCase):\n\n    def _getTargetClass(self):\n        from pyramid.config.settings import Settings\n        return Settings\n\n    def _makeOne(self, d=None, environ=None):\n        if environ is None:\n            environ = {}\n        klass = self._getTargetClass()\n        return klass(d, _environ_=environ)\n\n    def test_noargs(self):\n        settings = self._makeOne()\n        self.assertEqual(settings['debug_authorization'], False)\n        self.assertEqual(settings['debug_notfound'], False)\n        self.assertEqual(settings['debug_routematch'], False)\n        self.assertEqual(settings['reload_templates'], False)\n        self.assertEqual(settings['reload_resources'], False)\n\n        self.assertEqual(settings['pyramid.debug_authorization'], False)\n        self.assertEqual(settings['pyramid.debug_notfound'], False)\n        self.assertEqual(settings['pyramid.debug_routematch'], False)\n        self.assertEqual(settings['pyramid.reload_templates'], False)\n        self.assertEqual(settings['pyramid.reload_resources'], False)\n\n    def test_prevent_http_cache(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['prevent_http_cache'], False)\n        self.assertEqual(settings['pyramid.prevent_http_cache'], False)\n        result = self._makeOne({'prevent_http_cache':'false'})\n        self.assertEqual(result['prevent_http_cache'], False)\n        self.assertEqual(result['pyramid.prevent_http_cache'], False)\n        result = self._makeOne({'prevent_http_cache':'t'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'pyramid.prevent_http_cache':'t'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({}, {'PYRAMID_PREVENT_HTTP_CACHE':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'false',\n                                'pyramid.prevent_http_cache':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'false',\n                                'pyramid.prevent_http_cache':'f'},\n                               {'PYRAMID_PREVENT_HTTP_CACHE':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n\n    def test_prevent_cachebust(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['prevent_cachebust'], False)\n        self.assertEqual(settings['pyramid.prevent_cachebust'], False)\n        result = self._makeOne({'prevent_cachebust':'false'})\n        self.assertEqual(result['prevent_cachebust'], False)\n        self.assertEqual(result['pyramid.prevent_cachebust'], False)\n        result = self._makeOne({'prevent_cachebust':'t'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'pyramid.prevent_cachebust':'t'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({}, {'PYRAMID_PREVENT_CACHEBUST':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'false',\n                                'pyramid.prevent_cachebust':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'false',\n                                'pyramid.prevent_cachebust':'f'},\n                               {'PYRAMID_PREVENT_CACHEBUST':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n\n    def test_reload_templates(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['reload_templates'], False)\n        self.assertEqual(settings['pyramid.reload_templates'], False)\n        result = self._makeOne({'reload_templates':'false'})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        result = self._makeOne({'reload_templates':'t'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'pyramid.reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_TEMPLATES':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'false',\n                                'pyramid.reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'false'},\n                               {'PYRAMID_RELOAD_TEMPLATES':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n\n    def test_reload_resources(self):\n        # alias for reload_assets\n        result = self._makeOne({})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_resources':'false'})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_resources':'t'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'pyramid.reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_RESOURCES':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'false',\n                                'pyramid.reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'false',\n                                'pyramid.reload_resources':'false'},\n                               {'PYRAMID_RELOAD_RESOURCES':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n\n    def test_reload_assets(self):\n        # alias for reload_resources\n        result = self._makeOne({})\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        result = self._makeOne({'reload_assets':'false'})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        result = self._makeOne({'reload_assets':'t'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'pyramid.reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_ASSETS':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'false',\n                                'pyramid.reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'false',\n                                'pyramid.reload_assets':'false'},\n                               {'PYRAMID_RELOAD_ASSETS':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n\n    def test_reload_all(self):\n        result = self._makeOne({})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_all':'false'})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_all':'t'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'pyramid.reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_ALL':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'false',\n                                'pyramid.reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'false',\n                                'pyramid.reload_all':'false'},\n                               {'PYRAMID_RELOAD_ALL':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n\n    def test_debug_authorization(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        result = self._makeOne({'debug_authorization':'false'})\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        result = self._makeOne({'debug_authorization':'t'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'pyramid.debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_AUTHORIZATION':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'false',\n                                'pyramid.debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'false',\n                                'pyramid.debug_authorization':'false'},\n                               {'PYRAMID_DEBUG_AUTHORIZATION':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n\n    def test_debug_notfound(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        result = self._makeOne({'debug_notfound':'false'})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        result = self._makeOne({'debug_notfound':'t'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'pyramid.debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_NOTFOUND':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'false',\n                                'pyramid.debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'false',\n                                'pyramid.debug_notfound':'false'},\n                               {'PYRAMID_DEBUG_NOTFOUND':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n\n    def test_debug_routematch(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        result = self._makeOne({'debug_routematch':'false'})\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        result = self._makeOne({'debug_routematch':'t'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'pyramid.debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_ROUTEMATCH':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'false',\n                                'pyramid.debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'false',\n                                'pyramid.debug_routematch':'false'},\n                               {'PYRAMID_DEBUG_ROUTEMATCH':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n\n    def test_debug_templates(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_templates':'false'})\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_templates':'t'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'pyramid.debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_TEMPLATES':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'false',\n                                'pyramid.debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'false',\n                                'pyramid.debug_templates':'false'},\n                               {'PYRAMID_DEBUG_TEMPLATES':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n\n    def test_debug_all(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_all':'false'})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_all':'t'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'pyramid.debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_ALL':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'false',\n                                'pyramid.debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'false',\n                                'pyramid.debug_all':'false'},\n                               {'PYRAMID_DEBUG_ALL':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n\n    def test_default_locale_name(self):\n        result = self._makeOne({})\n        self.assertEqual(result['default_locale_name'], 'en')\n        self.assertEqual(result['pyramid.default_locale_name'], 'en')\n        result = self._makeOne({'default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'pyramid.default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({}, {'PYRAMID_DEFAULT_LOCALE_NAME':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'default_locale_name':'def',\n                                'pyramid.default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'default_locale_name':'def',\n                                'pyramid.default_locale_name':'ghi'},\n                               {'PYRAMID_DEFAULT_LOCALE_NAME':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n\n    def test_csrf_trusted_origins(self):\n        result = self._makeOne({})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], [])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': 'example.com'})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], ['example.com'])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': ['example.com']})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], ['example.com'])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': (\n            'example.com foo.example.com\\nasdf.example.com')})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], [\n            'example.com', 'foo.example.com', 'asdf.example.com'])\n\n    def test_originals_kept(self):\n        result = self._makeOne({'a':'i am so a'})\n        self.assertEqual(result['a'], 'i am so a')\n\n\n",
            "header": {
                "file": {
                    "path": "pyramid/tests/test_config/test_settings.py"
                },
                "misc_line": null
            },
            "index_line": {
                "old_commit_hash": "78198298b",
                "new_commit_hash": "2dbe9b1bb",
                "mode": "100644"
            },
            "is_binary_file": false,
            "binary_line": null,
            "minus_file": {
                "path": "a/pyramid/tests/test_config/test_settings.py"
            },
            "plus_file": {
                "path": "b/pyramid/tests/test_config/test_settings.py"
            },
            "hunks": [
                {
                    "descriptor": {
                        "old_range": {
                            "start": 11,
                            "length": 6
                        },
                        "new_range": {
                            "start": 11,
                            "length": 13
                        },
                        "section": "class TestSettingsConfiguratorMixin(unittest.TestCase):"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "        settings = config._set_settings(None)",
                                "type": "context"
                            },
                            {
                                "content": "        self.assertTrue(settings)",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "    def test__set_settings_uses_original_dict(self):",
                                "type": "added"
                            },
                            {
                                "content": "        config = self._makeOne()",
                                "type": "added"
                            },
                            {
                                "content": "        dummy = {}",
                                "type": "added"
                            },
                            {
                                "content": "        result = config._set_settings(dummy)",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertTrue(dummy is result)",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(dummy['pyramid.debug_all'], False)",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "    def test__set_settings_as_dictwithvalues(self):",
                                "type": "context"
                            },
                            {
                                "content": "        config = self._makeOne()",
                                "type": "context"
                            },
                            {
                                "content": "        settings = config._set_settings({'a':'1'})",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [
                        {
                            "file_name": "pyramid/tests/test_config/test_settings.py",
                            "type": "class",
                            "name": "TestSettingsConfiguratorMixin",
                            "content": "class TestSettingsConfiguratorMixin(unittest.TestCase):\n    def _makeOne(self, *arg, **kw):\n        from pyramid.config import Configurator\n        config = Configurator(*arg, **kw)\n        return config\n\n    def test__set_settings_as_None(self):\n        config = self._makeOne()\n        settings = config._set_settings(None)\n        self.assertTrue(settings)\n\n    def test__set_settings_uses_original_dict(self):\n        config = self._makeOne()\n        dummy = {}\n        result = config._set_settings(dummy)\n        self.assertTrue(dummy is result)\n        self.assertEqual(dummy['pyramid.debug_all'], False)\n\n    def test__set_settings_as_dictwithvalues(self):\n        config = self._makeOne()\n        settings = config._set_settings({'a':'1'})\n        self.assertEqual(settings['a'], '1')\n\n    def test_get_settings_nosettings(self):\n        from pyramid.registry import Registry\n        reg = Registry()\n        config = self._makeOne(reg)\n        self.assertEqual(config.get_settings(), None)\n\n    def test_get_settings_withsettings(self):\n        settings = {'a':1}\n        config = self._makeOne()\n        config.registry.settings = settings\n        self.assertEqual(config.get_settings(), settings)\n\n    def test_add_settings_settings_already_registered(self):\n        from pyramid.registry import Registry\n        reg = Registry()\n        config = self._makeOne(reg)\n        config._set_settings({'a':1})\n        config.add_settings({'b':2})\n        settings = reg.settings\n        self.assertEqual(settings['a'], 1)\n        self.assertEqual(settings['b'], 2)\n\n    def test_add_settings_settings_not_yet_registered(self):\n        from pyramid.registry import Registry\n        from pyramid.interfaces import ISettings\n        reg = Registry()\n        config = self._makeOne(reg)\n        config.add_settings({'a':1})\n        settings = reg.getUtility(ISettings)\n        self.assertEqual(settings['a'], 1)\n\n    def test_add_settings_settings_None(self):\n        from pyramid.registry import Registry\n        from pyramid.interfaces import ISettings\n        reg = Registry()\n        config = self._makeOne(reg)\n        config.add_settings(None, a=1)\n        settings = reg.getUtility(ISettings)\n        self.assertEqual(settings['a'], 1)",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 3,
                            "end_lineno": 64,
                            "parent": null
                        }
                    ],
                    "added_entities": [
                        {
                            "file_name": "pyramid/tests/test_config/test_settings.py",
                            "type": "method",
                            "name": "TestSettingsConfiguratorMixin.test__set_settings_uses_original_dict",
                            "content": "class TestSettingsConfiguratorMixin(unittest.TestCase):\n    def _makeOne(self, *arg, **kw):\n        from pyramid.config import Configurator\n        config = Configurator(*arg, **kw)\n        return config\n\n    def test__set_settings_as_None(self):\n        config = self._makeOne()\n        settings = config._set_settings(None)\n        self.assertTrue(settings)\n\n    def test__set_settings_uses_original_dict(self):\n        config = self._makeOne()\n        dummy = {}\n        result = config._set_settings(dummy)\n        self.assertTrue(dummy is result)\n        self.assertEqual(dummy['pyramid.debug_all'], False)\n\n    def test__set_settings_as_dictwithvalues(self):\n        config = self._makeOne()\n        settings = config._set_settings({'a':'1'})\n        self.assertEqual(settings['a'], '1')\n\n    def test_get_settings_nosettings(self):\n        from pyramid.registry import Registry\n        reg = Registry()\n        config = self._makeOne(reg)\n        self.assertEqual(config.get_settings(), None)\n\n    def test_get_settings_withsettings(self):\n        settings = {'a':1}\n        config = self._makeOne()\n        config.registry.settings = settings\n        self.assertEqual(config.get_settings(), settings)\n\n    def test_add_settings_settings_already_registered(self):\n        from pyramid.registry import Registry\n        reg = Registry()\n        config = self._makeOne(reg)\n        config._set_settings({'a':1})\n        config.add_settings({'b':2})\n        settings = reg.settings\n        self.assertEqual(settings['a'], 1)\n        self.assertEqual(settings['b'], 2)\n\n    def test_add_settings_settings_not_yet_registered(self):\n        from pyramid.registry import Registry\n        from pyramid.interfaces import ISettings\n        reg = Registry()\n        config = self._makeOne(reg)\n        config.add_settings({'a':1})\n        settings = reg.getUtility(ISettings)\n        self.assertEqual(settings['a'], 1)\n\n    def test_add_settings_settings_None(self):\n        from pyramid.registry import Registry\n        from pyramid.interfaces import ISettings\n        reg = Registry()\n        config = self._makeOne(reg)\n        config.add_settings(None, a=1)\n        settings = reg.getUtility(ISettings)\n        self.assertEqual(settings['a'], 1)",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 14,
                            "end_lineno": 19,
                            "parent": {
                                "file_name": "pyramid/tests/test_config/test_settings.py",
                                "type": "class",
                                "name": "TestSettingsConfiguratorMixin",
                                "content": "class TestSettingsConfiguratorMixin(unittest.TestCase):\n    def _makeOne(self, *arg, **kw):\n        from pyramid.config import Configurator\n        config = Configurator(*arg, **kw)\n        return config\n\n    def test__set_settings_as_None(self):\n        config = self._makeOne()\n        settings = config._set_settings(None)\n        self.assertTrue(settings)\n\n    def test__set_settings_uses_original_dict(self):\n        config = self._makeOne()\n        dummy = {}\n        result = config._set_settings(dummy)\n        self.assertTrue(dummy is result)\n        self.assertEqual(dummy['pyramid.debug_all'], False)\n\n    def test__set_settings_as_dictwithvalues(self):\n        config = self._makeOne()\n        settings = config._set_settings({'a':'1'})\n        self.assertEqual(settings['a'], '1')\n\n    def test_get_settings_nosettings(self):\n        from pyramid.registry import Registry\n        reg = Registry()\n        config = self._makeOne(reg)\n        self.assertEqual(config.get_settings(), None)\n\n    def test_get_settings_withsettings(self):\n        settings = {'a':1}\n        config = self._makeOne()\n        config.registry.settings = settings\n        self.assertEqual(config.get_settings(), settings)\n\n    def test_add_settings_settings_already_registered(self):\n        from pyramid.registry import Registry\n        reg = Registry()\n        config = self._makeOne(reg)\n        config._set_settings({'a':1})\n        config.add_settings({'b':2})\n        settings = reg.settings\n        self.assertEqual(settings['a'], 1)\n        self.assertEqual(settings['b'], 2)\n\n    def test_add_settings_settings_not_yet_registered(self):\n        from pyramid.registry import Registry\n        from pyramid.interfaces import ISettings\n        reg = Registry()\n        config = self._makeOne(reg)\n        config.add_settings({'a':1})\n        settings = reg.getUtility(ISettings)\n        self.assertEqual(settings['a'], 1)\n\n    def test_add_settings_settings_None(self):\n        from pyramid.registry import Registry\n        from pyramid.interfaces import ISettings\n        reg = Registry()\n        config = self._makeOne(reg)\n        config.add_settings(None, a=1)\n        settings = reg.getUtility(ISettings)\n        self.assertEqual(settings['a'], 1)",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 3,
                                "end_lineno": 64,
                                "parent": null
                            }
                        }
                    ],
                    "deleted_entities": []
                },
                {
                    "descriptor": {
                        "old_range": {
                            "start": 537,
                            "length": 6
                        },
                        "new_range": {
                            "start": 544,
                            "length": 18
                        },
                        "section": "class TestSettings(unittest.TestCase):"
                    },
                    "line_group": {
                        "all_lines": [
                            {
                                "content": "        self.assertEqual(result['default_locale_name'], 'abc')",
                                "type": "context"
                            },
                            {
                                "content": "        self.assertEqual(result['pyramid.default_locale_name'], 'abc')",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            },
                            {
                                "content": "    def test_csrf_trusted_origins(self):",
                                "type": "added"
                            },
                            {
                                "content": "        result = self._makeOne({})",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(result['pyramid.csrf_trusted_origins'], [])",
                                "type": "added"
                            },
                            {
                                "content": "        result = self._makeOne({'pyramid.csrf_trusted_origins': 'example.com'})",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(result['pyramid.csrf_trusted_origins'], ['example.com'])",
                                "type": "added"
                            },
                            {
                                "content": "        result = self._makeOne({'pyramid.csrf_trusted_origins': ['example.com']})",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(result['pyramid.csrf_trusted_origins'], ['example.com'])",
                                "type": "added"
                            },
                            {
                                "content": "        result = self._makeOne({'pyramid.csrf_trusted_origins': (",
                                "type": "added"
                            },
                            {
                                "content": "            'example.com foo.example.com\\nasdf.example.com')})",
                                "type": "added"
                            },
                            {
                                "content": "        self.assertEqual(result['pyramid.csrf_trusted_origins'], [",
                                "type": "added"
                            },
                            {
                                "content": "            'example.com', 'foo.example.com', 'asdf.example.com'])",
                                "type": "added"
                            },
                            {
                                "content": "",
                                "type": "added"
                            },
                            {
                                "content": "    def test_originals_kept(self):",
                                "type": "context"
                            },
                            {
                                "content": "        result = self._makeOne({'a':'i am so a'})",
                                "type": "context"
                            },
                            {
                                "content": "        self.assertEqual(result['a'], 'i am so a')",
                                "type": "context"
                            },
                            {
                                "content": "",
                                "type": "context"
                            }
                        ]
                    },
                    "modified_entities": [
                        {
                            "file_name": "pyramid/tests/test_config/test_settings.py",
                            "type": "class",
                            "name": "TestSettings",
                            "content": "class TestSettings(unittest.TestCase):\n\n    def _getTargetClass(self):\n        from pyramid.config.settings import Settings\n        return Settings\n\n    def _makeOne(self, d=None, environ=None):\n        if environ is None:\n            environ = {}\n        klass = self._getTargetClass()\n        return klass(d, _environ_=environ)\n\n    def test_noargs(self):\n        settings = self._makeOne()\n        self.assertEqual(settings['debug_authorization'], False)\n        self.assertEqual(settings['debug_notfound'], False)\n        self.assertEqual(settings['debug_routematch'], False)\n        self.assertEqual(settings['reload_templates'], False)\n        self.assertEqual(settings['reload_resources'], False)\n\n        self.assertEqual(settings['pyramid.debug_authorization'], False)\n        self.assertEqual(settings['pyramid.debug_notfound'], False)\n        self.assertEqual(settings['pyramid.debug_routematch'], False)\n        self.assertEqual(settings['pyramid.reload_templates'], False)\n        self.assertEqual(settings['pyramid.reload_resources'], False)\n\n    def test_prevent_http_cache(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['prevent_http_cache'], False)\n        self.assertEqual(settings['pyramid.prevent_http_cache'], False)\n        result = self._makeOne({'prevent_http_cache':'false'})\n        self.assertEqual(result['prevent_http_cache'], False)\n        self.assertEqual(result['pyramid.prevent_http_cache'], False)\n        result = self._makeOne({'prevent_http_cache':'t'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'pyramid.prevent_http_cache':'t'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({}, {'PYRAMID_PREVENT_HTTP_CACHE':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'false',\n                                'pyramid.prevent_http_cache':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'false',\n                                'pyramid.prevent_http_cache':'f'},\n                               {'PYRAMID_PREVENT_HTTP_CACHE':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n\n    def test_prevent_cachebust(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['prevent_cachebust'], False)\n        self.assertEqual(settings['pyramid.prevent_cachebust'], False)\n        result = self._makeOne({'prevent_cachebust':'false'})\n        self.assertEqual(result['prevent_cachebust'], False)\n        self.assertEqual(result['pyramid.prevent_cachebust'], False)\n        result = self._makeOne({'prevent_cachebust':'t'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'pyramid.prevent_cachebust':'t'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({}, {'PYRAMID_PREVENT_CACHEBUST':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'false',\n                                'pyramid.prevent_cachebust':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'false',\n                                'pyramid.prevent_cachebust':'f'},\n                               {'PYRAMID_PREVENT_CACHEBUST':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n\n    def test_reload_templates(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['reload_templates'], False)\n        self.assertEqual(settings['pyramid.reload_templates'], False)\n        result = self._makeOne({'reload_templates':'false'})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        result = self._makeOne({'reload_templates':'t'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'pyramid.reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_TEMPLATES':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'false',\n                                'pyramid.reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'false'},\n                               {'PYRAMID_RELOAD_TEMPLATES':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n\n    def test_reload_resources(self):\n        # alias for reload_assets\n        result = self._makeOne({})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_resources':'false'})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_resources':'t'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'pyramid.reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_RESOURCES':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'false',\n                                'pyramid.reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'false',\n                                'pyramid.reload_resources':'false'},\n                               {'PYRAMID_RELOAD_RESOURCES':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n\n    def test_reload_assets(self):\n        # alias for reload_resources\n        result = self._makeOne({})\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        result = self._makeOne({'reload_assets':'false'})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        result = self._makeOne({'reload_assets':'t'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'pyramid.reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_ASSETS':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'false',\n                                'pyramid.reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'false',\n                                'pyramid.reload_assets':'false'},\n                               {'PYRAMID_RELOAD_ASSETS':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n\n    def test_reload_all(self):\n        result = self._makeOne({})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_all':'false'})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_all':'t'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'pyramid.reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_ALL':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'false',\n                                'pyramid.reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'false',\n                                'pyramid.reload_all':'false'},\n                               {'PYRAMID_RELOAD_ALL':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n\n    def test_debug_authorization(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        result = self._makeOne({'debug_authorization':'false'})\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        result = self._makeOne({'debug_authorization':'t'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'pyramid.debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_AUTHORIZATION':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'false',\n                                'pyramid.debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'false',\n                                'pyramid.debug_authorization':'false'},\n                               {'PYRAMID_DEBUG_AUTHORIZATION':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n\n    def test_debug_notfound(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        result = self._makeOne({'debug_notfound':'false'})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        result = self._makeOne({'debug_notfound':'t'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'pyramid.debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_NOTFOUND':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'false',\n                                'pyramid.debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'false',\n                                'pyramid.debug_notfound':'false'},\n                               {'PYRAMID_DEBUG_NOTFOUND':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n\n    def test_debug_routematch(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        result = self._makeOne({'debug_routematch':'false'})\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        result = self._makeOne({'debug_routematch':'t'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'pyramid.debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_ROUTEMATCH':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'false',\n                                'pyramid.debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'false',\n                                'pyramid.debug_routematch':'false'},\n                               {'PYRAMID_DEBUG_ROUTEMATCH':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n\n    def test_debug_templates(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_templates':'false'})\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_templates':'t'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'pyramid.debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_TEMPLATES':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'false',\n                                'pyramid.debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'false',\n                                'pyramid.debug_templates':'false'},\n                               {'PYRAMID_DEBUG_TEMPLATES':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n\n    def test_debug_all(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_all':'false'})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_all':'t'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'pyramid.debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_ALL':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'false',\n                                'pyramid.debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'false',\n                                'pyramid.debug_all':'false'},\n                               {'PYRAMID_DEBUG_ALL':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n\n    def test_default_locale_name(self):\n        result = self._makeOne({})\n        self.assertEqual(result['default_locale_name'], 'en')\n        self.assertEqual(result['pyramid.default_locale_name'], 'en')\n        result = self._makeOne({'default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'pyramid.default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({}, {'PYRAMID_DEFAULT_LOCALE_NAME':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'default_locale_name':'def',\n                                'pyramid.default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'default_locale_name':'def',\n                                'pyramid.default_locale_name':'ghi'},\n                               {'PYRAMID_DEFAULT_LOCALE_NAME':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n\n    def test_csrf_trusted_origins(self):\n        result = self._makeOne({})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], [])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': 'example.com'})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], ['example.com'])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': ['example.com']})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], ['example.com'])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': (\n            'example.com foo.example.com\\nasdf.example.com')})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], [\n            'example.com', 'foo.example.com', 'asdf.example.com'])\n\n    def test_originals_kept(self):\n        result = self._makeOne({'a':'i am so a'})\n        self.assertEqual(result['a'], 'i am so a')",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 66,
                            "end_lineno": 561,
                            "parent": null
                        }
                    ],
                    "added_entities": [
                        {
                            "file_name": "pyramid/tests/test_config/test_settings.py",
                            "type": "method",
                            "name": "TestSettings.test_csrf_trusted_origins",
                            "content": "class TestSettings(unittest.TestCase):\n\n    def _getTargetClass(self):\n        from pyramid.config.settings import Settings\n        return Settings\n\n    def _makeOne(self, d=None, environ=None):\n        if environ is None:\n            environ = {}\n        klass = self._getTargetClass()\n        return klass(d, _environ_=environ)\n\n    def test_noargs(self):\n        settings = self._makeOne()\n        self.assertEqual(settings['debug_authorization'], False)\n        self.assertEqual(settings['debug_notfound'], False)\n        self.assertEqual(settings['debug_routematch'], False)\n        self.assertEqual(settings['reload_templates'], False)\n        self.assertEqual(settings['reload_resources'], False)\n\n        self.assertEqual(settings['pyramid.debug_authorization'], False)\n        self.assertEqual(settings['pyramid.debug_notfound'], False)\n        self.assertEqual(settings['pyramid.debug_routematch'], False)\n        self.assertEqual(settings['pyramid.reload_templates'], False)\n        self.assertEqual(settings['pyramid.reload_resources'], False)\n\n    def test_prevent_http_cache(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['prevent_http_cache'], False)\n        self.assertEqual(settings['pyramid.prevent_http_cache'], False)\n        result = self._makeOne({'prevent_http_cache':'false'})\n        self.assertEqual(result['prevent_http_cache'], False)\n        self.assertEqual(result['pyramid.prevent_http_cache'], False)\n        result = self._makeOne({'prevent_http_cache':'t'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'pyramid.prevent_http_cache':'t'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({}, {'PYRAMID_PREVENT_HTTP_CACHE':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'false',\n                                'pyramid.prevent_http_cache':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'false',\n                                'pyramid.prevent_http_cache':'f'},\n                               {'PYRAMID_PREVENT_HTTP_CACHE':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n\n    def test_prevent_cachebust(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['prevent_cachebust'], False)\n        self.assertEqual(settings['pyramid.prevent_cachebust'], False)\n        result = self._makeOne({'prevent_cachebust':'false'})\n        self.assertEqual(result['prevent_cachebust'], False)\n        self.assertEqual(result['pyramid.prevent_cachebust'], False)\n        result = self._makeOne({'prevent_cachebust':'t'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'pyramid.prevent_cachebust':'t'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({}, {'PYRAMID_PREVENT_CACHEBUST':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'false',\n                                'pyramid.prevent_cachebust':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'false',\n                                'pyramid.prevent_cachebust':'f'},\n                               {'PYRAMID_PREVENT_CACHEBUST':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n\n    def test_reload_templates(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['reload_templates'], False)\n        self.assertEqual(settings['pyramid.reload_templates'], False)\n        result = self._makeOne({'reload_templates':'false'})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        result = self._makeOne({'reload_templates':'t'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'pyramid.reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_TEMPLATES':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'false',\n                                'pyramid.reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'false'},\n                               {'PYRAMID_RELOAD_TEMPLATES':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n\n    def test_reload_resources(self):\n        # alias for reload_assets\n        result = self._makeOne({})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_resources':'false'})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_resources':'t'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'pyramid.reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_RESOURCES':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'false',\n                                'pyramid.reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'false',\n                                'pyramid.reload_resources':'false'},\n                               {'PYRAMID_RELOAD_RESOURCES':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n\n    def test_reload_assets(self):\n        # alias for reload_resources\n        result = self._makeOne({})\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        result = self._makeOne({'reload_assets':'false'})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        result = self._makeOne({'reload_assets':'t'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'pyramid.reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_ASSETS':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'false',\n                                'pyramid.reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'false',\n                                'pyramid.reload_assets':'false'},\n                               {'PYRAMID_RELOAD_ASSETS':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n\n    def test_reload_all(self):\n        result = self._makeOne({})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_all':'false'})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_all':'t'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'pyramid.reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_ALL':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'false',\n                                'pyramid.reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'false',\n                                'pyramid.reload_all':'false'},\n                               {'PYRAMID_RELOAD_ALL':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n\n    def test_debug_authorization(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        result = self._makeOne({'debug_authorization':'false'})\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        result = self._makeOne({'debug_authorization':'t'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'pyramid.debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_AUTHORIZATION':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'false',\n                                'pyramid.debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'false',\n                                'pyramid.debug_authorization':'false'},\n                               {'PYRAMID_DEBUG_AUTHORIZATION':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n\n    def test_debug_notfound(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        result = self._makeOne({'debug_notfound':'false'})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        result = self._makeOne({'debug_notfound':'t'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'pyramid.debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_NOTFOUND':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'false',\n                                'pyramid.debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'false',\n                                'pyramid.debug_notfound':'false'},\n                               {'PYRAMID_DEBUG_NOTFOUND':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n\n    def test_debug_routematch(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        result = self._makeOne({'debug_routematch':'false'})\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        result = self._makeOne({'debug_routematch':'t'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'pyramid.debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_ROUTEMATCH':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'false',\n                                'pyramid.debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'false',\n                                'pyramid.debug_routematch':'false'},\n                               {'PYRAMID_DEBUG_ROUTEMATCH':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n\n    def test_debug_templates(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_templates':'false'})\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_templates':'t'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'pyramid.debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_TEMPLATES':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'false',\n                                'pyramid.debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'false',\n                                'pyramid.debug_templates':'false'},\n                               {'PYRAMID_DEBUG_TEMPLATES':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n\n    def test_debug_all(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_all':'false'})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_all':'t'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'pyramid.debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_ALL':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'false',\n                                'pyramid.debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'false',\n                                'pyramid.debug_all':'false'},\n                               {'PYRAMID_DEBUG_ALL':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n\n    def test_default_locale_name(self):\n        result = self._makeOne({})\n        self.assertEqual(result['default_locale_name'], 'en')\n        self.assertEqual(result['pyramid.default_locale_name'], 'en')\n        result = self._makeOne({'default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'pyramid.default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({}, {'PYRAMID_DEFAULT_LOCALE_NAME':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'default_locale_name':'def',\n                                'pyramid.default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'default_locale_name':'def',\n                                'pyramid.default_locale_name':'ghi'},\n                               {'PYRAMID_DEFAULT_LOCALE_NAME':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n\n    def test_csrf_trusted_origins(self):\n        result = self._makeOne({})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], [])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': 'example.com'})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], ['example.com'])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': ['example.com']})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], ['example.com'])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': (\n            'example.com foo.example.com\\nasdf.example.com')})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], [\n            'example.com', 'foo.example.com', 'asdf.example.com'])\n\n    def test_originals_kept(self):\n        result = self._makeOne({'a':'i am so a'})\n        self.assertEqual(result['a'], 'i am so a')",
                            "ast_type_str": "ClassDef",
                            "start_lineno": 547,
                            "end_lineno": 557,
                            "parent": {
                                "file_name": "pyramid/tests/test_config/test_settings.py",
                                "type": "class",
                                "name": "TestSettings",
                                "content": "class TestSettings(unittest.TestCase):\n\n    def _getTargetClass(self):\n        from pyramid.config.settings import Settings\n        return Settings\n\n    def _makeOne(self, d=None, environ=None):\n        if environ is None:\n            environ = {}\n        klass = self._getTargetClass()\n        return klass(d, _environ_=environ)\n\n    def test_noargs(self):\n        settings = self._makeOne()\n        self.assertEqual(settings['debug_authorization'], False)\n        self.assertEqual(settings['debug_notfound'], False)\n        self.assertEqual(settings['debug_routematch'], False)\n        self.assertEqual(settings['reload_templates'], False)\n        self.assertEqual(settings['reload_resources'], False)\n\n        self.assertEqual(settings['pyramid.debug_authorization'], False)\n        self.assertEqual(settings['pyramid.debug_notfound'], False)\n        self.assertEqual(settings['pyramid.debug_routematch'], False)\n        self.assertEqual(settings['pyramid.reload_templates'], False)\n        self.assertEqual(settings['pyramid.reload_resources'], False)\n\n    def test_prevent_http_cache(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['prevent_http_cache'], False)\n        self.assertEqual(settings['pyramid.prevent_http_cache'], False)\n        result = self._makeOne({'prevent_http_cache':'false'})\n        self.assertEqual(result['prevent_http_cache'], False)\n        self.assertEqual(result['pyramid.prevent_http_cache'], False)\n        result = self._makeOne({'prevent_http_cache':'t'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'pyramid.prevent_http_cache':'t'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({}, {'PYRAMID_PREVENT_HTTP_CACHE':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'false',\n                                'pyramid.prevent_http_cache':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'false',\n                                'pyramid.prevent_http_cache':'f'},\n                               {'PYRAMID_PREVENT_HTTP_CACHE':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n\n    def test_prevent_cachebust(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['prevent_cachebust'], False)\n        self.assertEqual(settings['pyramid.prevent_cachebust'], False)\n        result = self._makeOne({'prevent_cachebust':'false'})\n        self.assertEqual(result['prevent_cachebust'], False)\n        self.assertEqual(result['pyramid.prevent_cachebust'], False)\n        result = self._makeOne({'prevent_cachebust':'t'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'pyramid.prevent_cachebust':'t'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({}, {'PYRAMID_PREVENT_CACHEBUST':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'false',\n                                'pyramid.prevent_cachebust':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'false',\n                                'pyramid.prevent_cachebust':'f'},\n                               {'PYRAMID_PREVENT_CACHEBUST':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n\n    def test_reload_templates(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['reload_templates'], False)\n        self.assertEqual(settings['pyramid.reload_templates'], False)\n        result = self._makeOne({'reload_templates':'false'})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        result = self._makeOne({'reload_templates':'t'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'pyramid.reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_TEMPLATES':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'false',\n                                'pyramid.reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'false'},\n                               {'PYRAMID_RELOAD_TEMPLATES':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n\n    def test_reload_resources(self):\n        # alias for reload_assets\n        result = self._makeOne({})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_resources':'false'})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_resources':'t'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'pyramid.reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_RESOURCES':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'false',\n                                'pyramid.reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'false',\n                                'pyramid.reload_resources':'false'},\n                               {'PYRAMID_RELOAD_RESOURCES':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n\n    def test_reload_assets(self):\n        # alias for reload_resources\n        result = self._makeOne({})\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        result = self._makeOne({'reload_assets':'false'})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        result = self._makeOne({'reload_assets':'t'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'pyramid.reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_ASSETS':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'false',\n                                'pyramid.reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'false',\n                                'pyramid.reload_assets':'false'},\n                               {'PYRAMID_RELOAD_ASSETS':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n\n    def test_reload_all(self):\n        result = self._makeOne({})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_all':'false'})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_all':'t'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'pyramid.reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_ALL':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'false',\n                                'pyramid.reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'false',\n                                'pyramid.reload_all':'false'},\n                               {'PYRAMID_RELOAD_ALL':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n\n    def test_debug_authorization(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        result = self._makeOne({'debug_authorization':'false'})\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        result = self._makeOne({'debug_authorization':'t'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'pyramid.debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_AUTHORIZATION':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'false',\n                                'pyramid.debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'false',\n                                'pyramid.debug_authorization':'false'},\n                               {'PYRAMID_DEBUG_AUTHORIZATION':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n\n    def test_debug_notfound(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        result = self._makeOne({'debug_notfound':'false'})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        result = self._makeOne({'debug_notfound':'t'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'pyramid.debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_NOTFOUND':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'false',\n                                'pyramid.debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'false',\n                                'pyramid.debug_notfound':'false'},\n                               {'PYRAMID_DEBUG_NOTFOUND':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n\n    def test_debug_routematch(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        result = self._makeOne({'debug_routematch':'false'})\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        result = self._makeOne({'debug_routematch':'t'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'pyramid.debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_ROUTEMATCH':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'false',\n                                'pyramid.debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'false',\n                                'pyramid.debug_routematch':'false'},\n                               {'PYRAMID_DEBUG_ROUTEMATCH':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n\n    def test_debug_templates(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_templates':'false'})\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_templates':'t'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'pyramid.debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_TEMPLATES':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'false',\n                                'pyramid.debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'false',\n                                'pyramid.debug_templates':'false'},\n                               {'PYRAMID_DEBUG_TEMPLATES':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n\n    def test_debug_all(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_all':'false'})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_all':'t'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'pyramid.debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_ALL':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'false',\n                                'pyramid.debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'false',\n                                'pyramid.debug_all':'false'},\n                               {'PYRAMID_DEBUG_ALL':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n\n    def test_default_locale_name(self):\n        result = self._makeOne({})\n        self.assertEqual(result['default_locale_name'], 'en')\n        self.assertEqual(result['pyramid.default_locale_name'], 'en')\n        result = self._makeOne({'default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'pyramid.default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({}, {'PYRAMID_DEFAULT_LOCALE_NAME':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'default_locale_name':'def',\n                                'pyramid.default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'default_locale_name':'def',\n                                'pyramid.default_locale_name':'ghi'},\n                               {'PYRAMID_DEFAULT_LOCALE_NAME':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n\n    def test_csrf_trusted_origins(self):\n        result = self._makeOne({})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], [])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': 'example.com'})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], ['example.com'])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': ['example.com']})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], ['example.com'])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': (\n            'example.com foo.example.com\\nasdf.example.com')})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], [\n            'example.com', 'foo.example.com', 'asdf.example.com'])\n\n    def test_originals_kept(self):\n        result = self._makeOne({'a':'i am so a'})\n        self.assertEqual(result['a'], 'i am so a')",
                                "ast_type_str": "ClassDef",
                                "start_lineno": 66,
                                "end_lineno": 561,
                                "parent": null
                            }
                        }
                    ],
                    "deleted_entities": []
                }
            ]
        }
    ],
    "old_commit_hash": "7b58c0f003107aba5fde6cde57f13491d5248c76^",
    "new_commit_hash": "7b58c0f003107aba5fde6cde57f13491d5248c76",
    "commit_message": "update changelog for #2823",
    "commit_date": "2016-11-19T14:57:19-06:00",
    "metadata": {}
}
{
    "repo_name": "pyramid",
    "new_commit_hash": "7b58c0f003107aba5fde6cde57f13491d5248c76",
    "test_file_codes": [
        "import unittest\n\nclass TestSettingsConfiguratorMixin(unittest.TestCase):\n    def _makeOne(self, *arg, **kw):\n        from pyramid.config import Configurator\n        config = Configurator(*arg, **kw)\n        return config\n\n    def test__set_settings_as_None(self):\n        config = self._makeOne()\n        settings = config._set_settings(None)\n        self.assertTrue(settings)\n\n    def test__set_settings_uses_original_dict(self):\n        config = self._makeOne()\n        dummy = {}\n        result = config._set_settings(dummy)\n        self.assertTrue(dummy is result)\n        self.assertEqual(dummy['pyramid.debug_all'], False)\n\n    def test__set_settings_as_dictwithvalues(self):\n        config = self._makeOne()\n        settings = config._set_settings({'a':'1'})\n        self.assertEqual(settings['a'], '1')\n\n    def test_get_settings_nosettings(self):\n        from pyramid.registry import Registry\n        reg = Registry()\n        config = self._makeOne(reg)\n        self.assertEqual(config.get_settings(), None)\n\n    def test_get_settings_withsettings(self):\n        settings = {'a':1}\n        config = self._makeOne()\n        config.registry.settings = settings\n        self.assertEqual(config.get_settings(), settings)\n\n    def test_add_settings_settings_already_registered(self):\n        from pyramid.registry import Registry\n        reg = Registry()\n        config = self._makeOne(reg)\n        config._set_settings({'a':1})\n        config.add_settings({'b':2})\n        settings = reg.settings\n        self.assertEqual(settings['a'], 1)\n        self.assertEqual(settings['b'], 2)\n\n    def test_add_settings_settings_not_yet_registered(self):\n        from pyramid.registry import Registry\n        from pyramid.interfaces import ISettings\n        reg = Registry()\n        config = self._makeOne(reg)\n        config.add_settings({'a':1})\n        settings = reg.getUtility(ISettings)\n        self.assertEqual(settings['a'], 1)\n\n    def test_add_settings_settings_None(self):\n        from pyramid.registry import Registry\n        from pyramid.interfaces import ISettings\n        reg = Registry()\n        config = self._makeOne(reg)\n        config.add_settings(None, a=1)\n        settings = reg.getUtility(ISettings)\n        self.assertEqual(settings['a'], 1)\n\nclass TestSettings(unittest.TestCase):\n\n    def _getTargetClass(self):\n        from pyramid.config.settings import Settings\n        return Settings\n\n    def _makeOne(self, d=None, environ=None):\n        if environ is None:\n            environ = {}\n        klass = self._getTargetClass()\n        return klass(d, _environ_=environ)\n\n    def test_noargs(self):\n        settings = self._makeOne()\n        self.assertEqual(settings['debug_authorization'], False)\n        self.assertEqual(settings['debug_notfound'], False)\n        self.assertEqual(settings['debug_routematch'], False)\n        self.assertEqual(settings['reload_templates'], False)\n        self.assertEqual(settings['reload_resources'], False)\n\n        self.assertEqual(settings['pyramid.debug_authorization'], False)\n        self.assertEqual(settings['pyramid.debug_notfound'], False)\n        self.assertEqual(settings['pyramid.debug_routematch'], False)\n        self.assertEqual(settings['pyramid.reload_templates'], False)\n        self.assertEqual(settings['pyramid.reload_resources'], False)\n\n    def test_prevent_http_cache(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['prevent_http_cache'], False)\n        self.assertEqual(settings['pyramid.prevent_http_cache'], False)\n        result = self._makeOne({'prevent_http_cache':'false'})\n        self.assertEqual(result['prevent_http_cache'], False)\n        self.assertEqual(result['pyramid.prevent_http_cache'], False)\n        result = self._makeOne({'prevent_http_cache':'t'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'pyramid.prevent_http_cache':'t'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({}, {'PYRAMID_PREVENT_HTTP_CACHE':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'false',\n                                'pyramid.prevent_http_cache':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n        result = self._makeOne({'prevent_http_cache':'false',\n                                'pyramid.prevent_http_cache':'f'},\n                               {'PYRAMID_PREVENT_HTTP_CACHE':'1'})\n        self.assertEqual(result['prevent_http_cache'], True)\n        self.assertEqual(result['pyramid.prevent_http_cache'], True)\n\n    def test_prevent_cachebust(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['prevent_cachebust'], False)\n        self.assertEqual(settings['pyramid.prevent_cachebust'], False)\n        result = self._makeOne({'prevent_cachebust':'false'})\n        self.assertEqual(result['prevent_cachebust'], False)\n        self.assertEqual(result['pyramid.prevent_cachebust'], False)\n        result = self._makeOne({'prevent_cachebust':'t'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'pyramid.prevent_cachebust':'t'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({}, {'PYRAMID_PREVENT_CACHEBUST':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'false',\n                                'pyramid.prevent_cachebust':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n        result = self._makeOne({'prevent_cachebust':'false',\n                                'pyramid.prevent_cachebust':'f'},\n                               {'PYRAMID_PREVENT_CACHEBUST':'1'})\n        self.assertEqual(result['prevent_cachebust'], True)\n        self.assertEqual(result['pyramid.prevent_cachebust'], True)\n\n    def test_reload_templates(self):\n        settings = self._makeOne({})\n        self.assertEqual(settings['reload_templates'], False)\n        self.assertEqual(settings['pyramid.reload_templates'], False)\n        result = self._makeOne({'reload_templates':'false'})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        result = self._makeOne({'reload_templates':'t'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'pyramid.reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_TEMPLATES':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'false',\n                                'pyramid.reload_templates':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        result = self._makeOne({'reload_templates':'false'},\n                               {'PYRAMID_RELOAD_TEMPLATES':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n\n    def test_reload_resources(self):\n        # alias for reload_assets\n        result = self._makeOne({})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_resources':'false'})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_resources':'t'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'pyramid.reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_RESOURCES':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'false',\n                                'pyramid.reload_resources':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_resources':'false',\n                                'pyramid.reload_resources':'false'},\n                               {'PYRAMID_RELOAD_RESOURCES':'1'})\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n\n    def test_reload_assets(self):\n        # alias for reload_resources\n        result = self._makeOne({})\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        result = self._makeOne({'reload_assets':'false'})\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        result = self._makeOne({'reload_assets':'t'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'pyramid.reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_ASSETS':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'false',\n                                'pyramid.reload_assets':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        result = self._makeOne({'reload_assets':'false',\n                                'pyramid.reload_assets':'false'},\n                               {'PYRAMID_RELOAD_ASSETS':'1'})\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n\n    def test_reload_all(self):\n        result = self._makeOne({})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_all':'false'})\n        self.assertEqual(result['reload_templates'], False)\n        self.assertEqual(result['reload_resources'], False)\n        self.assertEqual(result['reload_assets'], False)\n        self.assertEqual(result['pyramid.reload_templates'], False)\n        self.assertEqual(result['pyramid.reload_resources'], False)\n        self.assertEqual(result['pyramid.reload_assets'], False)\n        result = self._makeOne({'reload_all':'t'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'pyramid.reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({}, {'PYRAMID_RELOAD_ALL':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'false',\n                                'pyramid.reload_all':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n        result = self._makeOne({'reload_all':'false',\n                                'pyramid.reload_all':'false'},\n                               {'PYRAMID_RELOAD_ALL':'1'})\n        self.assertEqual(result['reload_templates'], True)\n        self.assertEqual(result['reload_resources'], True)\n        self.assertEqual(result['reload_assets'], True)\n        self.assertEqual(result['pyramid.reload_templates'], True)\n        self.assertEqual(result['pyramid.reload_resources'], True)\n        self.assertEqual(result['pyramid.reload_assets'], True)\n\n    def test_debug_authorization(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        result = self._makeOne({'debug_authorization':'false'})\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        result = self._makeOne({'debug_authorization':'t'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'pyramid.debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_AUTHORIZATION':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'false',\n                                'pyramid.debug_authorization':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        result = self._makeOne({'debug_authorization':'false',\n                                'pyramid.debug_authorization':'false'},\n                               {'PYRAMID_DEBUG_AUTHORIZATION':'1'})\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n\n    def test_debug_notfound(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        result = self._makeOne({'debug_notfound':'false'})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        result = self._makeOne({'debug_notfound':'t'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'pyramid.debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_NOTFOUND':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'false',\n                                'pyramid.debug_notfound':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        result = self._makeOne({'debug_notfound':'false',\n                                'pyramid.debug_notfound':'false'},\n                               {'PYRAMID_DEBUG_NOTFOUND':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n\n    def test_debug_routematch(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        result = self._makeOne({'debug_routematch':'false'})\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        result = self._makeOne({'debug_routematch':'t'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'pyramid.debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_ROUTEMATCH':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'false',\n                                'pyramid.debug_routematch':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        result = self._makeOne({'debug_routematch':'false',\n                                'pyramid.debug_routematch':'false'},\n                               {'PYRAMID_DEBUG_ROUTEMATCH':'1'})\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n\n    def test_debug_templates(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_templates':'false'})\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_templates':'t'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'pyramid.debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_TEMPLATES':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'false',\n                                'pyramid.debug_templates':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_templates':'false',\n                                'pyramid.debug_templates':'false'},\n                               {'PYRAMID_DEBUG_TEMPLATES':'1'})\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n\n    def test_debug_all(self):\n        result = self._makeOne({})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_all':'false'})\n        self.assertEqual(result['debug_notfound'], False)\n        self.assertEqual(result['debug_routematch'], False)\n        self.assertEqual(result['debug_authorization'], False)\n        self.assertEqual(result['debug_templates'], False)\n        self.assertEqual(result['pyramid.debug_notfound'], False)\n        self.assertEqual(result['pyramid.debug_routematch'], False)\n        self.assertEqual(result['pyramid.debug_authorization'], False)\n        self.assertEqual(result['pyramid.debug_templates'], False)\n        result = self._makeOne({'debug_all':'t'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'pyramid.debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({}, {'PYRAMID_DEBUG_ALL':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'false',\n                                'pyramid.debug_all':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n        result = self._makeOne({'debug_all':'false',\n                                'pyramid.debug_all':'false'},\n                               {'PYRAMID_DEBUG_ALL':'1'})\n        self.assertEqual(result['debug_notfound'], True)\n        self.assertEqual(result['debug_routematch'], True)\n        self.assertEqual(result['debug_authorization'], True)\n        self.assertEqual(result['debug_templates'], True)\n        self.assertEqual(result['pyramid.debug_notfound'], True)\n        self.assertEqual(result['pyramid.debug_routematch'], True)\n        self.assertEqual(result['pyramid.debug_authorization'], True)\n        self.assertEqual(result['pyramid.debug_templates'], True)\n\n    def test_default_locale_name(self):\n        result = self._makeOne({})\n        self.assertEqual(result['default_locale_name'], 'en')\n        self.assertEqual(result['pyramid.default_locale_name'], 'en')\n        result = self._makeOne({'default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'pyramid.default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({}, {'PYRAMID_DEFAULT_LOCALE_NAME':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'default_locale_name':'def',\n                                'pyramid.default_locale_name':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n        result = self._makeOne({'default_locale_name':'def',\n                                'pyramid.default_locale_name':'ghi'},\n                               {'PYRAMID_DEFAULT_LOCALE_NAME':'abc'})\n        self.assertEqual(result['default_locale_name'], 'abc')\n        self.assertEqual(result['pyramid.default_locale_name'], 'abc')\n\n    def test_csrf_trusted_origins(self):\n        result = self._makeOne({})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], [])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': 'example.com'})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], ['example.com'])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': ['example.com']})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], ['example.com'])\n        result = self._makeOne({'pyramid.csrf_trusted_origins': (\n            'example.com foo.example.com\\nasdf.example.com')})\n        self.assertEqual(result['pyramid.csrf_trusted_origins'], [\n            'example.com', 'foo.example.com', 'asdf.example.com'])\n\n    def test_originals_kept(self):\n        result = self._makeOne({'a':'i am so a'})\n        self.assertEqual(result['a'], 'i am so a')\n\n\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 9 packages in 651ms\nPrepared 1 package in 882ms\nInstalled 9 packages in 15ms\n + pastedeploy==3.1.0\n + pyramid==1.8.dev0 (from file:///home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76)\n + repoze-lru==0.7\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 19 packages in 43ms\nInstalled 10 packages in 8ms\n + beautifulsoup4==4.12.3\n + coverage==7.6.1\n + distlib==0.3.9\n + filelock==3.16.1\n + nose==1.3.7\n + platformdirs==4.3.6\n + soupsieve==2.6\n + virtualenv==20.29.0\n + waitress==3.0.0\n + webtest==3.0.1\nResolved 16 packages in 10ms\nInstalled 12 packages in 10ms\n + cachetools==5.5.0\n + chardet==5.2.0\n + colorama==0.4.6\n + exceptiongroup==1.2.2\n + iniconfig==2.0.0\n + packaging==24.2\n + pluggy==1.5.0\n + pyproject-api==1.8.0\n + pytest==8.3.4\n + tomli==2.2.1\n + tox==4.23.2\n + typing-extensions==4.12.2\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_7b58c0f003107aba5fde6cde57f13491d5248c76\ncollected 923 items\n\nr2e_tests/test_1.py .......................                              [  2%]\nr2e_tests/test_config/test_adapters.py .FF..............F...             [  4%]\nr2e_tests/test_config/test_assets.py ....F.F...F...FF.FF................ [  8%]\n.....................................F.F................................ [ 16%]\n                                                                         [ 16%]\nr2e_tests/test_config/test_factories.py .....................            [ 18%]\nr2e_tests/test_config/test_i18n.py FFF.FF...                             [ 19%]\nr2e_tests/test_config/test_init.py ..................................... [ 23%]\n...F..F.......F.............F...........F.....................FF...FFF.. [ 31%]\n............................                                             [ 34%]\nr2e_tests/test_config/test_predicates.py ............................... [ 37%]\n...........................................                              [ 42%]\nr2e_tests/test_config/test_rendering.py ...                              [ 42%]\nr2e_tests/test_config/test_routes.py ........................            [ 45%]\nr2e_tests/test_config/test_security.py ............                      [ 46%]\nr2e_tests/test_config/test_settings.py .......................           [ 49%]\nr2e_tests/test_config/test_testing.py ............                       [ 50%]\nr2e_tests/test_config/test_tweens.py .................................   [ 54%]\nr2e_tests/test_config/test_util.py ..................................... [ 58%]\n..............                                                           [ 59%]\nr2e_tests/test_config/test_views.py .................................F.. [ 63%]\n........................................................................ [ 71%]\n.......................FF............................................... [ 79%]\n.......................................................F.......F         [ 86%]\nr2e_tests/test_scripts/test_common.py ..                                 [ 86%]\nr2e_tests/test_scripts/test_pcreate.py .....................             [ 88%]\nr2e_tests/test_scripts/test_pdistreport.py ..                            [ 88%]\nr2e_tests/test_scripts/test_prequest.py ...................              [ 90%]\nr2e_tests/test_scripts/test_proutes.py ...........FFFF.F.FF....F..FF.    [ 94%]\nr2e_tests/test_scripts/test_pserve.py ...........                        [ 95%]\nr2e_tests/test_scripts/test_pshell.py ................                   [ 96%]\nr2e_tests/test_scripts/test_ptweens.py .....                             [ 97%]\nr2e_tests/test_scripts/test_pviews.py ................F......            [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        config = self._makeOne(autocommit=True)\n        config.add_resource_url_adapter(\n            'pyramid.tests.test_config.test_adapters.DummyResourceURL',\n            'pyramid.tests.test_config.test_adapters.DummyIface',\n            )\n        iface = DummyIface()\n>       adapter = config.registry.getMultiAdapter((iface, iface),\n                                                    IResourceURL)\n\nr2e_tests/test_config/test_adapters.py:280: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <Registry r2e_tests.test_config>\nobjects = (<r2e_tests.test_config.test_adapters.DummyIface object at 0x7d545364be50>, <r2e_tests.test_config.test_adapters.DummyIface object at 0x7d545364be50>)\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 0x7d545364be50>, <r2e_tests.test_config.test_adapters.DummyIface object at 0x7d545364be50>), <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(intr.discriminator,\n                         ('resource url adapter', DummyIface))\n        self.assertEqual(intr.category_name, 'resource url adapters')\n>       self.assertEqual(\n            intr.title,\n            \"resource url adapter for resource iface \"\n            \"<class 'pyramid.tests.test_config.test_adapters.DummyIface'>\"\n            )\nE       AssertionError: \"reso[34 chars]e <class 'r2e_tests.test_config.test_adapters.DummyIface'>\" != \"reso[34 chars]e <class 'pyramid.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 'pyramid.tests.test_config.test_adapters.DummyIface'>\nE       ?                                                 ++ ^^^^^\n\nr2e_tests/test_config/test_adapters.py:326: 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        config = self._makeOne(autocommit=True)\n        config.add_traverser(\n            'pyramid.tests.test_config.test_adapters.DummyTraverser',\n            'pyramid.tests.test_config.test_adapters.DummyIface')\n        iface = DummyIface()\n>       traverser = config.registry.getAdapter(iface, ITraverser)\n\nr2e_tests/test_config/test_adapters.py:237: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <Registry r2e_tests.test_config>\nobject = <r2e_tests.test_config.test_adapters.DummyIface object at 0x7d545382d070>\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 0x7d545382d070>, <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        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'pyramid.tests.test_config.pkgs.asset:templates/',\n            'pyramid.tests.test_config.pkgs.asset.subpackage:templates/',\n            _override=override)\n        from pyramid.tests.test_config.pkgs import asset\n        from pyramid.tests.test_config.pkgs.asset import subpackage\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(here, 'pkgs', 'asset',\n                                'subpackage', 'templates', 'bar.pt')\n>       self.assertEqual(override.source.get_filename(resource_name),\n                         expected)\nE       AssertionError: '/hom[90 chars]8c76/pyramid/tests/test_config/pkgs/asset/subp[19 chars]r.pt' != '/hom[90 chars]8c76/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:106: 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        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'pyramid.tests.test_config.pkgs.asset:templates/',\n            'pyramid.tests.test_config.pkgs.asset.subpackage',\n            _override=override)\n        from pyramid.tests.test_config.pkgs import asset\n        from pyramid.tests.test_config.pkgs.asset import subpackage\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(here, 'pkgs', 'asset',\n                                'subpackage', 'templates', 'bar.pt')\n>       self.assertEqual(override.source.get_filename(resource_name),\n                         expected)\nE       AssertionError: '/hom[90 chars]8c76/pyramid/tests/test_config/pkgs/asset/subp[19 chars]r.pt' != '/hom[90 chars]8c76/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:129: 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        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'pyramid.tests.test_config.pkgs.asset:templates/foo.pt',\n            'pyramid.tests.test_config.pkgs.asset.subpackage:templates/bar.pt',\n            _override=override)\n        from pyramid.tests.test_config.pkgs import asset\n        from pyramid.tests.test_config.pkgs.asset import subpackage\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(here, 'pkgs', 'asset',\n                                'subpackage', 'templates', 'bar.pt')\n>       self.assertEqual(override.source.get_filename(resource_name),\n                         expected)\nE       AssertionError: '/hom[90 chars]8c76/pyramid/tests/test_config/pkgs/asset/subp[19 chars]r.pt' != '/hom[90 chars]8c76/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:60: 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        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'pyramid.tests.test_config.pkgs.asset',\n            'pyramid.tests.test_config.pkgs.asset.subpackage:templates/',\n            _override=override)\n        from pyramid.tests.test_config.pkgs import asset\n        from pyramid.tests.test_config.pkgs.asset import subpackage\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(here, 'pkgs', 'asset',\n                                'subpackage', 'templates', 'bar.pt')\n>       self.assertEqual(override.source.get_filename(resource_name),\n                         expected)\nE       AssertionError: '/hom[90 chars]8c76/pyramid/tests/test_config/pkgs/asset/subp[19 chars]r.pt' != '/hom[90 chars]8c76/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:152: 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        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'pyramid.tests.test_config.pkgs.asset',\n            'pyramid.tests.test_config.pkgs.asset.subpackage',\n            _override=override)\n        from pyramid.tests.test_config.pkgs import asset\n        from pyramid.tests.test_config.pkgs.asset import subpackage\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(here, 'pkgs', 'asset',\n                                'subpackage', 'templates', 'bar.pt')\n>       self.assertEqual(override.source.get_filename(resource_name),\n                         expected)\nE       AssertionError: '/hom[90 chars]8c76/pyramid/tests/test_config/pkgs/asset/subp[19 chars]r.pt' != '/hom[90 chars]8c76/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:83: 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 pyramid.tests.test_config\n        provider = self._makeOne(pyramid.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[73 chars]e6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py' != '/hom[73 chars]e6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:297: 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 pyramid.tests.test_config\n        provider = self._makeOne(pyramid.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[73 chars]e6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py' != '/hom[73 chars]e6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:345: 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(source.get_filename('test_assets.py'),\n                         os.path.join(here, 'test_assets.py'))\nE       AssertionError: '/hom[73 chars]e6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py' != '/hom[73 chars]e6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:716: 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(source.get_filename(''),\n                         os.path.join(here, 'test_assets.py'))\nE       AssertionError: '/hom[73 chars]e6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py' != '/hom[73 chars]e6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:721: 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        config = self._makeOne(autocommit=True)\n>       config.add_translation_dirs(locale)\n\nr2e_tests/test_config/test_i18n.py:86: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \npyramid/util.py:574: in wrapper\n    result = wrapped(self, *arg, **kw)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <pyramid.config.Configurator object at 0x7d5453dd99d0>\nspecs = ('/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale',)\nintrospectables = []\nspec = '/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale'\npackage_name = None\n\n    @action_method\n    def add_translation_dirs(self, *specs):\n        \"\"\" Add one or more :term:`translation directory` paths to the\n        current configuration state.  The ``specs`` argument is a\n        sequence that may contain absolute directory paths\n        (e.g. ``/usr/share/locale``) or :term:`asset specification`\n        names naming a directory path (e.g. ``some.package:locale``)\n        or a combination of the two.\n    \n        Example:\n    \n        .. code-block:: python\n    \n           config.add_translation_dirs('/usr/share/locale',\n                                       'some.package:locale')\n    \n        Later calls to ``add_translation_dir`` insert directories into the\n        beginning of the list of translation directories created by earlier\n        calls.  This means that the same translation found in a directory\n        added later in the configuration process will be found before one\n        added earlier in the configuration process.  However, if multiple\n        specs are provided in a single call to ``add_translation_dirs``, the\n        directories will be inserted into the beginning of the directory list\n        in the order they're provided in the ``*specs`` list argument (items\n        earlier in the list trump ones later in the list).\n        \"\"\"\n        directories = []\n        introspectables = []\n    \n        for spec in specs[::-1]: # reversed\n            package_name, filename = self._split_spec(spec)\n            if package_name is None: # absolute filename\n                directory = filename\n            else:\n                __import__(package_name)\n                package = sys.modules[package_name]\n                directory = os.path.join(package_path(package), filename)\n    \n            if not os.path.isdir(os.path.realpath(directory)):\n>               raise ConfigurationError('\"%s\" is not a directory' %\n                                         directory)\nE               pyramid.exceptions.ConfigurationError: \"/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale\" is not a directory\n\npyramid/config/i18n.py:86: 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        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale')\n>       self.assertEqual(config.registry.getUtility(ITranslationDirectories),\n                         [locale])\nE       AssertionError: Lists differ: ['/ho[70 chars]a5fde6cde57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale'] != ['/ho[70 chars]a5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale']\nE       \nE       First differing element 0:\nE       '/hom[68 chars]ba5fde6cde57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale'\nE       '/hom[68 chars]ba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale'\nE       \nE       - ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale']\nE       ?                                                                                                      -- ^^^^^\nE       \nE       + ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale']\nE       ?                                                                                                       ^^^\n\nr2e_tests/test_config/test_i18n.py:54: 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        config = self._makeOne(autocommit=True)\n        directories = ['abc']\n        config.registry.registerUtility(directories, ITranslationDirectories)\n        config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale')\n        result = config.registry.getUtility(ITranslationDirectories)\n>       self.assertEqual(result, [locale, 'abc'])\nE       AssertionError: Lists differ: ['/ho[77 chars]de57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale', 'abc'] != ['/ho[77 chars]de57f13491d5248c76/r2e_tests/pkgs/localeapp/locale', 'abc']\nE       \nE       First differing element 0:\nE       '/hom[68 chars]ba5fde6cde57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale'\nE       '/hom[68 chars]ba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale'\nE       \nE       - ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale',\nE       ?                                                                                                      -- ^^^^^\nE       \nE       + ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale',\nE       ?                                                                                                       ^^^\nE       \nE          'abc']\n\nr2e_tests/test_config/test_i18n.py:64: 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        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale',\n                                    'pyramid.tests.pkgs.localeapp:locale2')\n>       self.assertEqual(config.registry.getUtility(ITranslationDirectories),\n                         [locale, locale2])\nE       AssertionError: Lists differ: ['/ho[91 chars]8c76/pyramid/tests/pkgs/localeapp/locale', '/h[130 chars]le2'] != ['/ho[91 chars]8c76/r2e_tests/pkgs/localeapp/locale', '/home/[122 chars]le2']\nE       \nE       First differing element 0:\nE       '/hom[68 chars]ba5fde6cde57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale'\nE       '/hom[68 chars]ba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale'\nE       \nE       Diff is 1002 characters long. Set self.maxDiff to None to see it.\n\nr2e_tests/test_config/test_i18n.py:71: 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        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale',\n                                    'pyramid.tests.pkgs.localeapp:locale2')\n        config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale3')\n>       self.assertEqual(config.registry.getUtility(ITranslationDirectories),\n                         [locale3, locale, locale2])\nE       AssertionError: Lists differ: ['/ho[91 chars]8c76/pyramid/tests/pkgs/localeapp/locale3', '/[269 chars]le2'] != ['/ho[91 chars]8c76/r2e_tests/pkgs/localeapp/locale3', '/home[257 chars]le2']\nE       \nE       First differing element 0:\nE       '/hom[69 chars]a5fde6cde57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale3'\nE       '/hom[69 chars]a5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale3'\nE       \nE       Diff is 1504 characters long. Set self.maxDiff to None to see it.\n\nr2e_tests/test_config/test_i18n.py:80: 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        from pyramid.interfaces import ISettings\n        from pyramid.config import Configurator\n        from pyramid.interfaces import IRendererFactory\n        config = Configurator()\n        this_pkg = sys.modules['pyramid.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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_init.py:68: 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        config = self._makeOne()\n        logger = config.registry.getUtility(IDebugLogger)\n>       self.assertEqual(logger.name, 'pyramid.tests.test_config')\nE       AssertionError: 'r2e_tests.test_config' != 'pyramid.tests.test_config'\nE       - r2e_tests.test_config\nE       ?  ^^^\nE       + pyramid.tests.test_config\nE       ? ++ ^^^^^\n\nr2e_tests/test_config/test_init.py:124: 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        from pyramid import tests\n        from pyramid.tests import test_config\n        config = self._makeOne(root_package=tests)\n        results = {}\n        def include(config):\n            results['package'] = config.package\n            results['root_package'] = config.root_package\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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_init.py:777: AssertionError\n_______________ ConfiguratorTests.test_scan_integration_conflict _______________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_scan_integration_conflict>\n\n    def test_scan_integration_conflict(self):\n        from pyramid.tests.test_config.pkgs import selfscan\n        from pyramid.config import Configurator\n        c = Configurator()\n        c.scan(selfscan)\n        c.scan(selfscan)\n        try:\n>           c.commit()\n\nr2e_tests/test_config/test_init.py:1039: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \npyramid/config/__init__.py:654: in commit\n    self.action_state.execute_actions(introspector=self.introspector)\npyramid/config/__init__.py:1130: in execute_actions\n    action = next(action_iter, None)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nactions = [{'args': (), 'callable': <function ViewsConfiguratorMixin.add_view.<locals>.register at 0x7d5453859b80>, 'discriminat...545361c4c0>, 'discriminator': ('view', None, 'two', None, 'd41d8cd98f00b204e9800998ecf8427e'), 'includepath': (), ...}]\nstate = <pyramid.config.ConflictResolverState object at 0x7d545460bc70>\n\n    def resolveConflicts(actions, state=None):\n        \"\"\"Resolve conflicting actions\n    \n        Given an actions list, identify and try to resolve conflicting actions.\n        Actions conflict if they have the same non-None discriminator.\n    \n        Conflicting actions can be resolved if the include path of one of\n        the actions is a prefix of the includepaths of the other\n        conflicting actions and is unequal to the include paths in the\n        other conflicting actions.\n    \n        Actions are resolved on a per-order basis because some discriminators\n        cannot be computed until earlier actions have executed. An action in an\n        earlier order may execute successfully only to find out later that it was\n        overridden by another action with a smaller include path. This will result\n        in a conflict as there is no way to revert the original action.\n    \n        ``state`` may be an instance of ``ConflictResolverState`` that\n        can be used to resume execution and resolve the new actions against the\n        list of executed actions from a previous call.\n    \n        \"\"\"\n        if state is None:\n            state = ConflictResolverState()\n    \n        # pick up where we left off last time, but track the new actions as well\n        state.remaining_actions.extend(normalize_actions(actions))\n        actions = state.remaining_actions\n    \n        def orderandpos(v):\n            n, v = v\n            return (v['order'] or 0, n)\n    \n        def orderonly(v):\n            n, v = v\n            return v['order'] or 0\n    \n        sactions = sorted(enumerate(actions, start=state.start), key=orderandpos)\n        for order, actiongroup in itertools.groupby(sactions, orderonly):\n            # \"order\" is an integer grouping. Actions in a lower order will be\n            # executed before actions in a higher order.  All of the actions in\n            # one grouping will be executed (its callable, if any will be called)\n            # before any of the actions in the next.\n            output = []\n            unique = {}\n    \n            # error out if we went backward in order\n            if state.min_order is not None and order < state.min_order:\n                r = ['Actions were added to order={0} after execution had moved '\n                     'on to order={1}. Conflicting actions: '\n                     .format(order, state.min_order)]\n                for i, action in actiongroup:\n                    for line in str(action['info']).rstrip().split('\\n'):\n                        r.append(\"  \" + line)\n                raise ConfigurationError('\\n'.join(r))\n    \n            for i, action in actiongroup:\n                # Within an order, actions are executed sequentially based on\n                # original action ordering (\"i\").\n    \n                # \"ainfo\" is a tuple of (i, action) where \"i\" is an integer\n                # expressing the relative position of this action in the action\n                # list being resolved, and \"action\" is an action dictionary.  The\n                # purpose of an ainfo is to associate an \"i\" with a particular\n                # action; \"i\" exists for sorting after conflict resolution.\n                ainfo = (i, action)\n    \n                # wait to defer discriminators until we are on their order because\n                # the discriminator may depend on state from a previous order\n                discriminator = undefer(action['discriminator'])\n                action['discriminator'] = discriminator\n    \n                if discriminator is None:\n                    # The discriminator is None, so this action can never conflict.\n                    # We can add it directly to the result.\n                    output.append(ainfo)\n                    continue\n    \n                L = unique.setdefault(discriminator, [])\n                L.append(ainfo)\n    \n            # Check for conflicts\n            conflicts = {}\n            for discriminator, ainfos in unique.items():\n                # We use (includepath, i) as a sort key because we need to\n                # sort the actions by the paths so that the shortest path with a\n                # given prefix comes first.  The \"first\" action is the one with the\n                # shortest include path.  We break sorting ties using \"i\".\n                def bypath(ainfo):\n                    path, i = ainfo[1]['includepath'], ainfo[0]\n                    return path, order, i\n    \n                ainfos.sort(key=bypath)\n                ainfo, rest = ainfos[0], ainfos[1:]\n                _, action = ainfo\n    \n                # ensure this new action does not conflict with a previously\n                # resolved action from an earlier order / invocation\n                prev_ainfo = state.resolved_ainfos.get(discriminator)\n                if prev_ainfo is not None:\n                    _, paction = prev_ainfo\n                    basepath, baseinfo = paction['includepath'], paction['info']\n                    includepath = action['includepath']\n                    # if the new action conflicts with the resolved action then\n                    # note the conflict, otherwise drop the action as it's\n                    # effectively overriden by the previous action\n                    if (includepath[:len(basepath)] != basepath or\n                            includepath == basepath):\n                        L = conflicts.setdefault(discriminator, [baseinfo])\n                        L.append(action['info'])\n    \n                else:\n                    output.append(ainfo)\n    \n                basepath, baseinfo = action['includepath'], action['info']\n                for _, action in rest:\n                    includepath = action['includepath']\n                    # Test whether path is a prefix of opath\n                    if (includepath[:len(basepath)] != basepath or  # not a prefix\n                            includepath == basepath):\n                        L = conflicts.setdefault(discriminator, [baseinfo])\n                        L.append(action['info'])\n    \n            if conflicts:\n>               raise ConfigurationConflictError(conflicts)\nE               pyramid.exceptions.ConfigurationConflictError: Conflicting configuration actions\nE                 For: ('view', None, '', None, 'd41d8cd98f00b204e9800998ecf8427e')\nE                   Line 4 of file /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/selfscan/__init__.py:\nE                       def abc(request):\nE                   Line 4 of file /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/selfscan/__init__.py:\nE                       def abc(request):\nE                 For: ('view', None, 'two', None, 'd41d8cd98f00b204e9800998ecf8427e')\nE                   Line 4 of file /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/selfscan/another.py:\nE                       def two(request):\nE                   Line 4 of file /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/selfscan/another.py:\nE                       def two(request):\n\npyramid/config/__init__.py:1312: ConfigurationConflictError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_scan_integration_conflict>\n\n    def test_scan_integration_conflict(self):\n        from pyramid.tests.test_config.pkgs import selfscan\n        from pyramid.config import Configurator\n        c = Configurator()\n        c.scan(selfscan)\n        c.scan(selfscan)\n        try:\n            c.commit()\n        except ConfigurationConflictError as why:\n            def scanconflicts(e):\n                conflicts = e._conflicts.values()\n                for conflict in conflicts:\n                    for confinst in conflict:\n                        yield confinst.src\n            which = list(scanconflicts(why))\n            self.assertEqual(len(which), 4)\n>           self.assertTrue(\"@view_config(renderer='string')\" in which)\nE           AssertionError: False is not true\n\nr2e_tests/test_config/test_init.py:1048: 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.registry import Registry\n        from pyramid.interfaces import IDebugLogger\n        reg = Registry()\n        config = self._makeOne(reg)\n        config.setup_registry()\n        logger = reg.getUtility(IDebugLogger)\n>       self.assertEqual(logger.name, 'pyramid.tests.test_config')\nE       AssertionError: 'r2e_tests.test_config' != 'pyramid.tests.test_config'\nE       - r2e_tests.test_config\nE       ?  ^^^\nE       + pyramid.tests.test_config\nE       ? ++ ^^^^^\n\nr2e_tests/test_config/test_init.py:444: 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 pyramid.tests import test_config\n        config = self.config\n        config.add_directive(\n                'dummy_callable', 'pyramid.tests.test_config.dummy_callable')\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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_init.py:1247: 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 pyramid.tests import test_config\n        config = self.config\n        config.add_directive(\n                'dummy_partial', 'pyramid.tests.test_config.dummy_partial')\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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_init.py:1234: 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 pyramid.tests import test_config\n        config = self.config\n        config.add_directive(\n            'dummy_extend', 'pyramid.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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_init.py:1221: 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 pyramid.tests import test_config\n        config = self.config\n        config.add_directive(\n            '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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_init.py:1260: 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(discriminator, callable=None, args=(),\n                        kw=None, order=0, introspectables=(), **extra):\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',\n            'testing',\n            'pyramid.tests.test_config.test_init.DummyPredicate'\n            )\n\nr2e_tests/test_config/test_init.py:1324: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \npyramid/config/__init__.py:543: in _add_predicate\n    self.action(discriminator, register, introspectables=(intr,),\nr2e_tests/test_config/test_init.py:1321: in _fakeAction\n    self.assertEqual(introspectables[0]['factory'], DummyPredicate)\nE   AssertionError: <class 'pyramid.tests.test_config.test_init.DummyPredicate'> != <class 'r2e_tests.test_config.test_init.DummyPredicate'>\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        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,\n            [(config, 'static', 'pyramid.tests.test_config:files', {})])\nE       AssertionError: Lists differ: [(<py[39 chars]d54535525b0>, 'static', 'r2e_tests.test_config:files', {})] != [(<py[39 chars]d54535525b0>, 'static', 'pyramid.tests.test_config:files', {})]\nE       \nE       First differing element 0:\nE       (<pyr[37 chars]7d54535525b0>, 'static', 'r2e_tests.test_config:files', {})\nE       (<pyr[37 chars]7d54535525b0>, 'static', 'pyramid.tests.test_config:files', {})\nE       \nE         [(<pyramid.config.Configurator object at 0x7d54535525b0>,\nE           'static',\nE       -   'r2e_tests.test_config:files',\nE       ?     ^^^\nE       \nE       +   'pyramid.tests.test_config:files',\nE       ?    ++ ^^^^^\nE       \nE           {})]\n\nr2e_tests/test_config/test_views.py:2065: AssertionError\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.tests import test_config\n        from pyramid.interfaces import ISettings\n        class view(object):\n            def __init__(self, context, request):\n                self.request = request\n                self.context = context\n    \n            def __call__(self):\n                return {'a':'1'}\n        config = self._makeOne(autocommit=True)\n        renderer = self._registerRenderer(config)\n        fixture = 'pyramid.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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_views.py:1186: 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.tests import test_config\n        from pyramid.interfaces import ISettings\n        config = self._makeOne(autocommit=True)\n        renderer = self._registerRenderer(config)\n        fixture = 'pyramid.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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_views.py:1227: AssertionError\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                'pyramid.tests.test_config:path/',\n                'pyramid.tests.test_config:other_path/')\n            def cb(val):\n                def cb_(request, subpath, kw):\n                    kw['_query'] = {'x': val}\n                    return subpath, kw\n                return cb_\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:3213: 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(): pass\n        result = self._callFUT(view)\n>       self.assertEqual(result,\n                         'function pyramid.tests.test_config.test_views.view')\nE       AssertionError: 'function r2e_tests.test_config.test_views.view' != 'function pyramid.tests.test_config.test_views.view'\nE       - function r2e_tests.test_config.test_views.view\nE       ?           ^^^\nE       + function pyramid.tests.test_config.test_views.view\nE       ?          ++ ^^^^^\n\nr2e_tests/test_config/test_views.py:3384: 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): 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='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', '/a/b',\n            'pyramid.tests.test_scripts.test_proutes.view1', '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', 'pyramid.tests.test_scripts.test_proutes.view1', 'POST']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', 'POST']\nE       ?                  ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:337: 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): 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        )\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', '/a/b',\n            'pyramid.tests.test_scripts.test_proutes.view1', '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', 'pyramid.tests.test_scripts.test_proutes.view1', 'POST']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', 'POST']\nE       ?                  ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:364: 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): 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', '/a/b',\n            'pyramid.tests.test_scripts.test_proutes.view1', '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', 'pyramid.tests.test_scripts.test_proutes.view1', 'POST']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', 'POST']\nE       ?                  ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:392: 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        from pyramid.interfaces import IRouteRequest\n        from pyramid.interfaces import IViewClassifier\n        from pyramid.interfaces import IView\n        registry = self._makeRegistry()\n    \n        def view():pass\n    \n        class IMyRoute(Interface):\n            pass\n    \n        registry.registerAdapter(\n            view,\n            (IViewClassifier, IMyRoute, Interface),\n            IView, ''\n        )\n    \n        registry.registerUtility(IMyRoute, IRouteRequest,\n                                 name='very_long_name_123')\n    \n        command = self._makeOne()\n        route = dummy.DummyRoute(\n            'very_long_name_123',\n            '/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            ['very_long_name_123',\n             '/and_very_long_pattern_as_well',\n             'pyramid.tests.test_scripts.test_proutes.view']\n        )\nE       AssertionError: Lists differ: ['ver[36 chars]ttern_as_well', 'r2e_tests.test_scripts.test_proutes.view'] != ['ver[36 chars]ttern_as_well', 'pyramid.tests.test_scripts.test_proutes.view']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view'\nE       'pyramid.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       +  'pyramid.tests.test_scripts.test_proutes.view']\nE       ?   ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:196: 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.renderers import null_renderer as nr\n        from pyramid.config import not_\n    \n        def view1(context, request): 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', '/a/b',\n            'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', 'GET']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', 'GET']\nE       ?                  ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:532: 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): 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='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', '/a/b',\n            'pyramid.tests.test_scripts.test_proutes.view1',\n            '<route', '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', 'pyramid.tests.test_scripts.test_proutes.v[24 chars]ch>']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'pyramid.tests.test_scripts.test_proutes.view1'\nE       \nE         ['foo',\nE          '/a/b',\nE       -  'r2e_tests.test_scripts.test_proutes.view1',\nE       ?    ^^^\nE       \nE       +  'pyramid.tests.test_scripts.test_proutes.view1',\nE       ?   ++ ^^^^^\nE       \nE          '<route',\nE          'mismatch>']\n\nr2e_tests/test_scripts/test_proutes.py:421: 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        from pyramid.renderers import null_renderer as nr\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            ['__static/', '/static/*subpath',\n             'pyramid.tests.test_scripts:static/', '*'],\n            ['__static2/', '/static2/*subpath', path2 + os.sep, '*'],\n            ['__pyramid_scaffold/', '/pyramid_scaffold/*subpath',\n             'pyramid:scaffolds/starter/+package+/static/',  '*'],\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', 'pyramid.tests.test_scripts:static/', '*']\nE           \nE           First differing element 2:\nE           'r2e_tests.test_scripts:static/'\nE           'pyramid.tests.test_scripts:static/'\nE           \nE           - ['__static/', '/static/*subpath', 'r2e_tests.test_scripts:static/', '*']\nE           ?                                     ^^^\nE           \nE           + ['__static/', '/static/*subpath', 'pyramid.tests.test_scripts:static/', '*']\nE           ?                                    ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:452: 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        from pyramid.interfaces import IRouteRequest\n        from pyramid.interfaces import IViewClassifier\n        from pyramid.interfaces import IView\n        registry = self._makeRegistry()\n    \n        def view():pass\n        class IMyRoute(Interface):\n            pass\n        registry.registerAdapter(view,\n                                 (IViewClassifier, IMyRoute, Interface),\n                                 IView, '')\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,\n            ['a', '/a', 'pyramid.tests.test_scripts.test_proutes.view']\n        )\nE       AssertionError: Lists differ: ['a', '/a', 'r2e_tests.test_scripts.test_proutes.view'] != ['a', '/a', 'pyramid.tests.test_scripts.test_proutes.view']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view'\nE       'pyramid.tests.test_scripts.test_proutes.view'\nE       \nE       - ['a', '/a', 'r2e_tests.test_scripts.test_proutes.view']\nE       ?               ^^^\nE       \nE       + ['a', '/a', 'pyramid.tests.test_scripts.test_proutes.view']\nE       ?              ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:156: 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.renderers import null_renderer as nr\n        from pyramid.config import not_\n    \n        def view1(context, request): return 'view1'\n        def view2(context, request): 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.options.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', '/a/b',\n            'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', '!POST,*']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', '!POST,*']\nE       ?                  ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:603: 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.renderers import null_renderer as nr\n        from pyramid.config import not_\n    \n        def view1(context, request): 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', '/a/b',\n            'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', '!POST,*']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', '!POST,*']\nE       ?                  ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:562: 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        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n        def view(): pass\n        view.__request_attrs__ = {'context': 'context', 'view_name': 'a'}\n        command._find_view = lambda arg1: view\n        command.args = ('/foo/bar/myapp.ini#myapp', '/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],\n                         '    pyramid.tests.test_scripts.test_pviews.view')\nE       AssertionError: '    r2e_tests.test_scripts.test_pviews.view' != '    pyramid.tests.test_scripts.test_pviews.view'\nE       -     r2e_tests.test_scripts.test_pviews.view\nE       ?      ^^^\nE       +     pyramid.tests.test_scripts.test_pviews.view\nE       ?     ++ ^^^^^\n\nr2e_tests/test_scripts/test_pviews.py:296: AssertionError\n==================================== PASSES ====================================\n=========================== short test summary info ============================\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test__set_settings_as_None\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test__set_settings_as_dictwithvalues\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test__set_settings_uses_original_dict\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test_add_settings_settings_None\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test_add_settings_settings_already_registered\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test_add_settings_settings_not_yet_registered\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test_get_settings_nosettings\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test_get_settings_withsettings\nPASSED r2e_tests/test_1.py::TestSettings::test_csrf_trusted_origins\nPASSED r2e_tests/test_1.py::TestSettings::test_debug_all\nPASSED r2e_tests/test_1.py::TestSettings::test_debug_authorization\nPASSED r2e_tests/test_1.py::TestSettings::test_debug_notfound\nPASSED r2e_tests/test_1.py::TestSettings::test_debug_routematch\nPASSED r2e_tests/test_1.py::TestSettings::test_debug_templates\nPASSED r2e_tests/test_1.py::TestSettings::test_default_locale_name\nPASSED r2e_tests/test_1.py::TestSettings::test_noargs\nPASSED r2e_tests/test_1.py::TestSettings::test_originals_kept\nPASSED r2e_tests/test_1.py::TestSettings::test_prevent_cachebust\nPASSED r2e_tests/test_1.py::TestSettings::test_prevent_http_cache\nPASSED r2e_tests/test_1.py::TestSettings::test_reload_all\nPASSED r2e_tests/test_1.py::TestSettings::test_reload_assets\nPASSED r2e_tests/test_1.py::TestSettings::test_reload_resources\nPASSED r2e_tests/test_1.py::TestSettings::test_reload_templates\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_type_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_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_request_factory_dottedname\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_response_factory\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_response_factory_dottedname\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_root_factory_dottedname\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_session_factory\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_session_factory_dottedname\nPASSED r2e_tests/test_config/test_factories.py::TestDeprecatedFactoriesMixinMethods::test_set_multiple_request_properties\nPASSED r2e_tests/test_config/test_factories.py::TestDeprecatedFactoriesMixinMethods::test_set_multiple_request_properties_conflict\nPASSED r2e_tests/test_config/test_factories.py::TestDeprecatedFactoriesMixinMethods::test_set_request_property_with_callable\nPASSED r2e_tests/test_config/test_factories.py::TestDeprecatedFactoriesMixinMethods::test_set_request_property_with_property\nPASSED r2e_tests/test_config/test_factories.py::TestDeprecatedFactoriesMixinMethods::test_set_request_property_with_unnamed_callable\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_i18n.py::TestI18NConfiguratorMixin::test_set_locale_negotiator_dottedname\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_action_autocommit_with_introspectables\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_action_autocommit_with_introspectables_introspection_off\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_action_branching_kw_is_None\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_action_branching_kw_is_not_None\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_action_branching_nonautocommit_with_config_info\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_action_branching_nonautocommit_with_introspectables\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_action_branching_nonautocommit_without_config_info\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_action_nonautocommit_with_introspectables_introspection_off\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_autocommit_no_conflicts\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_begin\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_begin_with_request\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_commit_conflict_resolved_with_include\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_commit_conflict_resolved_with_two_includes_and_local\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_commit_conflict_simple\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_commit_conflict_with_two_includes\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_conflict_set_forbidden_view\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_conflict_set_notfound_view\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_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_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_python_callable\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_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_setup_registry_tweens\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_module\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::TestActionState::test_action_simple\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_action_with_includepath\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_action_with_includepath_and_info\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_action_with_info\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_action_with_introspectables\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_action_with_order\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_execute_actions_dicts\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_execute_actions_error\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_execute_actions_tuples\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_execute_actions_with_introspectable_no_callable\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_execute_actions_with_introspectables\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_executing_conflicting_action_across_orders\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_executing_conflicting_action_across_reentrant_orders\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_it\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_processSpec\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_reentrant_action\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_reentrant_action_error\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_reentrant_action_with_deferred_discriminator\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_reentrant_action_without_clear\nPASSED r2e_tests/test_config/test_init.py::Test_reentrant_action_functional::test_deferred_discriminator\nPASSED r2e_tests/test_config/test_init.py::Test_reentrant_action_functional::test_functional\nPASSED r2e_tests/test_config/test_init.py::Test_resolveConflicts::test_conflicts_across_orders\nPASSED r2e_tests/test_config/test_init.py::Test_resolveConflicts::test_it_conflict\nPASSED r2e_tests/test_config/test_init.py::Test_resolveConflicts::test_it_success_dicts\nPASSED r2e_tests/test_config/test_init.py::Test_resolveConflicts::test_it_success_tuples\nPASSED r2e_tests/test_config/test_init.py::Test_resolveConflicts::test_it_with_actions_grouped_by_order\nPASSED r2e_tests/test_config/test_init.py::Test_resolveConflicts::test_override_success_across_orders\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::TestXHRPredicate::test___call___false\nPASSED r2e_tests/test_config/test_predicates.py::TestXHRPredicate::test___call___true\nPASSED r2e_tests/test_config/test_predicates.py::TestXHRPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::TestXHRPredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestMethodPredicate::test___call___false\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestMethodPredicate::test___call___true_multi\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestMethodPredicate::test___call___true_single\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestMethodPredicate::test_ctor_get_but_no_head\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestMethodPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestMethodPredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::TestPathInfoPredicate::test___call___false\nPASSED r2e_tests/test_config/test_predicates.py::TestPathInfoPredicate::test___call___true\nPASSED r2e_tests/test_config/test_predicates.py::TestPathInfoPredicate::test_ctor_compilefail\nPASSED r2e_tests/test_config/test_predicates.py::TestPathInfoPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::TestPathInfoPredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test___call___false\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test___call___false_multi\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test___call___true_exists\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test___call___true_multi\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test___call___true_withval\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_phash_exists\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_phash_exists_equal_sign\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_phash_withval\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_text_exists\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_text_exists_equal_sign\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_text_multi\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_text_multi_equal_sign\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_text_withval\nPASSED r2e_tests/test_config/test_predicates.py::TestMatchParamPredicate::test___call___false\nPASSED r2e_tests/test_config/test_predicates.py::TestMatchParamPredicate::test___call___matchdict_is_None\nPASSED r2e_tests/test_config/test_predicates.py::TestMatchParamPredicate::test___call___true_multi\nPASSED r2e_tests/test_config/test_predicates.py::TestMatchParamPredicate::test___call___true_single\nPASSED r2e_tests/test_config/test_predicates.py::TestMatchParamPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::TestMatchParamPredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::TestCustomPredicate::test___call___false\nPASSED r2e_tests/test_config/test_predicates.py::TestCustomPredicate::test___call___true\nPASSED r2e_tests/test_config/test_predicates.py::TestCustomPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::TestCustomPredicate::test_text_func_has___text__\nPASSED r2e_tests/test_config/test_predicates.py::TestCustomPredicate::test_text_func_repr\nPASSED r2e_tests/test_config/test_predicates.py::TestTraversePredicate::test___call__traverse_has_remainder_already\nPASSED r2e_tests/test_config/test_predicates.py::TestTraversePredicate::test___call__traverse_matches\nPASSED r2e_tests/test_config/test_predicates.py::TestTraversePredicate::test___call__traverse_matches_with_highorder_chars\nPASSED r2e_tests/test_config/test_predicates.py::TestTraversePredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::TestTraversePredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::Test_CheckCSRFTokenPredicate::test_it_call_val_False\nPASSED r2e_tests/test_config/test_predicates.py::Test_CheckCSRFTokenPredicate::test_it_call_val_True\nPASSED r2e_tests/test_config/test_predicates.py::Test_CheckCSRFTokenPredicate::test_it_call_val_str\nPASSED r2e_tests/test_config/test_predicates.py::Test_CheckCSRFTokenPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::Test_CheckCSRFTokenPredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test___call___false\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test___call___false_withregex\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test___call___true_exists\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test___call___true_withregex\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test___call___true_withval\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test_phash_exists\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test_phash_withregex\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test_phash_withval\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test_text_exists\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test_text_withregex\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test_text_withval\nPASSED r2e_tests/test_config/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_False\nPASSED r2e_tests/test_config/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_context_has_no_name\nPASSED r2e_tests/test_config/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_val_list_True\nPASSED r2e_tests/test_config/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_val_str_True\nPASSED r2e_tests/test_config/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_val_tuple_True\nPASSED r2e_tests/test_config/test_predicates.py::Test_PhysicalPathPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::Test_PhysicalPathPredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_authentication_policy_doesnt_provide_superset\nPASSED r2e_tests/test_config/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_authentication_policy_provides_superset\nPASSED r2e_tests/test_config/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_authentication_policy_provides_superset_implicit\nPASSED r2e_tests/test_config/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_no_authentication_policy\nPASSED r2e_tests/test_config/test_predicates.py::Test_EffectivePrincipalsPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::Test_EffectivePrincipalsPredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::Test_EffectivePrincipalsPredicate::test_text_noniter\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_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_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_factory_dottedname\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_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_route_prefix\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_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_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_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_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::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_dottedname\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_dottedname\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_distinct\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::TestTweensConfiguratorMixin::test_add_tweens_names_with_underover\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_util.py::TestPredicateList::test_custom_predicates_can_affect_traversal\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_different_custom_predicates_with_same_hash\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_match_param_from_dict\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_match_param_from_dict_fails\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_match_param_from_string\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_match_param_from_string_fails\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_notted\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_ordering_importance_and_number\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_ordering_importance_of_predicates\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_ordering_number_of_predicates\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_ordering_xhr_and_request_method_trump_only_containment\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_predicate_text_is_correct\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_request_method_ordering_hashes_same\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_request_method_sequence\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_traverse_has_remainder_already\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_traverse_matches\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_traverse_matches_with_highorder_chars\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_unknown_predicate\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_annotations\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_defaultargs_firstname_not_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_defaultargs_firstname_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_noargs\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_onearg_named_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_onearg_named_somethingelse\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_toomanyargs\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_with_attr_false\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_with_attr_true\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_instance_defaultargs_firstname_not_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_instance_defaultargs_firstname_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_instance_defaultargs_onearg_named_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_instance_defaultargs_onearg_named_somethingelse\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_instance_nocall\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_instance_toomanyargs\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_method_onearg_named_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_newstyle_class_init_defaultargs_firstname_not_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_newstyle_class_init_defaultargs_firstname_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_newstyle_class_init_firstname_request_with_secondname\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_newstyle_class_init_noargs\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_newstyle_class_init_onearg_named_somethingelse\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_defaultargs_firstname_not_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_defaultargs_firstname_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_noargs\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_onearg_named_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_onearg_named_somethingelse\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_toomanyargs\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_oldstyle_class_no_init\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_requestonly_newstyle_class_init_onearg_named_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_requestonly_newstyle_class_init_toomanyargs\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_requestonly_newstyle_class_no_init\nPASSED r2e_tests/test_config/test_util.py::TestNotted::test_it_with_phash_val\nPASSED r2e_tests/test_config/test_util.py::TestNotted::test_it_without_phash_val\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_exception_view_with_view_defaults\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_forbidden_view_with_view_defaults\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_notfound_view_with_view_defaults\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_dottedname\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_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_dottedname\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_check_csrf_predicates_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_containment_dottedname\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_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_view_defaults\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_defaults_viewname_is_dottedname_kwarg\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_defaults_viewname_is_dottedname_nonkwarg\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_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_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_pcreate.py::TestPCreateCommand::test_confirm_override_conflicting_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_force_override_conflicting_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_force_override_site_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_known_scaffold_absolute_path\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_known_scaffold_multiple_rendered\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_known_scaffold_single_rendered\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_known_scaffold_with_path_as_project_target_rendered\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_no_project_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_run_no_scaffold_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_run_no_scaffold_no_args\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_run_show_scaffolds_exist\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_run_show_scaffolds_none_exist\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_scaffold_with_dev_pyramid_long_version\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_scaffold_with_dev_pyramid_version\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_scaffold_with_hyphen_in_project_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_scaffold_with_package_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_scaffold_with_prod_pyramid_long_version\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_scaffold_with_prod_pyramid_unparsable_version\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_scaffold_with_prod_pyramid_version\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_unknown_scaffold_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::Test_main::test_it\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_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_class_view\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_multiview_registered\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_get_options_no_command\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_run_no_args\nPASSED r2e_tests/test_scripts/test_pserve.py::Test_main::test_it\nPASSED r2e_tests/test_scripts/test_pserve.py::TestLazyWriter::test_flush\nPASSED r2e_tests/test_scripts/test_pserve.py::TestLazyWriter::test_open\nPASSED r2e_tests/test_scripts/test_pserve.py::TestLazyWriter::test_write\nPASSED r2e_tests/test_scripts/test_pserve.py::TestLazyWriter::test_writeline\nPASSED r2e_tests/test_scripts/test_pserve.py::Test__methodwrapper::test___call__fail\nPASSED r2e_tests/test_scripts/test_pserve.py::Test__methodwrapper::test___call__succeed\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_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_multi_view_nested\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview_with_permission\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview_with_predicates\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::TestPViewsCommand::test_views_command_single_view_route\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_route_with_route_predicates\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal_with_permission\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal_with_predicates\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_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_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_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_scan_integration_conflict\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_debug_logger_None_default\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_views.py::TestViewsConfigurationMixin::test_add_static_view_package_here_relative\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::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_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_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_pviews.py::TestPViewsCommand::test_views_command_single_view_function_traversal\n======================== 43 failed, 880 passed in 5.46s ========================\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_7b58c0f003107aba5fde6cde57f13491d5248c76\ncollected 923 items\n\nr2e_tests/test_1.py ..F....................                              [  2%]\nr2e_tests/test_config/test_adapters.py .FF..............F...             [  4%]\nr2e_tests/test_config/test_assets.py ....F.F...F...FF.FF................ [  8%]\n.....................................F.F................................ [ 16%]\n                                                                         [ 16%]\nr2e_tests/test_config/test_factories.py .....................            [ 18%]\nr2e_tests/test_config/test_i18n.py FFF.FF...                             [ 19%]\nr2e_tests/test_config/test_init.py ..................................... [ 23%]\n...F..F.......F.............F...........F.....................FF...FFF.. [ 31%]\n............................                                             [ 34%]\nr2e_tests/test_config/test_predicates.py ............................... [ 37%]\n...........................................                              [ 42%]\nr2e_tests/test_config/test_rendering.py ...                              [ 42%]\nr2e_tests/test_config/test_routes.py ........................            [ 45%]\nr2e_tests/test_config/test_security.py ............                      [ 46%]\nr2e_tests/test_config/test_settings.py ..F....................           [ 49%]\nr2e_tests/test_config/test_testing.py ............                       [ 50%]\nr2e_tests/test_config/test_tweens.py .................................   [ 54%]\nr2e_tests/test_config/test_util.py ..................................... [ 58%]\n..............                                                           [ 59%]\nr2e_tests/test_config/test_views.py .................................F.. [ 63%]\n........................................................................ [ 71%]\n.......................FF............................................... [ 79%]\n.......................................................F.......F         [ 86%]\nr2e_tests/test_scripts/test_common.py ..                                 [ 86%]\nr2e_tests/test_scripts/test_pcreate.py .....................             [ 88%]\nr2e_tests/test_scripts/test_pdistreport.py ..                            [ 88%]\nr2e_tests/test_scripts/test_prequest.py ...................              [ 90%]\nr2e_tests/test_scripts/test_proutes.py ...........FFFF.F.FF....F..FF.    [ 94%]\nr2e_tests/test_scripts/test_pserve.py ...........                        [ 95%]\nr2e_tests/test_scripts/test_pshell.py ................                   [ 96%]\nr2e_tests/test_scripts/test_ptweens.py .....                             [ 97%]\nr2e_tests/test_scripts/test_pviews.py ................F......            [100%]\n\n=================================== FAILURES ===================================\n_____ TestSettingsConfiguratorMixin.test__set_settings_uses_original_dict ______\n\nself = <r2e_tests.test_1.TestSettingsConfiguratorMixin testMethod=test__set_settings_uses_original_dict>\n\n    def test__set_settings_uses_original_dict(self):\n        config = self._makeOne()\n        dummy = {}\n        result = config._set_settings(dummy)\n>       self.assertTrue(dummy is result)\nE       AssertionError: False is not true\n\nr2e_tests/test_1.py:18: 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        config = self._makeOne(autocommit=True)\n        config.add_resource_url_adapter(\n            'pyramid.tests.test_config.test_adapters.DummyResourceURL',\n            'pyramid.tests.test_config.test_adapters.DummyIface',\n            )\n        iface = DummyIface()\n>       adapter = config.registry.getMultiAdapter((iface, iface),\n                                                    IResourceURL)\n\nr2e_tests/test_config/test_adapters.py:280: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <Registry r2e_tests.test_config>\nobjects = (<r2e_tests.test_config.test_adapters.DummyIface object at 0x7a76509753d0>, <r2e_tests.test_config.test_adapters.DummyIface object at 0x7a76509753d0>)\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 0x7a76509753d0>, <r2e_tests.test_config.test_adapters.DummyIface object at 0x7a76509753d0>), <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(intr.discriminator,\n                         ('resource url adapter', DummyIface))\n        self.assertEqual(intr.category_name, 'resource url adapters')\n>       self.assertEqual(\n            intr.title,\n            \"resource url adapter for resource iface \"\n            \"<class 'pyramid.tests.test_config.test_adapters.DummyIface'>\"\n            )\nE       AssertionError: \"reso[34 chars]e <class 'r2e_tests.test_config.test_adapters.DummyIface'>\" != \"reso[34 chars]e <class 'pyramid.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 'pyramid.tests.test_config.test_adapters.DummyIface'>\nE       ?                                                 ++ ^^^^^\n\nr2e_tests/test_config/test_adapters.py:326: 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        config = self._makeOne(autocommit=True)\n        config.add_traverser(\n            'pyramid.tests.test_config.test_adapters.DummyTraverser',\n            'pyramid.tests.test_config.test_adapters.DummyIface')\n        iface = DummyIface()\n>       traverser = config.registry.getAdapter(iface, ITraverser)\n\nr2e_tests/test_config/test_adapters.py:237: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <Registry r2e_tests.test_config>\nobject = <r2e_tests.test_config.test_adapters.DummyIface object at 0x7a76506f0bb0>\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 0x7a76506f0bb0>, <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        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'pyramid.tests.test_config.pkgs.asset:templates/',\n            'pyramid.tests.test_config.pkgs.asset.subpackage:templates/',\n            _override=override)\n        from pyramid.tests.test_config.pkgs import asset\n        from pyramid.tests.test_config.pkgs.asset import subpackage\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(here, 'pkgs', 'asset',\n                                'subpackage', 'templates', 'bar.pt')\n>       self.assertEqual(override.source.get_filename(resource_name),\n                         expected)\nE       AssertionError: '/hom[90 chars]8c76/pyramid/tests/test_config/pkgs/asset/subp[19 chars]r.pt' != '/hom[90 chars]8c76/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:106: 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        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'pyramid.tests.test_config.pkgs.asset:templates/',\n            'pyramid.tests.test_config.pkgs.asset.subpackage',\n            _override=override)\n        from pyramid.tests.test_config.pkgs import asset\n        from pyramid.tests.test_config.pkgs.asset import subpackage\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(here, 'pkgs', 'asset',\n                                'subpackage', 'templates', 'bar.pt')\n>       self.assertEqual(override.source.get_filename(resource_name),\n                         expected)\nE       AssertionError: '/hom[90 chars]8c76/pyramid/tests/test_config/pkgs/asset/subp[19 chars]r.pt' != '/hom[90 chars]8c76/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:129: 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        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'pyramid.tests.test_config.pkgs.asset:templates/foo.pt',\n            'pyramid.tests.test_config.pkgs.asset.subpackage:templates/bar.pt',\n            _override=override)\n        from pyramid.tests.test_config.pkgs import asset\n        from pyramid.tests.test_config.pkgs.asset import subpackage\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(here, 'pkgs', 'asset',\n                                'subpackage', 'templates', 'bar.pt')\n>       self.assertEqual(override.source.get_filename(resource_name),\n                         expected)\nE       AssertionError: '/hom[90 chars]8c76/pyramid/tests/test_config/pkgs/asset/subp[19 chars]r.pt' != '/hom[90 chars]8c76/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:60: 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        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'pyramid.tests.test_config.pkgs.asset',\n            'pyramid.tests.test_config.pkgs.asset.subpackage:templates/',\n            _override=override)\n        from pyramid.tests.test_config.pkgs import asset\n        from pyramid.tests.test_config.pkgs.asset import subpackage\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(here, 'pkgs', 'asset',\n                                'subpackage', 'templates', 'bar.pt')\n>       self.assertEqual(override.source.get_filename(resource_name),\n                         expected)\nE       AssertionError: '/hom[90 chars]8c76/pyramid/tests/test_config/pkgs/asset/subp[19 chars]r.pt' != '/hom[90 chars]8c76/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:152: 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        config = self._makeOne(autocommit=True)\n        override = DummyUnderOverride()\n        config.override_asset(\n            'pyramid.tests.test_config.pkgs.asset',\n            'pyramid.tests.test_config.pkgs.asset.subpackage',\n            _override=override)\n        from pyramid.tests.test_config.pkgs import asset\n        from pyramid.tests.test_config.pkgs.asset import subpackage\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(here, 'pkgs', 'asset',\n                                'subpackage', 'templates', 'bar.pt')\n>       self.assertEqual(override.source.get_filename(resource_name),\n                         expected)\nE       AssertionError: '/hom[90 chars]8c76/pyramid/tests/test_config/pkgs/asset/subp[19 chars]r.pt' != '/hom[90 chars]8c76/r2e_tests/test_config/pkgs/asset/subpacka[15 chars]r.pt'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/pkgs/asset/subpackage/templates/bar.pt\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:83: 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 pyramid.tests.test_config\n        provider = self._makeOne(pyramid.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[73 chars]e6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py' != '/hom[73 chars]e6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:297: 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 pyramid.tests.test_config\n        provider = self._makeOne(pyramid.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[73 chars]e6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py' != '/hom[73 chars]e6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:345: 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(source.get_filename('test_assets.py'),\n                         os.path.join(here, 'test_assets.py'))\nE       AssertionError: '/hom[73 chars]e6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py' != '/hom[73 chars]e6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:716: 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(source.get_filename(''),\n                         os.path.join(here, 'test_assets.py'))\nE       AssertionError: '/hom[73 chars]e6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py' != '/hom[73 chars]e6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py'\nE       - /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/test_assets.py\nE       ?                                                                                                    -- ^^^^^\nE       + /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/test_config/test_assets.py\nE       ?                                                                                                     ^^^\n\nr2e_tests/test_config/test_assets.py:721: 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        config = self._makeOne(autocommit=True)\n>       config.add_translation_dirs(locale)\n\nr2e_tests/test_config/test_i18n.py:86: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \npyramid/util.py:574: in wrapper\n    result = wrapped(self, *arg, **kw)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <pyramid.config.Configurator object at 0x7a7650b16a90>\nspecs = ('/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale',)\nintrospectables = []\nspec = '/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale'\npackage_name = None\n\n    @action_method\n    def add_translation_dirs(self, *specs):\n        \"\"\" Add one or more :term:`translation directory` paths to the\n        current configuration state.  The ``specs`` argument is a\n        sequence that may contain absolute directory paths\n        (e.g. ``/usr/share/locale``) or :term:`asset specification`\n        names naming a directory path (e.g. ``some.package:locale``)\n        or a combination of the two.\n    \n        Example:\n    \n        .. code-block:: python\n    \n           config.add_translation_dirs('/usr/share/locale',\n                                       'some.package:locale')\n    \n        Later calls to ``add_translation_dir`` insert directories into the\n        beginning of the list of translation directories created by earlier\n        calls.  This means that the same translation found in a directory\n        added later in the configuration process will be found before one\n        added earlier in the configuration process.  However, if multiple\n        specs are provided in a single call to ``add_translation_dirs``, the\n        directories will be inserted into the beginning of the directory list\n        in the order they're provided in the ``*specs`` list argument (items\n        earlier in the list trump ones later in the list).\n        \"\"\"\n        directories = []\n        introspectables = []\n    \n        for spec in specs[::-1]: # reversed\n            package_name, filename = self._split_spec(spec)\n            if package_name is None: # absolute filename\n                directory = filename\n            else:\n                __import__(package_name)\n                package = sys.modules[package_name]\n                directory = os.path.join(package_path(package), filename)\n    \n            if not os.path.isdir(os.path.realpath(directory)):\n>               raise ConfigurationError('\"%s\" is not a directory' %\n                                         directory)\nE               pyramid.exceptions.ConfigurationError: \"/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale\" is not a directory\n\npyramid/config/i18n.py:86: 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        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale')\n>       self.assertEqual(config.registry.getUtility(ITranslationDirectories),\n                         [locale])\nE       AssertionError: Lists differ: ['/ho[70 chars]a5fde6cde57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale'] != ['/ho[70 chars]a5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale']\nE       \nE       First differing element 0:\nE       '/hom[68 chars]ba5fde6cde57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale'\nE       '/hom[68 chars]ba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale'\nE       \nE       - ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale']\nE       ?                                                                                                      -- ^^^^^\nE       \nE       + ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale']\nE       ?                                                                                                       ^^^\n\nr2e_tests/test_config/test_i18n.py:54: 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        config = self._makeOne(autocommit=True)\n        directories = ['abc']\n        config.registry.registerUtility(directories, ITranslationDirectories)\n        config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale')\n        result = config.registry.getUtility(ITranslationDirectories)\n>       self.assertEqual(result, [locale, 'abc'])\nE       AssertionError: Lists differ: ['/ho[77 chars]de57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale', 'abc'] != ['/ho[77 chars]de57f13491d5248c76/r2e_tests/pkgs/localeapp/locale', 'abc']\nE       \nE       First differing element 0:\nE       '/hom[68 chars]ba5fde6cde57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale'\nE       '/hom[68 chars]ba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale'\nE       \nE       - ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale',\nE       ?                                                                                                      -- ^^^^^\nE       \nE       + ['/home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale',\nE       ?                                                                                                       ^^^\nE       \nE          'abc']\n\nr2e_tests/test_config/test_i18n.py:64: 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        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale',\n                                    'pyramid.tests.pkgs.localeapp:locale2')\n>       self.assertEqual(config.registry.getUtility(ITranslationDirectories),\n                         [locale, locale2])\nE       AssertionError: Lists differ: ['/ho[91 chars]8c76/pyramid/tests/pkgs/localeapp/locale', '/h[130 chars]le2'] != ['/ho[91 chars]8c76/r2e_tests/pkgs/localeapp/locale', '/home/[122 chars]le2']\nE       \nE       First differing element 0:\nE       '/hom[68 chars]ba5fde6cde57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale'\nE       '/hom[68 chars]ba5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale'\nE       \nE       Diff is 1002 characters long. Set self.maxDiff to None to see it.\n\nr2e_tests/test_config/test_i18n.py:71: 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        config = self._makeOne(autocommit=True)\n        config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale',\n                                    'pyramid.tests.pkgs.localeapp:locale2')\n        config.add_translation_dirs('pyramid.tests.pkgs.localeapp:locale3')\n>       self.assertEqual(config.registry.getUtility(ITranslationDirectories),\n                         [locale3, locale, locale2])\nE       AssertionError: Lists differ: ['/ho[91 chars]8c76/pyramid/tests/pkgs/localeapp/locale3', '/[269 chars]le2'] != ['/ho[91 chars]8c76/r2e_tests/pkgs/localeapp/locale3', '/home[257 chars]le2']\nE       \nE       First differing element 0:\nE       '/hom[69 chars]a5fde6cde57f13491d5248c76/pyramid/tests/pkgs/localeapp/locale3'\nE       '/hom[69 chars]a5fde6cde57f13491d5248c76/r2e_tests/pkgs/localeapp/locale3'\nE       \nE       Diff is 1504 characters long. Set self.maxDiff to None to see it.\n\nr2e_tests/test_config/test_i18n.py:80: 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        from pyramid.interfaces import ISettings\n        from pyramid.config import Configurator\n        from pyramid.interfaces import IRendererFactory\n        config = Configurator()\n        this_pkg = sys.modules['pyramid.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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_init.py:68: 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        config = self._makeOne()\n        logger = config.registry.getUtility(IDebugLogger)\n>       self.assertEqual(logger.name, 'pyramid.tests.test_config')\nE       AssertionError: 'r2e_tests.test_config' != 'pyramid.tests.test_config'\nE       - r2e_tests.test_config\nE       ?  ^^^\nE       + pyramid.tests.test_config\nE       ? ++ ^^^^^\n\nr2e_tests/test_config/test_init.py:124: 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        from pyramid import tests\n        from pyramid.tests import test_config\n        config = self._makeOne(root_package=tests)\n        results = {}\n        def include(config):\n            results['package'] = config.package\n            results['root_package'] = config.root_package\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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_init.py:777: AssertionError\n_______________ ConfiguratorTests.test_scan_integration_conflict _______________\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_scan_integration_conflict>\n\n    def test_scan_integration_conflict(self):\n        from pyramid.tests.test_config.pkgs import selfscan\n        from pyramid.config import Configurator\n        c = Configurator()\n        c.scan(selfscan)\n        c.scan(selfscan)\n        try:\n>           c.commit()\n\nr2e_tests/test_config/test_init.py:1039: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \npyramid/config/__init__.py:654: in commit\n    self.action_state.execute_actions(introspector=self.introspector)\npyramid/config/__init__.py:1130: in execute_actions\n    action = next(action_iter, None)\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nactions = [{'args': (), 'callable': <function ViewsConfiguratorMixin.add_view.<locals>.register at 0x7a76502ce8b0>, 'discriminat...76502691f0>, 'discriminator': ('view', None, 'two', None, 'd41d8cd98f00b204e9800998ecf8427e'), 'includepath': (), ...}]\nstate = <pyramid.config.ConflictResolverState object at 0x7a7650b20c70>\n\n    def resolveConflicts(actions, state=None):\n        \"\"\"Resolve conflicting actions\n    \n        Given an actions list, identify and try to resolve conflicting actions.\n        Actions conflict if they have the same non-None discriminator.\n    \n        Conflicting actions can be resolved if the include path of one of\n        the actions is a prefix of the includepaths of the other\n        conflicting actions and is unequal to the include paths in the\n        other conflicting actions.\n    \n        Actions are resolved on a per-order basis because some discriminators\n        cannot be computed until earlier actions have executed. An action in an\n        earlier order may execute successfully only to find out later that it was\n        overridden by another action with a smaller include path. This will result\n        in a conflict as there is no way to revert the original action.\n    \n        ``state`` may be an instance of ``ConflictResolverState`` that\n        can be used to resume execution and resolve the new actions against the\n        list of executed actions from a previous call.\n    \n        \"\"\"\n        if state is None:\n            state = ConflictResolverState()\n    \n        # pick up where we left off last time, but track the new actions as well\n        state.remaining_actions.extend(normalize_actions(actions))\n        actions = state.remaining_actions\n    \n        def orderandpos(v):\n            n, v = v\n            return (v['order'] or 0, n)\n    \n        def orderonly(v):\n            n, v = v\n            return v['order'] or 0\n    \n        sactions = sorted(enumerate(actions, start=state.start), key=orderandpos)\n        for order, actiongroup in itertools.groupby(sactions, orderonly):\n            # \"order\" is an integer grouping. Actions in a lower order will be\n            # executed before actions in a higher order.  All of the actions in\n            # one grouping will be executed (its callable, if any will be called)\n            # before any of the actions in the next.\n            output = []\n            unique = {}\n    \n            # error out if we went backward in order\n            if state.min_order is not None and order < state.min_order:\n                r = ['Actions were added to order={0} after execution had moved '\n                     'on to order={1}. Conflicting actions: '\n                     .format(order, state.min_order)]\n                for i, action in actiongroup:\n                    for line in str(action['info']).rstrip().split('\\n'):\n                        r.append(\"  \" + line)\n                raise ConfigurationError('\\n'.join(r))\n    \n            for i, action in actiongroup:\n                # Within an order, actions are executed sequentially based on\n                # original action ordering (\"i\").\n    \n                # \"ainfo\" is a tuple of (i, action) where \"i\" is an integer\n                # expressing the relative position of this action in the action\n                # list being resolved, and \"action\" is an action dictionary.  The\n                # purpose of an ainfo is to associate an \"i\" with a particular\n                # action; \"i\" exists for sorting after conflict resolution.\n                ainfo = (i, action)\n    \n                # wait to defer discriminators until we are on their order because\n                # the discriminator may depend on state from a previous order\n                discriminator = undefer(action['discriminator'])\n                action['discriminator'] = discriminator\n    \n                if discriminator is None:\n                    # The discriminator is None, so this action can never conflict.\n                    # We can add it directly to the result.\n                    output.append(ainfo)\n                    continue\n    \n                L = unique.setdefault(discriminator, [])\n                L.append(ainfo)\n    \n            # Check for conflicts\n            conflicts = {}\n            for discriminator, ainfos in unique.items():\n                # We use (includepath, i) as a sort key because we need to\n                # sort the actions by the paths so that the shortest path with a\n                # given prefix comes first.  The \"first\" action is the one with the\n                # shortest include path.  We break sorting ties using \"i\".\n                def bypath(ainfo):\n                    path, i = ainfo[1]['includepath'], ainfo[0]\n                    return path, order, i\n    \n                ainfos.sort(key=bypath)\n                ainfo, rest = ainfos[0], ainfos[1:]\n                _, action = ainfo\n    \n                # ensure this new action does not conflict with a previously\n                # resolved action from an earlier order / invocation\n                prev_ainfo = state.resolved_ainfos.get(discriminator)\n                if prev_ainfo is not None:\n                    _, paction = prev_ainfo\n                    basepath, baseinfo = paction['includepath'], paction['info']\n                    includepath = action['includepath']\n                    # if the new action conflicts with the resolved action then\n                    # note the conflict, otherwise drop the action as it's\n                    # effectively overriden by the previous action\n                    if (includepath[:len(basepath)] != basepath or\n                            includepath == basepath):\n                        L = conflicts.setdefault(discriminator, [baseinfo])\n                        L.append(action['info'])\n    \n                else:\n                    output.append(ainfo)\n    \n                basepath, baseinfo = action['includepath'], action['info']\n                for _, action in rest:\n                    includepath = action['includepath']\n                    # Test whether path is a prefix of opath\n                    if (includepath[:len(basepath)] != basepath or  # not a prefix\n                            includepath == basepath):\n                        L = conflicts.setdefault(discriminator, [baseinfo])\n                        L.append(action['info'])\n    \n            if conflicts:\n>               raise ConfigurationConflictError(conflicts)\nE               pyramid.exceptions.ConfigurationConflictError: Conflicting configuration actions\nE                 For: ('view', None, '', None, 'd41d8cd98f00b204e9800998ecf8427e')\nE                   Line 4 of file /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/selfscan/__init__.py:\nE                       def abc(request):\nE                   Line 4 of file /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/selfscan/__init__.py:\nE                       def abc(request):\nE                 For: ('view', None, 'two', None, 'd41d8cd98f00b204e9800998ecf8427e')\nE                   Line 4 of file /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/selfscan/another.py:\nE                       def two(request):\nE                   Line 4 of file /home/gcpuser/buckets/local_repoeval_bucket/repos/pyramid_7b58c0f003107aba5fde6cde57f13491d5248c76/pyramid/tests/test_config/pkgs/selfscan/another.py:\nE                       def two(request):\n\npyramid/config/__init__.py:1312: ConfigurationConflictError\n\nDuring handling of the above exception, another exception occurred:\n\nself = <r2e_tests.test_config.test_init.ConfiguratorTests testMethod=test_scan_integration_conflict>\n\n    def test_scan_integration_conflict(self):\n        from pyramid.tests.test_config.pkgs import selfscan\n        from pyramid.config import Configurator\n        c = Configurator()\n        c.scan(selfscan)\n        c.scan(selfscan)\n        try:\n            c.commit()\n        except ConfigurationConflictError as why:\n            def scanconflicts(e):\n                conflicts = e._conflicts.values()\n                for conflict in conflicts:\n                    for confinst in conflict:\n                        yield confinst.src\n            which = list(scanconflicts(why))\n            self.assertEqual(len(which), 4)\n>           self.assertTrue(\"@view_config(renderer='string')\" in which)\nE           AssertionError: False is not true\n\nr2e_tests/test_config/test_init.py:1048: 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.registry import Registry\n        from pyramid.interfaces import IDebugLogger\n        reg = Registry()\n        config = self._makeOne(reg)\n        config.setup_registry()\n        logger = reg.getUtility(IDebugLogger)\n>       self.assertEqual(logger.name, 'pyramid.tests.test_config')\nE       AssertionError: 'r2e_tests.test_config' != 'pyramid.tests.test_config'\nE       - r2e_tests.test_config\nE       ?  ^^^\nE       + pyramid.tests.test_config\nE       ? ++ ^^^^^\n\nr2e_tests/test_config/test_init.py:444: 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 pyramid.tests import test_config\n        config = self.config\n        config.add_directive(\n                'dummy_callable', 'pyramid.tests.test_config.dummy_callable')\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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_init.py:1247: 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 pyramid.tests import test_config\n        config = self.config\n        config.add_directive(\n                'dummy_partial', 'pyramid.tests.test_config.dummy_partial')\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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_init.py:1234: 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 pyramid.tests import test_config\n        config = self.config\n        config.add_directive(\n            'dummy_extend', 'pyramid.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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_init.py:1221: 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 pyramid.tests import test_config\n        config = self.config\n        config.add_directive(\n            '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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_init.py:1260: 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(discriminator, callable=None, args=(),\n                        kw=None, order=0, introspectables=(), **extra):\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',\n            'testing',\n            'pyramid.tests.test_config.test_init.DummyPredicate'\n            )\n\nr2e_tests/test_config/test_init.py:1324: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \npyramid/config/__init__.py:543: in _add_predicate\n    self.action(discriminator, register, introspectables=(intr,),\nr2e_tests/test_config/test_init.py:1321: in _fakeAction\n    self.assertEqual(introspectables[0]['factory'], DummyPredicate)\nE   AssertionError: <class 'pyramid.tests.test_config.test_init.DummyPredicate'> != <class 'r2e_tests.test_config.test_init.DummyPredicate'>\n_____ TestSettingsConfiguratorMixin.test__set_settings_uses_original_dict ______\n\nself = <r2e_tests.test_config.test_settings.TestSettingsConfiguratorMixin testMethod=test__set_settings_uses_original_dict>\n\n    def test__set_settings_uses_original_dict(self):\n        config = self._makeOne()\n        dummy = {}\n        result = config._set_settings(dummy)\n>       self.assertTrue(dummy is result)\nE       AssertionError: False is not true\n\nr2e_tests/test_config/test_settings.py:18: AssertionError\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        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,\n            [(config, 'static', 'pyramid.tests.test_config:files', {})])\nE       AssertionError: Lists differ: [(<py[39 chars]a7650152f70>, 'static', 'r2e_tests.test_config:files', {})] != [(<py[39 chars]a7650152f70>, 'static', 'pyramid.tests.test_config:files', {})]\nE       \nE       First differing element 0:\nE       (<pyr[37 chars]7a7650152f70>, 'static', 'r2e_tests.test_config:files', {})\nE       (<pyr[37 chars]7a7650152f70>, 'static', 'pyramid.tests.test_config:files', {})\nE       \nE         [(<pyramid.config.Configurator object at 0x7a7650152f70>,\nE           'static',\nE       -   'r2e_tests.test_config:files',\nE       ?     ^^^\nE       \nE       +   'pyramid.tests.test_config:files',\nE       ?    ++ ^^^^^\nE       \nE           {})]\n\nr2e_tests/test_config/test_views.py:2065: AssertionError\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.tests import test_config\n        from pyramid.interfaces import ISettings\n        class view(object):\n            def __init__(self, context, request):\n                self.request = request\n                self.context = context\n    \n            def __call__(self):\n                return {'a':'1'}\n        config = self._makeOne(autocommit=True)\n        renderer = self._registerRenderer(config)\n        fixture = 'pyramid.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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_views.py:1186: 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.tests import test_config\n        from pyramid.interfaces import ISettings\n        config = self._makeOne(autocommit=True)\n        renderer = self._registerRenderer(config)\n        fixture = 'pyramid.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 'pyramid.tests.test_config' from '/home/gc[125 chars].py'>\n\nr2e_tests/test_config/test_views.py:1227: AssertionError\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                'pyramid.tests.test_config:path/',\n                'pyramid.tests.test_config:other_path/')\n            def cb(val):\n                def cb_(request, subpath, kw):\n                    kw['_query'] = {'x': val}\n                    return subpath, kw\n                return cb_\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:3213: 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(): pass\n        result = self._callFUT(view)\n>       self.assertEqual(result,\n                         'function pyramid.tests.test_config.test_views.view')\nE       AssertionError: 'function r2e_tests.test_config.test_views.view' != 'function pyramid.tests.test_config.test_views.view'\nE       - function r2e_tests.test_config.test_views.view\nE       ?           ^^^\nE       + function pyramid.tests.test_config.test_views.view\nE       ?          ++ ^^^^^\n\nr2e_tests/test_config/test_views.py:3384: 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): 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='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', '/a/b',\n            'pyramid.tests.test_scripts.test_proutes.view1', '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', 'pyramid.tests.test_scripts.test_proutes.view1', 'POST']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', 'POST']\nE       ?                  ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:337: 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): 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        )\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', '/a/b',\n            'pyramid.tests.test_scripts.test_proutes.view1', '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', 'pyramid.tests.test_scripts.test_proutes.view1', 'POST']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', 'POST']\nE       ?                  ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:364: 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): 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', '/a/b',\n            'pyramid.tests.test_scripts.test_proutes.view1', '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', 'pyramid.tests.test_scripts.test_proutes.view1', 'POST']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', 'POST']\nE       ?                  ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:392: 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        from pyramid.interfaces import IRouteRequest\n        from pyramid.interfaces import IViewClassifier\n        from pyramid.interfaces import IView\n        registry = self._makeRegistry()\n    \n        def view():pass\n    \n        class IMyRoute(Interface):\n            pass\n    \n        registry.registerAdapter(\n            view,\n            (IViewClassifier, IMyRoute, Interface),\n            IView, ''\n        )\n    \n        registry.registerUtility(IMyRoute, IRouteRequest,\n                                 name='very_long_name_123')\n    \n        command = self._makeOne()\n        route = dummy.DummyRoute(\n            'very_long_name_123',\n            '/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            ['very_long_name_123',\n             '/and_very_long_pattern_as_well',\n             'pyramid.tests.test_scripts.test_proutes.view']\n        )\nE       AssertionError: Lists differ: ['ver[36 chars]ttern_as_well', 'r2e_tests.test_scripts.test_proutes.view'] != ['ver[36 chars]ttern_as_well', 'pyramid.tests.test_scripts.test_proutes.view']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view'\nE       'pyramid.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       +  'pyramid.tests.test_scripts.test_proutes.view']\nE       ?   ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:196: 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.renderers import null_renderer as nr\n        from pyramid.config import not_\n    \n        def view1(context, request): 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', '/a/b',\n            'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', 'GET']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', 'GET']\nE       ?                  ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:532: 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): 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='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', '/a/b',\n            'pyramid.tests.test_scripts.test_proutes.view1',\n            '<route', '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', 'pyramid.tests.test_scripts.test_proutes.v[24 chars]ch>']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'pyramid.tests.test_scripts.test_proutes.view1'\nE       \nE         ['foo',\nE          '/a/b',\nE       -  'r2e_tests.test_scripts.test_proutes.view1',\nE       ?    ^^^\nE       \nE       +  'pyramid.tests.test_scripts.test_proutes.view1',\nE       ?   ++ ^^^^^\nE       \nE          '<route',\nE          'mismatch>']\n\nr2e_tests/test_scripts/test_proutes.py:421: 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        from pyramid.renderers import null_renderer as nr\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            ['__static/', '/static/*subpath',\n             'pyramid.tests.test_scripts:static/', '*'],\n            ['__static2/', '/static2/*subpath', path2 + os.sep, '*'],\n            ['__pyramid_scaffold/', '/pyramid_scaffold/*subpath',\n             'pyramid:scaffolds/starter/+package+/static/',  '*'],\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', 'pyramid.tests.test_scripts:static/', '*']\nE           \nE           First differing element 2:\nE           'r2e_tests.test_scripts:static/'\nE           'pyramid.tests.test_scripts:static/'\nE           \nE           - ['__static/', '/static/*subpath', 'r2e_tests.test_scripts:static/', '*']\nE           ?                                     ^^^\nE           \nE           + ['__static/', '/static/*subpath', 'pyramid.tests.test_scripts:static/', '*']\nE           ?                                    ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:452: 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        from pyramid.interfaces import IRouteRequest\n        from pyramid.interfaces import IViewClassifier\n        from pyramid.interfaces import IView\n        registry = self._makeRegistry()\n    \n        def view():pass\n        class IMyRoute(Interface):\n            pass\n        registry.registerAdapter(view,\n                                 (IViewClassifier, IMyRoute, Interface),\n                                 IView, '')\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,\n            ['a', '/a', 'pyramid.tests.test_scripts.test_proutes.view']\n        )\nE       AssertionError: Lists differ: ['a', '/a', 'r2e_tests.test_scripts.test_proutes.view'] != ['a', '/a', 'pyramid.tests.test_scripts.test_proutes.view']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view'\nE       'pyramid.tests.test_scripts.test_proutes.view'\nE       \nE       - ['a', '/a', 'r2e_tests.test_scripts.test_proutes.view']\nE       ?               ^^^\nE       \nE       + ['a', '/a', 'pyramid.tests.test_scripts.test_proutes.view']\nE       ?              ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:156: 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.renderers import null_renderer as nr\n        from pyramid.config import not_\n    \n        def view1(context, request): return 'view1'\n        def view2(context, request): 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.options.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', '/a/b',\n            'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', '!POST,*']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', '!POST,*']\nE       ?                  ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:603: 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.renderers import null_renderer as nr\n        from pyramid.config import not_\n    \n        def view1(context, request): 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', '/a/b',\n            'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', '!POST,*']\nE       \nE       First differing element 2:\nE       'r2e_tests.test_scripts.test_proutes.view1'\nE       'pyramid.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', 'pyramid.tests.test_scripts.test_proutes.view1', '!POST,*']\nE       ?                  ++ ^^^^^\n\nr2e_tests/test_scripts/test_proutes.py:562: 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        registry = Registry()\n        command = self._makeOne(registry=registry)\n        L = []\n        command.out = L.append\n        def view(): pass\n        view.__request_attrs__ = {'context': 'context', 'view_name': 'a'}\n        command._find_view = lambda arg1: view\n        command.args = ('/foo/bar/myapp.ini#myapp', '/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],\n                         '    pyramid.tests.test_scripts.test_pviews.view')\nE       AssertionError: '    r2e_tests.test_scripts.test_pviews.view' != '    pyramid.tests.test_scripts.test_pviews.view'\nE       -     r2e_tests.test_scripts.test_pviews.view\nE       ?      ^^^\nE       +     pyramid.tests.test_scripts.test_pviews.view\nE       ?     ++ ^^^^^\n\nr2e_tests/test_scripts/test_pviews.py:296: AssertionError\n==================================== PASSES ====================================\n=========================== short test summary info ============================\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test__set_settings_as_None\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test__set_settings_as_dictwithvalues\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test_add_settings_settings_None\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test_add_settings_settings_already_registered\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test_add_settings_settings_not_yet_registered\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test_get_settings_nosettings\nPASSED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test_get_settings_withsettings\nPASSED r2e_tests/test_1.py::TestSettings::test_csrf_trusted_origins\nPASSED r2e_tests/test_1.py::TestSettings::test_debug_all\nPASSED r2e_tests/test_1.py::TestSettings::test_debug_authorization\nPASSED r2e_tests/test_1.py::TestSettings::test_debug_notfound\nPASSED r2e_tests/test_1.py::TestSettings::test_debug_routematch\nPASSED r2e_tests/test_1.py::TestSettings::test_debug_templates\nPASSED r2e_tests/test_1.py::TestSettings::test_default_locale_name\nPASSED r2e_tests/test_1.py::TestSettings::test_noargs\nPASSED r2e_tests/test_1.py::TestSettings::test_originals_kept\nPASSED r2e_tests/test_1.py::TestSettings::test_prevent_cachebust\nPASSED r2e_tests/test_1.py::TestSettings::test_prevent_http_cache\nPASSED r2e_tests/test_1.py::TestSettings::test_reload_all\nPASSED r2e_tests/test_1.py::TestSettings::test_reload_assets\nPASSED r2e_tests/test_1.py::TestSettings::test_reload_resources\nPASSED r2e_tests/test_1.py::TestSettings::test_reload_templates\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_type_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_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_request_factory_dottedname\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_response_factory\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_response_factory_dottedname\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_root_factory_dottedname\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_session_factory\nPASSED r2e_tests/test_config/test_factories.py::TestFactoriesMixin::test_set_session_factory_dottedname\nPASSED r2e_tests/test_config/test_factories.py::TestDeprecatedFactoriesMixinMethods::test_set_multiple_request_properties\nPASSED r2e_tests/test_config/test_factories.py::TestDeprecatedFactoriesMixinMethods::test_set_multiple_request_properties_conflict\nPASSED r2e_tests/test_config/test_factories.py::TestDeprecatedFactoriesMixinMethods::test_set_request_property_with_callable\nPASSED r2e_tests/test_config/test_factories.py::TestDeprecatedFactoriesMixinMethods::test_set_request_property_with_property\nPASSED r2e_tests/test_config/test_factories.py::TestDeprecatedFactoriesMixinMethods::test_set_request_property_with_unnamed_callable\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_i18n.py::TestI18NConfiguratorMixin::test_set_locale_negotiator_dottedname\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_action_autocommit_with_introspectables\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_action_autocommit_with_introspectables_introspection_off\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_action_branching_kw_is_None\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_action_branching_kw_is_not_None\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_action_branching_nonautocommit_with_config_info\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_action_branching_nonautocommit_with_introspectables\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_action_branching_nonautocommit_without_config_info\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_action_nonautocommit_with_introspectables_introspection_off\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_autocommit_no_conflicts\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_begin\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_begin_with_request\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_commit_conflict_resolved_with_include\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_commit_conflict_resolved_with_two_includes_and_local\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_commit_conflict_simple\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_commit_conflict_with_two_includes\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_conflict_set_forbidden_view\nPASSED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_conflict_set_notfound_view\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_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_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_python_callable\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_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_setup_registry_tweens\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_module\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::TestActionState::test_action_simple\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_action_with_includepath\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_action_with_includepath_and_info\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_action_with_info\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_action_with_introspectables\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_action_with_order\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_execute_actions_dicts\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_execute_actions_error\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_execute_actions_tuples\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_execute_actions_with_introspectable_no_callable\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_execute_actions_with_introspectables\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_executing_conflicting_action_across_orders\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_executing_conflicting_action_across_reentrant_orders\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_it\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_processSpec\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_reentrant_action\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_reentrant_action_error\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_reentrant_action_with_deferred_discriminator\nPASSED r2e_tests/test_config/test_init.py::TestActionState::test_reentrant_action_without_clear\nPASSED r2e_tests/test_config/test_init.py::Test_reentrant_action_functional::test_deferred_discriminator\nPASSED r2e_tests/test_config/test_init.py::Test_reentrant_action_functional::test_functional\nPASSED r2e_tests/test_config/test_init.py::Test_resolveConflicts::test_conflicts_across_orders\nPASSED r2e_tests/test_config/test_init.py::Test_resolveConflicts::test_it_conflict\nPASSED r2e_tests/test_config/test_init.py::Test_resolveConflicts::test_it_success_dicts\nPASSED r2e_tests/test_config/test_init.py::Test_resolveConflicts::test_it_success_tuples\nPASSED r2e_tests/test_config/test_init.py::Test_resolveConflicts::test_it_with_actions_grouped_by_order\nPASSED r2e_tests/test_config/test_init.py::Test_resolveConflicts::test_override_success_across_orders\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::TestXHRPredicate::test___call___false\nPASSED r2e_tests/test_config/test_predicates.py::TestXHRPredicate::test___call___true\nPASSED r2e_tests/test_config/test_predicates.py::TestXHRPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::TestXHRPredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestMethodPredicate::test___call___false\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestMethodPredicate::test___call___true_multi\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestMethodPredicate::test___call___true_single\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestMethodPredicate::test_ctor_get_but_no_head\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestMethodPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestMethodPredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::TestPathInfoPredicate::test___call___false\nPASSED r2e_tests/test_config/test_predicates.py::TestPathInfoPredicate::test___call___true\nPASSED r2e_tests/test_config/test_predicates.py::TestPathInfoPredicate::test_ctor_compilefail\nPASSED r2e_tests/test_config/test_predicates.py::TestPathInfoPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::TestPathInfoPredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test___call___false\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test___call___false_multi\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test___call___true_exists\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test___call___true_multi\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test___call___true_withval\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_phash_exists\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_phash_exists_equal_sign\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_phash_withval\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_text_exists\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_text_exists_equal_sign\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_text_multi\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_text_multi_equal_sign\nPASSED r2e_tests/test_config/test_predicates.py::TestRequestParamPredicate::test_text_withval\nPASSED r2e_tests/test_config/test_predicates.py::TestMatchParamPredicate::test___call___false\nPASSED r2e_tests/test_config/test_predicates.py::TestMatchParamPredicate::test___call___matchdict_is_None\nPASSED r2e_tests/test_config/test_predicates.py::TestMatchParamPredicate::test___call___true_multi\nPASSED r2e_tests/test_config/test_predicates.py::TestMatchParamPredicate::test___call___true_single\nPASSED r2e_tests/test_config/test_predicates.py::TestMatchParamPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::TestMatchParamPredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::TestCustomPredicate::test___call___false\nPASSED r2e_tests/test_config/test_predicates.py::TestCustomPredicate::test___call___true\nPASSED r2e_tests/test_config/test_predicates.py::TestCustomPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::TestCustomPredicate::test_text_func_has___text__\nPASSED r2e_tests/test_config/test_predicates.py::TestCustomPredicate::test_text_func_repr\nPASSED r2e_tests/test_config/test_predicates.py::TestTraversePredicate::test___call__traverse_has_remainder_already\nPASSED r2e_tests/test_config/test_predicates.py::TestTraversePredicate::test___call__traverse_matches\nPASSED r2e_tests/test_config/test_predicates.py::TestTraversePredicate::test___call__traverse_matches_with_highorder_chars\nPASSED r2e_tests/test_config/test_predicates.py::TestTraversePredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::TestTraversePredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::Test_CheckCSRFTokenPredicate::test_it_call_val_False\nPASSED r2e_tests/test_config/test_predicates.py::Test_CheckCSRFTokenPredicate::test_it_call_val_True\nPASSED r2e_tests/test_config/test_predicates.py::Test_CheckCSRFTokenPredicate::test_it_call_val_str\nPASSED r2e_tests/test_config/test_predicates.py::Test_CheckCSRFTokenPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::Test_CheckCSRFTokenPredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test___call___false\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test___call___false_withregex\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test___call___true_exists\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test___call___true_withregex\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test___call___true_withval\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test_phash_exists\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test_phash_withregex\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test_phash_withval\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test_text_exists\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test_text_withregex\nPASSED r2e_tests/test_config/test_predicates.py::TestHeaderPredicate::test_text_withval\nPASSED r2e_tests/test_config/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_False\nPASSED r2e_tests/test_config/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_context_has_no_name\nPASSED r2e_tests/test_config/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_val_list_True\nPASSED r2e_tests/test_config/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_val_str_True\nPASSED r2e_tests/test_config/test_predicates.py::Test_PhysicalPathPredicate::test_it_call_val_tuple_True\nPASSED r2e_tests/test_config/test_predicates.py::Test_PhysicalPathPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::Test_PhysicalPathPredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_authentication_policy_doesnt_provide_superset\nPASSED r2e_tests/test_config/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_authentication_policy_provides_superset\nPASSED r2e_tests/test_config/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_authentication_policy_provides_superset_implicit\nPASSED r2e_tests/test_config/test_predicates.py::Test_EffectivePrincipalsPredicate::test_it_call_no_authentication_policy\nPASSED r2e_tests/test_config/test_predicates.py::Test_EffectivePrincipalsPredicate::test_phash\nPASSED r2e_tests/test_config/test_predicates.py::Test_EffectivePrincipalsPredicate::test_text\nPASSED r2e_tests/test_config/test_predicates.py::Test_EffectivePrincipalsPredicate::test_text_noniter\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_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_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_factory_dottedname\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_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_route_prefix\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_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_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_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_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::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_dottedname\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_dottedname\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_distinct\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::TestTweensConfiguratorMixin::test_add_tweens_names_with_underover\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_util.py::TestPredicateList::test_custom_predicates_can_affect_traversal\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_different_custom_predicates_with_same_hash\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_match_param_from_dict\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_match_param_from_dict_fails\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_match_param_from_string\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_match_param_from_string_fails\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_notted\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_ordering_importance_and_number\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_ordering_importance_of_predicates\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_ordering_number_of_predicates\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_ordering_xhr_and_request_method_trump_only_containment\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_predicate_text_is_correct\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_request_method_ordering_hashes_same\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_request_method_sequence\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_traverse_has_remainder_already\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_traverse_matches\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_traverse_matches_with_highorder_chars\nPASSED r2e_tests/test_config/test_util.py::TestPredicateList::test_unknown_predicate\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_annotations\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_defaultargs_firstname_not_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_defaultargs_firstname_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_noargs\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_onearg_named_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_onearg_named_somethingelse\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_toomanyargs\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_with_attr_false\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_function_with_attr_true\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_instance_defaultargs_firstname_not_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_instance_defaultargs_firstname_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_instance_defaultargs_onearg_named_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_instance_defaultargs_onearg_named_somethingelse\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_instance_nocall\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_instance_toomanyargs\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_method_onearg_named_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_newstyle_class_init_defaultargs_firstname_not_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_newstyle_class_init_defaultargs_firstname_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_newstyle_class_init_firstname_request_with_secondname\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_newstyle_class_init_noargs\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_newstyle_class_init_onearg_named_somethingelse\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_defaultargs_firstname_not_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_defaultargs_firstname_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_noargs\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_onearg_named_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_onearg_named_somethingelse\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_oldstyle_class_init_toomanyargs\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_oldstyle_class_no_init\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_requestonly_newstyle_class_init_onearg_named_request\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_requestonly_newstyle_class_init_toomanyargs\nPASSED r2e_tests/test_config/test_util.py::Test_takes_one_arg::test_requestonly_newstyle_class_no_init\nPASSED r2e_tests/test_config/test_util.py::TestNotted::test_it_with_phash_val\nPASSED r2e_tests/test_config/test_util.py::TestNotted::test_it_without_phash_val\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_exception_view_with_view_defaults\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_forbidden_view_with_view_defaults\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_notfound_view_with_view_defaults\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_dottedname\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_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_dottedname\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_check_csrf_predicates_match\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_containment_dottedname\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_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_view_defaults\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_defaults_viewname_is_dottedname_kwarg\nPASSED r2e_tests/test_config/test_views.py::TestViewsConfigurationMixin::test_add_view_with_view_defaults_viewname_is_dottedname_nonkwarg\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_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_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_pcreate.py::TestPCreateCommand::test_confirm_override_conflicting_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_force_override_conflicting_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_force_override_site_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_known_scaffold_absolute_path\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_known_scaffold_multiple_rendered\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_known_scaffold_single_rendered\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_known_scaffold_with_path_as_project_target_rendered\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_no_project_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_run_no_scaffold_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_run_no_scaffold_no_args\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_run_show_scaffolds_exist\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_run_show_scaffolds_none_exist\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_scaffold_with_dev_pyramid_long_version\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_scaffold_with_dev_pyramid_version\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_scaffold_with_hyphen_in_project_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_scaffold_with_package_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_scaffold_with_prod_pyramid_long_version\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_scaffold_with_prod_pyramid_unparsable_version\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_scaffold_with_prod_pyramid_version\nPASSED r2e_tests/test_scripts/test_pcreate.py::TestPCreateCommand::test_unknown_scaffold_name\nPASSED r2e_tests/test_scripts/test_pcreate.py::Test_main::test_it\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_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_class_view\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_multiview_registered\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_get_options_no_command\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_run_no_args\nPASSED r2e_tests/test_scripts/test_pserve.py::Test_main::test_it\nPASSED r2e_tests/test_scripts/test_pserve.py::TestLazyWriter::test_flush\nPASSED r2e_tests/test_scripts/test_pserve.py::TestLazyWriter::test_open\nPASSED r2e_tests/test_scripts/test_pserve.py::TestLazyWriter::test_write\nPASSED r2e_tests/test_scripts/test_pserve.py::TestLazyWriter::test_writeline\nPASSED r2e_tests/test_scripts/test_pserve.py::Test__methodwrapper::test___call__fail\nPASSED r2e_tests/test_scripts/test_pserve.py::Test__methodwrapper::test___call__succeed\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_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_multi_view_nested\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview_with_permission\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_multiview_with_predicates\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::TestPViewsCommand::test_views_command_single_view_route\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_route_with_route_predicates\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal_with_permission\nPASSED r2e_tests/test_scripts/test_pviews.py::TestPViewsCommand::test_views_command_single_view_traversal_with_predicates\nPASSED r2e_tests/test_scripts/test_pviews.py::Test_main::test_it\nFAILED r2e_tests/test_1.py::TestSettingsConfiguratorMixin::test__set_settings_uses_original_dict\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_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_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_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_scan_integration_conflict\nFAILED r2e_tests/test_config/test_init.py::ConfiguratorTests::test_setup_registry_debug_logger_None_default\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_settings.py::TestSettingsConfiguratorMixin::test__set_settings_uses_original_dict\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_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::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_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_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_pviews.py::TestPViewsCommand::test_views_command_single_view_function_traversal\n======================== 45 failed, 878 passed in 4.46s ========================\n",
    "old_commit_res_stderr": ""
}
CHANGES.txt pyramid/config/settings.py pyramid/tests/test_config/test_settings.py
We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[ISSUE]
**Title:** SettingsConfigurator Fails to Preserve Original Settings Dictionary When Mapping is Empty

**Description:**
When initializing the settings with an empty mapping, the original settings dictionary is not preserved. This results in default settings not being applied as expected.

**Example Code:**
```python
config = Configurator()
dummy = {}
settings = config._set_settings(dummy)
# Expected: 'settings' should reference the original 'dummy' dictionary with 'pyramid.debug_all' set to False
```

**Expected Behavior:**
The `settings` object should be the same as the original `dummy` dictionary, and it should include the default setting `'pyramid.debug_all': False`.

**Actual Behavior:**
A new empty dictionary is created instead of using the original `dummy` dictionary. As a result, the default setting `'pyramid.debug_all'` is not applied to the original dictionary, leading to potential configuration issues.
[/ISSUE]
--- END ISSUE ---

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

--- BEGIN FILE ---
```
### pyramid/config/settings.py
import os

from pyramid.settings import asbool, aslist

class SettingsConfiguratorMixin(object):
    def _set_settings(self, mapping):
        if not mapping:
            mapping = {}
        settings = Settings(mapping)
        self.registry.settings = settings
        return settings

    def add_settings(self, settings=None, **kw):
        """Augment the :term:`deployment settings` with one or more
        key/value pairs.

        You may pass a dictionary::

           config.add_settings({'external_uri':'http://example.com'})

        Or a set of key/value pairs::

           config.add_settings(external_uri='http://example.com')

        This function is useful when you need to test code that accesses the
        :attr:`pyramid.registry.Registry.settings` API (or the
        :meth:`pyramid.config.Configurator.get_settings` API) and
        which uses values from that API.
        """
        if settings is None:
            settings = {}
        utility = self.registry.settings
        if utility is None:
            utility = self._set_settings(settings)
        utility.update(settings)
        utility.update(kw)

    def get_settings(self):
        """
        Return a :term:`deployment settings` object for the current
        application.  A deployment settings object is a dictionary-like
        object that contains key/value pairs based on the dictionary passed
        as the ``settings`` argument to the
        :class:`pyramid.config.Configurator` constructor.

        .. note:: the :attr:`pyramid.registry.Registry.settings` API
           performs the same duty.
           """
        return self.registry.settings


def Settings(d=None, _environ_=os.environ, **kw):
    """ Deployment settings.  Update application settings (usually
    from PasteDeploy keywords) with framework-specific key/value pairs
    (e.g. find ``PYRAMID_DEBUG_AUTHORIZATION`` in os.environ and jam into
    keyword args)."""
    if d is None:
        d = {}
    d.update(**kw)

    eget = _environ_.get
    def expand_key(key):
        keys = [key]
        if not key.startswith('pyramid.'):
            keys.append('pyramid.' + key)
        return keys
    def S(settings_key, env_key=None, type_=str, default=False):
        value = default
        keys = expand_key(settings_key)
        for key in keys:
            value = d.get(key, value)
        if env_key:
            value = eget(env_key, value)
        value = type_(value)
        d.update({k: value for k in keys})
    def O(settings_key, override_key):
        for key in expand_key(settings_key):
            d[key] = d[key] or d[override_key]

    S('debug_all', 'PYRAMID_DEBUG_ALL', asbool)
    S('debug_authorization', 'PYRAMID_DEBUG_AUTHORIZATION', asbool)
    O('debug_authorization', 'debug_all')
    S('debug_notfound', 'PYRAMID_DEBUG_NOTFOUND', asbool)
    O('debug_notfound', 'debug_all')
    S('debug_routematch', 'PYRAMID_DEBUG_ROUTEMATCH', asbool)
    O('debug_routematch', 'debug_all')
    S('debug_templates', 'PYRAMID_DEBUG_TEMPLATES', asbool)
    O('debug_templates', 'debug_all')

    S('reload_all', 'PYRAMID_RELOAD_ALL', asbool)
    S('reload_templates', 'PYRAMID_RELOAD_TEMPLATES', asbool)
    O('reload_templates', 'reload_all')
    S('reload_assets', 'PYRAMID_RELOAD_ASSETS', asbool)
    O('reload_assets', 'reload_all')
    S('reload_resources', 'PYRAMID_RELOAD_RESOURCES', asbool)
    O('reload_resources', 'reload_all')
    # reload_resources is an older alias for reload_assets
    for k in expand_key('reload_assets') + expand_key('reload_resources'):
        d[k] = d['reload_assets'] or d['reload_resources']

    S('default_locale_name', 'PYRAMID_DEFAULT_LOCALE_NAME', str, 'en')
    S('prevent_http_cache', 'PYRAMID_PREVENT_HTTP_CACHE', asbool)
    S('prevent_cachebust', 'PYRAMID_PREVENT_CACHEBUST', asbool)
    S('csrf_trusted_origins', 'PYRAMID_CSRF_TRUSTED_ORIGINS', aslist, [])

    return d

```
--- 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:** SettingsConfigurator Fails to Preserve Original Settings Dictionary When Mapping is Empty

**Description:**
When initializing the settings with an empty mapping, the original settings dictionary is not preserved. This results in default settings not being applied as expected.

**Example Code:**
```python
config = Configurator()
dummy = {}
settings = config._set_settings(dummy)
# Expected: 'settings' should reference the original 'dummy' dictionary with 'pyramid.debug_all' set to False
```

**Expected Behavior:**
The `settings` object should be the same as the original `dummy` dictionary, and it should include the default setting `'pyramid.debug_all': False`.

**Actual Behavior:**
A new empty dictionary is created instead of using the original `dummy` dictionary. As a result, the default setting `'pyramid.debug_all'` is not applied to the original dictionary, leading to potential configuration issues.
[/ISSUE]
{
    "TestSettingsConfiguratorMixin.test__set_settings_as_None": "PASSED",
    "TestSettingsConfiguratorMixin.test__set_settings_as_dictwithvalues": "PASSED",
    "TestSettingsConfiguratorMixin.test__set_settings_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",
    "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",
    "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_type_name": "PASSED",
    "TestFactoriesMixin.test_add_request_method_with_unnamed_callable": "PASSED",
    "TestFactoriesMixin.test_set_multiple_request_methods_conflict": "PASSED",
    "TestFactoriesMixin.test_set_request_factory": "PASSED",
    "TestFactoriesMixin.test_set_request_factory_dottedname": "PASSED",
    "TestFactoriesMixin.test_set_response_factory": "PASSED",
    "TestFactoriesMixin.test_set_response_factory_dottedname": "PASSED",
    "TestFactoriesMixin.test_set_root_factory": "PASSED",
    "TestFactoriesMixin.test_set_root_factory_as_None": "PASSED",
    "TestFactoriesMixin.test_set_root_factory_dottedname": "PASSED",
    "TestFactoriesMixin.test_set_session_factory": "PASSED",
    "TestFactoriesMixin.test_set_session_factory_dottedname": "PASSED",
    "TestDeprecatedFactoriesMixinMethods.test_set_multiple_request_properties": "PASSED",
    "TestDeprecatedFactoriesMixinMethods.test_set_multiple_request_properties_conflict": "PASSED",
    "TestDeprecatedFactoriesMixinMethods.test_set_request_property_with_callable": "PASSED",
    "TestDeprecatedFactoriesMixinMethods.test_set_request_property_with_property": "PASSED",
    "TestDeprecatedFactoriesMixinMethods.test_set_request_property_with_unnamed_callable": "PASSED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_missing_dir": "PASSED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_no_specs": "PASSED",
    "TestI18NConfiguratorMixin.test_set_locale_negotiator": "PASSED",
    "TestI18NConfiguratorMixin.test_set_locale_negotiator_dottedname": "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_action_autocommit_with_introspectables": "PASSED",
    "ConfiguratorTests.test_action_autocommit_with_introspectables_introspection_off": "PASSED",
    "ConfiguratorTests.test_action_branching_kw_is_None": "PASSED",
    "ConfiguratorTests.test_action_branching_kw_is_not_None": "PASSED",
    "ConfiguratorTests.test_action_branching_nonautocommit_with_config_info": "PASSED",
    "ConfiguratorTests.test_action_branching_nonautocommit_with_introspectables": "PASSED",
    "ConfiguratorTests.test_action_branching_nonautocommit_without_config_info": "PASSED",
    "ConfiguratorTests.test_action_nonautocommit_with_introspectables_introspection_off": "PASSED",
    "ConfiguratorTests.test_autocommit_no_conflicts": "PASSED",
    "ConfiguratorTests.test_begin": "PASSED",
    "ConfiguratorTests.test_begin_with_request": "PASSED",
    "ConfiguratorTests.test_commit_conflict_resolved_with_include": "PASSED",
    "ConfiguratorTests.test_commit_conflict_resolved_with_two_includes_and_local": "PASSED",
    "ConfiguratorTests.test_commit_conflict_simple": "PASSED",
    "ConfiguratorTests.test_commit_conflict_with_two_includes": "PASSED",
    "ConfiguratorTests.test_conflict_set_forbidden_view": "PASSED",
    "ConfiguratorTests.test_conflict_set_notfound_view": "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_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_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_python_callable": "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_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_setup_registry_tweens": "PASSED",
    "ConfiguratorTests.test_unhook_zca": "PASSED",
    "ConfiguratorTests.test_with_package": "PASSED",
    "ConfiguratorTests.test_with_package_module": "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",
    "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",
    "TestGlobalRegistriesIntegration.test_global_registries": "PASSED",
    "TestGlobalRegistriesIntegration.test_global_registries_empty": "PASSED",
    "TestXHRPredicate.test___call___false": "PASSED",
    "TestXHRPredicate.test___call___true": "PASSED",
    "TestXHRPredicate.test_phash": "PASSED",
    "TestXHRPredicate.test_text": "PASSED",
    "TestRequestMethodPredicate.test___call___false": "PASSED",
    "TestRequestMethodPredicate.test___call___true_multi": "PASSED",
    "TestRequestMethodPredicate.test___call___true_single": "PASSED",
    "TestRequestMethodPredicate.test_ctor_get_but_no_head": "PASSED",
    "TestRequestMethodPredicate.test_phash": "PASSED",
    "TestRequestMethodPredicate.test_text": "PASSED",
    "TestPathInfoPredicate.test___call___false": "PASSED",
    "TestPathInfoPredicate.test___call___true": "PASSED",
    "TestPathInfoPredicate.test_ctor_compilefail": "PASSED",
    "TestPathInfoPredicate.test_phash": "PASSED",
    "TestPathInfoPredicate.test_text": "PASSED",
    "TestRequestParamPredicate.test___call___false": "PASSED",
    "TestRequestParamPredicate.test___call___false_multi": "PASSED",
    "TestRequestParamPredicate.test___call___true_exists": "PASSED",
    "TestRequestParamPredicate.test___call___true_multi": "PASSED",
    "TestRequestParamPredicate.test___call___true_withval": "PASSED",
    "TestRequestParamPredicate.test_phash_exists": "PASSED",
    "TestRequestParamPredicate.test_phash_exists_equal_sign": "PASSED",
    "TestRequestParamPredicate.test_phash_withval": "PASSED",
    "TestRequestParamPredicate.test_text_exists": "PASSED",
    "TestRequestParamPredicate.test_text_exists_equal_sign": "PASSED",
    "TestRequestParamPredicate.test_text_multi": "PASSED",
    "TestRequestParamPredicate.test_text_multi_equal_sign": "PASSED",
    "TestRequestParamPredicate.test_text_withval": "PASSED",
    "TestMatchParamPredicate.test___call___false": "PASSED",
    "TestMatchParamPredicate.test___call___matchdict_is_None": "PASSED",
    "TestMatchParamPredicate.test___call___true_multi": "PASSED",
    "TestMatchParamPredicate.test___call___true_single": "PASSED",
    "TestMatchParamPredicate.test_phash": "PASSED",
    "TestMatchParamPredicate.test_text": "PASSED",
    "TestCustomPredicate.test___call___false": "PASSED",
    "TestCustomPredicate.test___call___true": "PASSED",
    "TestCustomPredicate.test_phash": "PASSED",
    "TestCustomPredicate.test_text_func_has___text__": "PASSED",
    "TestCustomPredicate.test_text_func_repr": "PASSED",
    "TestTraversePredicate.test___call__traverse_has_remainder_already": "PASSED",
    "TestTraversePredicate.test___call__traverse_matches": "PASSED",
    "TestTraversePredicate.test___call__traverse_matches_with_highorder_chars": "PASSED",
    "TestTraversePredicate.test_phash": "PASSED",
    "TestTraversePredicate.test_text": "PASSED",
    "Test_CheckCSRFTokenPredicate.test_it_call_val_False": "PASSED",
    "Test_CheckCSRFTokenPredicate.test_it_call_val_True": "PASSED",
    "Test_CheckCSRFTokenPredicate.test_it_call_val_str": "PASSED",
    "Test_CheckCSRFTokenPredicate.test_phash": "PASSED",
    "Test_CheckCSRFTokenPredicate.test_text": "PASSED",
    "TestHeaderPredicate.test___call___false": "PASSED",
    "TestHeaderPredicate.test___call___false_withregex": "PASSED",
    "TestHeaderPredicate.test___call___true_exists": "PASSED",
    "TestHeaderPredicate.test___call___true_withregex": "PASSED",
    "TestHeaderPredicate.test___call___true_withval": "PASSED",
    "TestHeaderPredicate.test_phash_exists": "PASSED",
    "TestHeaderPredicate.test_phash_withregex": "PASSED",
    "TestHeaderPredicate.test_phash_withval": "PASSED",
    "TestHeaderPredicate.test_text_exists": "PASSED",
    "TestHeaderPredicate.test_text_withregex": "PASSED",
    "TestHeaderPredicate.test_text_withval": "PASSED",
    "Test_PhysicalPathPredicate.test_it_call_False": "PASSED",
    "Test_PhysicalPathPredicate.test_it_call_context_has_no_name": "PASSED",
    "Test_PhysicalPathPredicate.test_it_call_val_list_True": "PASSED",
    "Test_PhysicalPathPredicate.test_it_call_val_str_True": "PASSED",
    "Test_PhysicalPathPredicate.test_it_call_val_tuple_True": "PASSED",
    "Test_PhysicalPathPredicate.test_phash": "PASSED",
    "Test_PhysicalPathPredicate.test_text": "PASSED",
    "Test_EffectivePrincipalsPredicate.test_it_call_authentication_policy_doesnt_provide_superset": "PASSED",
    "Test_EffectivePrincipalsPredicate.test_it_call_authentication_policy_provides_superset": "PASSED",
    "Test_EffectivePrincipalsPredicate.test_it_call_authentication_policy_provides_superset_implicit": "PASSED",
    "Test_EffectivePrincipalsPredicate.test_it_call_no_authentication_policy": "PASSED",
    "Test_EffectivePrincipalsPredicate.test_phash": "PASSED",
    "Test_EffectivePrincipalsPredicate.test_text": "PASSED",
    "Test_EffectivePrincipalsPredicate.test_text_noniter": "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_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_custom_predicates": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_factory": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_factory_dottedname": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_header": "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_route_prefix": "PASSED",
    "RoutesConfiguratorMixinTests.test_add_route_with_static": "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_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",
    "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_dottedname": "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_dottedname": "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_distinct": "PASSED",
    "TestTweensConfiguratorMixin.test_add_tweens_names_with_over_nonstringoriter": "PASSED",
    "TestTweensConfiguratorMixin.test_add_tweens_names_with_under_nonstringoriter": "PASSED",
    "TestTweensConfiguratorMixin.test_add_tweens_names_with_underover": "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",
    "TestPredicateList.test_custom_predicates_can_affect_traversal": "PASSED",
    "TestPredicateList.test_different_custom_predicates_with_same_hash": "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_text_is_correct": "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_takes_one_arg.test_function_annotations": "PASSED",
    "Test_takes_one_arg.test_function_defaultargs_firstname_not_request": "PASSED",
    "Test_takes_one_arg.test_function_defaultargs_firstname_request": "PASSED",
    "Test_takes_one_arg.test_function_noargs": "PASSED",
    "Test_takes_one_arg.test_function_onearg_named_request": "PASSED",
    "Test_takes_one_arg.test_function_onearg_named_somethingelse": "PASSED",
    "Test_takes_one_arg.test_function_toomanyargs": "PASSED",
    "Test_takes_one_arg.test_function_with_attr_false": "PASSED",
    "Test_takes_one_arg.test_function_with_attr_true": "PASSED",
    "Test_takes_one_arg.test_instance_defaultargs_firstname_not_request": "PASSED",
    "Test_takes_one_arg.test_instance_defaultargs_firstname_request": "PASSED",
    "Test_takes_one_arg.test_instance_defaultargs_onearg_named_request": "PASSED",
    "Test_takes_one_arg.test_instance_defaultargs_onearg_named_somethingelse": "PASSED",
    "Test_takes_one_arg.test_instance_nocall": "PASSED",
    "Test_takes_one_arg.test_instance_toomanyargs": "PASSED",
    "Test_takes_one_arg.test_method_onearg_named_request": "PASSED",
    "Test_takes_one_arg.test_newstyle_class_init_defaultargs_firstname_not_request": "PASSED",
    "Test_takes_one_arg.test_newstyle_class_init_defaultargs_firstname_request": "PASSED",
    "Test_takes_one_arg.test_newstyle_class_init_firstname_request_with_secondname": "PASSED",
    "Test_takes_one_arg.test_newstyle_class_init_noargs": "PASSED",
    "Test_takes_one_arg.test_newstyle_class_init_onearg_named_somethingelse": "PASSED",
    "Test_takes_one_arg.test_oldstyle_class_init_defaultargs_firstname_not_request": "PASSED",
    "Test_takes_one_arg.test_oldstyle_class_init_defaultargs_firstname_request": "PASSED",
    "Test_takes_one_arg.test_oldstyle_class_init_noargs": "PASSED",
    "Test_takes_one_arg.test_oldstyle_class_init_onearg_named_request": "PASSED",
    "Test_takes_one_arg.test_oldstyle_class_init_onearg_named_somethingelse": "PASSED",
    "Test_takes_one_arg.test_oldstyle_class_init_toomanyargs": "PASSED",
    "Test_takes_one_arg.test_oldstyle_class_no_init": "PASSED",
    "Test_takes_one_arg.test_requestonly_newstyle_class_init_onearg_named_request": "PASSED",
    "Test_takes_one_arg.test_requestonly_newstyle_class_init_toomanyargs": "PASSED",
    "Test_takes_one_arg.test_requestonly_newstyle_class_no_init": "PASSED",
    "TestNotted.test_it_with_phash_val": "PASSED",
    "TestNotted.test_it_without_phash_val": "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_exception_view_with_view_defaults": "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_forbidden_view_with_view_defaults": "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_notfound_view_with_view_defaults": "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_dottedname": "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_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_dottedname": "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_check_csrf_predicates_match": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_containment_dottedname": "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_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_view_defaults": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_view_defaults_viewname_is_dottedname_kwarg": "PASSED",
    "TestViewsConfigurationMixin.test_add_view_with_view_defaults_viewname_is_dottedname_nonkwarg": "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_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_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",
    "TestPCreateCommand.test_confirm_override_conflicting_name": "PASSED",
    "TestPCreateCommand.test_force_override_conflicting_name": "PASSED",
    "TestPCreateCommand.test_force_override_site_name": "PASSED",
    "TestPCreateCommand.test_known_scaffold_absolute_path": "PASSED",
    "TestPCreateCommand.test_known_scaffold_multiple_rendered": "PASSED",
    "TestPCreateCommand.test_known_scaffold_single_rendered": "PASSED",
    "TestPCreateCommand.test_known_scaffold_with_path_as_project_target_rendered": "PASSED",
    "TestPCreateCommand.test_no_project_name": "PASSED",
    "TestPCreateCommand.test_run_no_scaffold_name": "PASSED",
    "TestPCreateCommand.test_run_no_scaffold_no_args": "PASSED",
    "TestPCreateCommand.test_run_show_scaffolds_exist": "PASSED",
    "TestPCreateCommand.test_run_show_scaffolds_none_exist": "PASSED",
    "TestPCreateCommand.test_scaffold_with_dev_pyramid_long_version": "PASSED",
    "TestPCreateCommand.test_scaffold_with_dev_pyramid_version": "PASSED",
    "TestPCreateCommand.test_scaffold_with_hyphen_in_project_name": "PASSED",
    "TestPCreateCommand.test_scaffold_with_package_name": "PASSED",
    "TestPCreateCommand.test_scaffold_with_prod_pyramid_long_version": "PASSED",
    "TestPCreateCommand.test_scaffold_with_prod_pyramid_unparsable_version": "PASSED",
    "TestPCreateCommand.test_scaffold_with_prod_pyramid_version": "PASSED",
    "TestPCreateCommand.test_unknown_scaffold_name": "PASSED",
    "Test_main.test_it": "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_two_args": "PASSED",
    "TestPRequestCommand.test_command_w_basic_auth": "PASSED",
    "TestPRequestCommand.test_command_with_query_string": "PASSED",
    "TestPRoutesCommand.test__get_mapper": "PASSED",
    "TestPRoutesCommand.test_bad_args": "PASSED",
    "TestPRoutesCommand.test_bad_format": "PASSED",
    "TestPRoutesCommand.test_class_view": "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_multiview_registered": "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_get_options_no_command": "PASSED",
    "TestPServeCommand.test_parse_vars_bad": "PASSED",
    "TestPServeCommand.test_parse_vars_good": "PASSED",
    "TestPServeCommand.test_run_no_args": "PASSED",
    "TestLazyWriter.test_flush": "PASSED",
    "TestLazyWriter.test_open": "PASSED",
    "TestLazyWriter.test_write": "PASSED",
    "TestLazyWriter.test_writeline": "PASSED",
    "Test__methodwrapper.test___call__fail": "PASSED",
    "Test__methodwrapper.test___call__succeed": "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_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_multi_view_nested": "PASSED",
    "TestPViewsCommand.test_views_command_multiview": "PASSED",
    "TestPViewsCommand.test_views_command_multiview_with_permission": "PASSED",
    "TestPViewsCommand.test_views_command_multiview_with_predicates": "PASSED",
    "TestPViewsCommand.test_views_command_not_found": "PASSED",
    "TestPViewsCommand.test_views_command_not_found_url_starts_without_slash": "PASSED",
    "TestPViewsCommand.test_views_command_single_view_route": "PASSED",
    "TestPViewsCommand.test_views_command_single_view_route_with_route_predicates": "PASSED",
    "TestPViewsCommand.test_views_command_single_view_traversal": "PASSED",
    "TestPViewsCommand.test_views_command_single_view_traversal_with_permission": "PASSED",
    "TestPViewsCommand.test_views_command_single_view_traversal_with_predicates": "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",
    "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_multiple_specs": "FAILED",
    "TestI18NConfiguratorMixin.test_add_translation_dirs_multiple_specs_multiple_calls": "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_scan_integration_conflict": "FAILED",
    "ConfiguratorTests.test_setup_registry_debug_logger_None_default": "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",
    "TestViewsConfigurationMixin.test_add_static_view_package_here_relative": "FAILED",
    "TestViewsConfigurationMixin.test_add_view_with_template_renderer": "FAILED",
    "TestViewsConfigurationMixin.test_add_view_with_template_renderer_no_callable": "FAILED",
    "TestStaticURLInfo.test_generate_url_cachebust_with_overrides": "FAILED",
    "Test_view_description.test_without_text": "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_one_view_registered": "FAILED",
    "TestPRoutesCommand.test_view_glob": "FAILED",
    "TestPRoutesCommand.test_view_request_method_not_post": "FAILED",
    "TestPViewsCommand.test_views_command_single_view_function_traversal": "FAILED"
}
diff --git a/pyramid/config/settings.py b/pyramid/config/settings.py
index 5684f1867..26eb48951 100644
--- a/pyramid/config/settings.py
+++ b/pyramid/config/settings.py
@@ -4,7 +4,7 @@ from pyramid.settings import asbool, aslist
 
 class SettingsConfiguratorMixin(object):
     def _set_settings(self, mapping):
-        if not mapping:
+        if mapping is None:
             mapping = {}
         settings = Settings(mapping)
         self.registry.settings = settings

{"pyramid/config/settings.py": "import os\n\nfrom pyramid.settings import asbool, aslist\n\nclass SettingsConfiguratorMixin(object):\n    def _set_settings(self, mapping):\n        if not mapping:\n            mapping = {}\n        settings = Settings(mapping)\n        self.registry.settings = settings\n        return settings\n\n    def add_settings(self, settings=None, **kw):\n        \"\"\"Augment the :term:`deployment settings` with one or more\n        key/value pairs.\n\n        You may pass a dictionary::\n\n           config.add_settings({'external_uri':'http://example.com'})\n\n        Or a set of key/value pairs::\n\n           config.add_settings(external_uri='http://example.com')\n\n        This function is useful when you need to test code that accesses the\n        :attr:`pyramid.registry.Registry.settings` API (or the\n        :meth:`pyramid.config.Configurator.get_settings` API) and\n        which uses values from that API.\n        \"\"\"\n        if settings is None:\n            settings = {}\n        utility = self.registry.settings\n        if utility is None:\n            utility = self._set_settings(settings)\n        utility.update(settings)\n        utility.update(kw)\n\n    def get_settings(self):\n        \"\"\"\n        Return a :term:`deployment settings` object for the current\n        application.  A deployment settings object is a dictionary-like\n        object that contains key/value pairs based on the dictionary passed\n        as the ``settings`` argument to the\n        :class:`pyramid.config.Configurator` constructor.\n\n        .. note:: the :attr:`pyramid.registry.Registry.settings` API\n           performs the same duty.\n           \"\"\"\n        return self.registry.settings\n\n\ndef Settings(d=None, _environ_=os.environ, **kw):\n    \"\"\" Deployment settings.  Update application settings (usually\n    from PasteDeploy keywords) with framework-specific key/value pairs\n    (e.g. find ``PYRAMID_DEBUG_AUTHORIZATION`` in os.environ and jam into\n    keyword args).\"\"\"\n    if d is None:\n        d = {}\n    d.update(**kw)\n\n    eget = _environ_.get\n    def expand_key(key):\n        keys = [key]\n        if not key.startswith('pyramid.'):\n            keys.append('pyramid.' + key)\n        return keys\n    def S(settings_key, env_key=None, type_=str, default=False):\n        value = default\n        keys = expand_key(settings_key)\n        for key in keys:\n            value = d.get(key, value)\n        if env_key:\n            value = eget(env_key, value)\n        value = type_(value)\n        d.update({k: value for k in keys})\n    def O(settings_key, override_key):\n        for key in expand_key(settings_key):\n            d[key] = d[key] or d[override_key]\n\n    S('debug_all', 'PYRAMID_DEBUG_ALL', asbool)\n    S('debug_authorization', 'PYRAMID_DEBUG_AUTHORIZATION', asbool)\n    O('debug_authorization', 'debug_all')\n    S('debug_notfound', 'PYRAMID_DEBUG_NOTFOUND', asbool)\n    O('debug_notfound', 'debug_all')\n    S('debug_routematch', 'PYRAMID_DEBUG_ROUTEMATCH', asbool)\n    O('debug_routematch', 'debug_all')\n    S('debug_templates', 'PYRAMID_DEBUG_TEMPLATES', asbool)\n    O('debug_templates', 'debug_all')\n\n    S('reload_all', 'PYRAMID_RELOAD_ALL', asbool)\n    S('reload_templates', 'PYRAMID_RELOAD_TEMPLATES', asbool)\n    O('reload_templates', 'reload_all')\n    S('reload_assets', 'PYRAMID_RELOAD_ASSETS', asbool)\n    O('reload_assets', 'reload_all')\n    S('reload_resources', 'PYRAMID_RELOAD_RESOURCES', asbool)\n    O('reload_resources', 'reload_all')\n    # reload_resources is an older alias for reload_assets\n    for k in expand_key('reload_assets') + expand_key('reload_resources'):\n        d[k] = d['reload_assets'] or d['reload_resources']\n\n    S('default_locale_name', 'PYRAMID_DEFAULT_LOCALE_NAME', str, 'en')\n    S('prevent_http_cache', 'PYRAMID_PREVENT_HTTP_CACHE', asbool)\n    S('prevent_cachebust', 'PYRAMID_PREVENT_CACHEBUST', asbool)\n    S('csrf_trusted_origins', 'PYRAMID_CSRF_TRUSTED_ORIGINS', aslist, [])\n\n    return d\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:** SettingsConfigurator Fails to Preserve Original Settings Dictionary When Mapping is Empty

**Description:**
When initializing the settings with an empty mapping, the original settings dictionary is not preserved. This results in default settings not being applied as expected.

**Example Code:**
```python
config = Configurator()
dummy = {}
settings = config._set_settings(dummy)
# Expected: 'settings' should reference the original 'dummy' dictionary with 'pyramid.debug_all' set to False
```

**Expected Behavior:**
The `settings` object should be the same as the original `dummy` dictionary, and it should include the default setting `'pyramid.debug_all': False`.

**Actual Behavior:**
A new empty dictionary is created instead of using the original `dummy` dictionary. As a result, the default setting `'pyramid.debug_all'` is not applied to the original dictionary, leading to potential configuration issues.
[/ISSUE]
--- END ISSUE ---

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

--- BEGIN FILE ---
```
### pyramid/config/settings.py
import os

from pyramid.settings import asbool, aslist

class SettingsConfiguratorMixin(object):
    def _set_settings(self, mapping):
        if not mapping:
            mapping = {}
        settings = Settings(mapping)
        self.registry.settings = settings
        return settings

    def add_settings(self, settings=None, **kw):
        """Augment the :term:`deployment settings` with one or more
        key/value pairs.

        You may pass a dictionary::

           config.add_settings({'external_uri':'http://example.com'})

        Or a set of key/value pairs::

           config.add_settings(external_uri='http://example.com')

        This function is useful when you need to test code that accesses the
        :attr:`pyramid.registry.Registry.settings` API (or the
        :meth:`pyramid.config.Configurator.get_settings` API) and
        which uses values from that API.
        """
        if settings is None:
            settings = {}
        utility = self.registry.settings
        if utility is None:
            utility = self._set_settings(settings)
        utility.update(settings)
        utility.update(kw)

    def get_settings(self):
        """
        Return a :term:`deployment settings` object for the current
        application.  A deployment settings object is a dictionary-like
        object that contains key/value pairs based on the dictionary passed
        as the ``settings`` argument to the
        :class:`pyramid.config.Configurator` constructor.

        .. note:: the :attr:`pyramid.registry.Registry.settings` API
           performs the same duty.
           """
        return self.registry.settings


def Settings(d=None, _environ_=os.environ, **kw):
    """ Deployment settings.  Update application settings (usually
    from PasteDeploy keywords) with framework-specific key/value pairs
    (e.g. find ``PYRAMID_DEBUG_AUTHORIZATION`` in os.environ and jam into
    keyword args)."""
    if d is None:
        d = {}
    d.update(**kw)

    eget = _environ_.get
    def expand_key(key):
        keys = [key]
        if not key.startswith('pyramid.'):
            keys.append('pyramid.' + key)
        return keys
    def S(settings_key, env_key=None, type_=str, default=False):
        value = default
        keys = expand_key(settings_key)
        for key in keys:
            value = d.get(key, value)
        if env_key:
            value = eget(env_key, value)
        value = type_(value)
        d.update({k: value for k in keys})
    def O(settings_key, override_key):
        for key in expand_key(settings_key):
            d[key] = d[key] or d[override_key]

    S('debug_all', 'PYRAMID_DEBUG_ALL', asbool)
    S('debug_authorization', 'PYRAMID_DEBUG_AUTHORIZATION', asbool)
    O('debug_authorization', 'debug_all')
    S('debug_notfound', 'PYRAMID_DEBUG_NOTFOUND', asbool)
    O('debug_notfound', 'debug_all')
    S('debug_routematch', 'PYRAMID_DEBUG_ROUTEMATCH', asbool)
    O('debug_routematch', 'debug_all')
    S('debug_templates', 'PYRAMID_DEBUG_TEMPLATES', asbool)
    O('debug_templates', 'debug_all')

    S('reload_all', 'PYRAMID_RELOAD_ALL', asbool)
    S('reload_templates', 'PYRAMID_RELOAD_TEMPLATES', asbool)
    O('reload_templates', 'reload_all')
    S('reload_assets', 'PYRAMID_RELOAD_ASSETS', asbool)
    O('reload_assets', 'reload_all')
    S('reload_resources', 'PYRAMID_RELOAD_RESOURCES', asbool)
    O('reload_resources', 'reload_all')
    # reload_resources is an older alias for reload_assets
    for k in expand_key('reload_assets') + expand_key('reload_resources'):
        d[k] = d['reload_assets'] or d['reload_resources']

    S('default_locale_name', 'PYRAMID_DEFAULT_LOCALE_NAME', str, 'en')
    S('prevent_http_cache', 'PYRAMID_PREVENT_HTTP_CACHE', asbool)
    S('prevent_cachebust', 'PYRAMID_PREVENT_CACHEBUST', asbool)
    S('csrf_trusted_origins', 'PYRAMID_CSRF_TRUSTED_ORIGINS', aslist, [])

    return d

```
--- 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