diff options
| author | Juliusz Gonera <jgonera@gmail.com> | 2011-04-19 11:29:40 +0200 |
|---|---|---|
| committer | Juliusz Gonera <jgonera@gmail.com> | 2011-04-19 11:29:40 +0200 |
| commit | e099a08f680c96afb931842ed15003626611dd7a (patch) | |
| tree | abe55237dee442ef43edd4c7886f7cec570ba7f4 | |
| parent | e39ddf10c908d176915da23a6bd209e46815d3c0 (diff) | |
| parent | 6717ccbcd7f481e2a15c4ba318ccf6d63a1b7649 (diff) | |
| download | pyramid-e099a08f680c96afb931842ed15003626611dd7a.tar.gz pyramid-e099a08f680c96afb931842ed15003626611dd7a.tar.bz2 pyramid-e099a08f680c96afb931842ed15003626611dd7a.zip | |
Merge branch 'master' of git://github.com/Pylons/pyramid
31 files changed, 748 insertions, 442 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 15ec0d8e0..95387b03b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -28,6 +28,14 @@ Documentation Features -------- +- Accessing the ``response`` attribute of a ``pyramid.request.Request`` + object (e.g. ``request.response`` within a view) now produces a new + ``pyramid.response.Response`` object. This feature is meant to be used + mainly when a view configured with a renderer needs to set response + attributes, but it can be used by any code to produce a response object + (although the response object produced must still be returned unless a + renderer is used). + - Integers and longs passed as ``elements`` to ``pyramid.url.resource_url`` or ``pyramid.request.Request.resource_url`` e.g. ``resource_url(context, request, 1, 2)`` (``1`` and ``2`` are the ``elements``) will now be @@ -124,6 +132,47 @@ Bug Fixes - Redirects issued by a static view did not take into account any existing ``SCRIPT_NAME`` (such as one set by a url mapping composite). Now they do. +Deprecations +------------ + +- Deprecated all assignments to ``request.response_*`` attributes (for + example ``request.response_content_type = 'foo'`` is now deprecated). + Assignments and mutations of assignable request attributes that were + considered by the framework for response influence are now deprecated: + ``response_content_type``, ``response_headerlist``, ``response_status``, + ``response_charset``, and ``response_cache_for``. Instead of assigning + these to the request object for later detection by the rendering machinery, + users should use the appropriate API of the Response object created by + accessing ``request.response`` (e.g. code which does + ``request.response_content_type = 'abc'`` should be changed to + ``request.response.content_type = 'abc'``). + +Behavior Changes +---------------- + +- A custom request factory is now required to return a response object that + has a ``response`` attribute (or "reified"/lazy property) if they the + request is meant to be used in a view that uses a renderer. This + ``response`` attribute should be an instance of the class + ``pyramid.response.Response``. + +- The JSON and string renderer factories now assign to + ``request.response.content_type`` rather than + ``request.response_content_type``. Each renderer factory determines + whether it should change the content type of the response by comparing the + response's content type against the response's default content type; if the + content type is not the default content type (usually ``text/html``), the + renderer changes the content type (to ``application/json`` or + ``text/plain`` for JSON and string renderers respectively). + +Dependencies +------------ + +- Pyramid now depends on WebOb >= 1.0.2 as tests depend on the bugfix in that + release: "Fix handling of WSGI environs with missing ``SCRIPT_NAME``". + (Note that in reality, everyone should probably be using 1.0.4 or better + though, as WebOb 1.0.2 and 1.0.3 were effectively brownbag releases.) + 1.0 (2011-01-30) ================ @@ -24,11 +24,6 @@ Should-Have - translationdir ZCML directive use of ``path_spec`` should maybe die. -- Provide a response_set_cookie method on the request for rendered responses - that can be used as input to response.set_cookie? Or maybe accessing - ``request.response`` creates a Response, and you do - ``request.response.set_cookie(...)``. - - Fix message catalog extraction / compilation documentation. - Review http://alexmarandon.com/articles/zodb_bfg_pyramid_notes . @@ -36,6 +31,9 @@ Should-Have Nice-to-Have ------------ +- Response.RequestClass should probably be pyramid.request.Request but this + may imply actually subclassing webob.Response + - Consider per-form_id CSRF instead of per-session global CSRF token. - Better "Extending" chapter. diff --git a/docs/api/request.rst b/docs/api/request.rst index d17441c0a..91bf0b858 100644 --- a/docs/api/request.rst +++ b/docs/api/request.rst @@ -85,6 +85,41 @@ of ``request.exception`` will be ``None`` within response and finished callbacks. + .. attribute:: response + + This attribute is actually a "reified" property which returns an + instance of the :class:`pyramid.response.Response` class. The response + object returned does not exist until this attribute is accessed. Once + it is accessed, subsequent accesses to this request object will return + the same :class:`~pyramid.response.Response` object. + + The ``request.response`` API can is used by renderers. A render obtains + the response object it will return from a view that uses that renderer + by accessing ``request.response``. Therefore, it's possible to use the + ``request.response`` API to set up a response object with "the right" + attributes (e.g. by calling ``request.response.set_cookie(...)`` or + ``request.response.content_type = 'text/plain'``, etc) within a view + that uses a renderer. For example, within a view that uses a + :term:`renderer`:: + + response = request.response + response.set_cookie('mycookie', 'mine, all mine!') + return {'text':'Value that will be used by the renderer'} + + Mutations to this response object will be preserved in the response sent + to the client after rendering. + + Non-renderer code can also make use of request.response instead of + creating a response "by hand". For example, in view code:: + + response = request.response + response.body = 'Hello!' + response.content_type = 'text/plain' + return response + + Note that the response in this circumstance is not "global"; it still + must be returned from the view code if a renderer is not used. + .. attribute:: session If a :term:`session factory` has been configured, this attribute @@ -127,10 +162,18 @@ .. attribute:: response_* + .. warning:: As of Pyramid 1.1, assignment to ``response_*`` attrs are + deprecated. Assigning to one will cause a deprecation warning to be + emitted. Instead of assigning ``response_*`` attributes to the + request, use the API of the :class:`pyramid.response.Response` + object exposed as ``request.response`` to influence response + behavior. + You can set attributes on a :class:`pyramid.request.Request` which will influence the behavor of *rendered* responses (views which use a :term:`renderer` and which don't directly return a response). These attributes begin with ``response_``, such as ``response_headerlist``. If you need to influence response values from a view that uses a renderer (such as the status code, a header, the content type, etc) see, - :ref:`response_request_attrs`. + :ref:`response_prefixed_attrs`. + diff --git a/docs/narr/renderers.rst b/docs/narr/renderers.rst index 0b7cdb834..c3533648b 100644 --- a/docs/narr/renderers.rst +++ b/docs/narr/renderers.rst @@ -92,8 +92,8 @@ will be employed. return HTTPFound(location='http://example.com') # any renderer avoided Views which use a renderer can vary non-body response attributes (such as -headers and the HTTP status code) by attaching properties to the request. -See :ref:`response_request_attrs`. +headers and the HTTP status code) by attaching a property to the +``request.response`` attribute See :ref:`request_response_attr`. Additional renderers can be added by developers to the system as necessary (see :ref:`adding_and_overriding_renderers`). @@ -147,7 +147,8 @@ representing the ``str()`` serialization of the return value: {'content': 'Hello!'} Views which use the string renderer can vary non-body response attributes by -attaching properties to the request. See :ref:`response_request_attrs`. +using the API of the ``request.response`` attribute. See +:ref:`request_response_attr`. .. index:: pair: renderer; JSON @@ -199,7 +200,8 @@ You can configure a view to use the JSON renderer by naming ``json`` as the Views which use the JSON renderer can vary non-body response attributes by -attaching properties to the request. See :ref:`response_request_attrs`. +using the api of the ``request.response`` attribute. See +:ref:`request_response_attr`. .. index:: pair: renderer; chameleon @@ -269,8 +271,9 @@ Here's an example view configuration which uses a Chameleon text renderer: context='myproject.resources.Hello', renderer='myproject:templates/foo.txt') -Views which use a Chameleon renderer can vary response attributes by -attaching properties to the request. See :ref:`response_request_attrs`. +Views which use a Chameleon renderer can vary response attributes by using +the API of the ``request.response`` attribute. See +:ref:`request_response_attr`. .. index:: pair: renderer; mako @@ -333,7 +336,7 @@ additional :ref:`mako_template_renderer_settings`. single: response headers (from a renderer) single: renderer response headers -.. _response_request_attrs: +.. _request_response_attr: Varying Attributes of Rendered Responses ---------------------------------------- @@ -342,9 +345,43 @@ Before a response constructed by a :term:`renderer` is returned to :app:`Pyramid`, several attributes of the request are examined which have the potential to influence response behavior. -View callables that don't directly return a response should set these -attributes on the ``request`` object via ``setattr`` during their execution, -to influence associated response attributes. +View callables that don't directly return a response should use the API of +the :class:`pyramid.response.Response` attribute available as +``request.response`` during their execution, to influence associated response +behavior. + +For example, if you need to change the response status from within a view +callable that uses a renderer, assign the ``status`` attribute to the +``response`` attribute of the request before returning a result: + +.. code-block:: python + :linenos: + + from pyramid.view import view_config + + @view_config(name='gone', renderer='templates/gone.pt') + def myview(request): + request.response.status = '404 Not Found' + return {'URL':request.URL} + +For more information on attributes of the request, see the API documentation +in :ref:`request_module`. For more information on the API of +``request.response``, see :class:`pyramid.response.Response`. + +.. _response_prefixed_attrs: + +Deprecated Mechanism to Vary Attributes of Rendered Responses +------------------------------------------------------------- + +.. warning:: This section describes behavior deprecated in Pyramid 1.1. + +In previous releases of Pyramid (1.0 and before), the ``request.response`` +attribute did not exist. Instead, Pyramid required users to set special +``response_`` -prefixed attributes of the request to influence response +behavior. As of Pyramid 1.1, those request attributes are deprecated and +their use will cause a deprecation warning to be issued when used. Until +their existence is removed completely, we document them below, for benefit of +people with older code bases. ``response_content_type`` Defines the content-type of the resulting response, @@ -367,23 +404,6 @@ to influence associated response attributes. returning various values in the ``response_headerlist``, this is purely a convenience. -For example, if you need to change the response status from within a view -callable that uses a renderer, assign the ``response_status`` attribute to -the request before returning a result: - -.. code-block:: python - :linenos: - - from pyramid.view import view_config - - @view_config(name='gone', renderer='templates/gone.pt') - def myview(request): - request.response_status = '404 Not Found' - return {'URL':request.URL} - -For more information on attributes of the request, see the API -documentation in :ref:`request_module`. - .. index:: single: renderer (adding) diff --git a/docs/narr/templates.rst b/docs/narr/templates.rst index 426ec229b..150b173e3 100644 --- a/docs/narr/templates.rst +++ b/docs/narr/templates.rst @@ -367,13 +367,13 @@ templates as renderers. See :ref:`available_template_system_bindings`. render a view without needing to fork your code to do so. See :ref:`extending_chapter` for more information. -By default, views rendered via a template renderer return a -:term:`Response` object which has a *status code* of ``200 OK``, and a -*content-type* of ``text/html``. To vary attributes of the response -of a view that uses a renderer, such as the content-type, headers, or -status attributes, you must set attributes on the *request* object -within the view before returning the dictionary. See -:ref:`response_request_attrs` for more information. +By default, views rendered via a template renderer return a :term:`Response` +object which has a *status code* of ``200 OK``, and a *content-type* of +``text/html``. To vary attributes of the response of a view that uses a +renderer, such as the content-type, headers, or status attributes, you must +use the API of the :class:`pyramid.response.Response` object exposed as +``request.response`` within the view before returning the dictionary. See +:ref:`request_response_attr` for more information. The same set of system values are provided to templates rendered via a renderer view configuration as those provided to templates rendered diff --git a/pyramid/renderers.py b/pyramid/renderers.py index c8771709a..a6dce9b3a 100644 --- a/pyramid/renderers.py +++ b/pyramid/renderers.py @@ -1,6 +1,7 @@ import os import pkg_resources import threading +import warnings from zope.interface import implements @@ -134,8 +135,10 @@ def json_renderer_factory(info): def _render(value, system): request = system.get('request') if request is not None: - if not hasattr(request, 'response_content_type'): - request.response_content_type = 'application/json' + response = request.response + ct = response.content_type + if ct == response.default_content_type: + response.content_type = 'application/json' return json.dumps(value) return _render @@ -145,8 +148,10 @@ def string_renderer_factory(info): value = str(value) request = system.get('request') if request is not None: - if not hasattr(request, 'response_content_type'): - request.response_content_type = 'text/plain' + response = request.response + ct = response.content_type + if ct == response.default_content_type: + response.content_type = 'text/plain' return value return _render @@ -344,29 +349,54 @@ class RendererHelper(object): return self._make_response(result, request) def _make_response(self, result, request): - registry = self.registry - response_factory = registry.queryUtility(IResponseFactory, - default=Response) + response = getattr(request, 'response', None) + if response is None: + # request is None or request is not a pyramid.response.Response + registry = self.registry + response_factory = registry.queryUtility(IResponseFactory, + default=Response) + + response = response_factory() - response = response_factory(result) + if result is None: + result = '' + + if isinstance(result, unicode): + response.unicode_body = result + else: + response.body = result if request is not None: + # deprecated mechanism to set up request.response_* attrs attrs = request.__dict__ content_type = attrs.get('response_content_type', None) if content_type is not None: response.content_type = content_type + deprecate_req_attr('Setting', 'content_type', + 'set', 'content_type') headerlist = attrs.get('response_headerlist', None) if headerlist is not None: for k, v in headerlist: response.headers.add(k, v) + deprecate_req_attr('Setting or mutating', 'headerlist', + 'set or mutate', 'headerlist') status = attrs.get('response_status', None) if status is not None: response.status = status + deprecate_req_attr('Setting', 'status', 'set', 'status') charset = attrs.get('response_charset', None) if charset is not None: response.charset = charset + deprecate_req_attr('Setting', 'charset', 'set', 'charset') cache_for = attrs.get('response_cache_for', None) if cache_for is not None: response.cache_expires = cache_for + deprecate_req_attr('Setting', 'cache_for', + 'set', 'cache_expires') return response + +def deprecate_req_attr(*args): + depwarn = ('%s "request.response_%s" is deprecated as of Pyramid 1.1; %s ' + '"request.response.%s" instead.') + warnings.warn(depwarn % args, DeprecationWarning, 3) diff --git a/pyramid/request.py b/pyramid/request.py index b607f159f..9d2b9344b 100644 --- a/pyramid/request.py +++ b/pyramid/request.py @@ -5,9 +5,11 @@ from webob import Request as WebobRequest from pyramid.interfaces import IRequest from pyramid.interfaces import ISessionFactory +from pyramid.interfaces import IResponseFactory from pyramid.exceptions import ConfigurationError from pyramid.decorator import reify +from pyramid.response import Response from pyramid.url import resource_url from pyramid.url import route_url from pyramid.url import static_url @@ -298,6 +300,26 @@ class Request(WebobRequest): """ return route_path(route_name, self, *elements, **kw) + @reify + def response(self): + """This attribute is actually a "reified" property which returns an + instance of the :class:`pyramid.response.Response`. class. The + response object returned does not exist until this attribute is + accessed. Once it is accessed, subsequent accesses will return the + same Response object. + + The ``request.response`` API is used by renderers. A render obtains + the response object it will return from a view that uses that renderer + by accessing ``request.response``. Therefore, it's possible to use the + ``request.response`` API to set up a response object with "the + right" attributes (e.g. by calling ``request.response.set_cookie()``) + within a view that uses a renderer. Mutations to this response object + will be preserved in the response sent to the client.""" + registry = self.registry + response_factory = registry.queryUtility(IResponseFactory, + default=Response) + return response_factory() + # override default WebOb "environ['adhoc_attr']" mutation behavior __getattr__ = object.__getattribute__ __setattr__ = object.__setattr__ diff --git a/pyramid/testing.py b/pyramid/testing.py index a98807a19..36cc38830 100644 --- a/pyramid/testing.py +++ b/pyramid/testing.py @@ -9,12 +9,14 @@ from zope.interface import Interface from zope.interface import alsoProvides from pyramid.interfaces import IRequest +from pyramid.interfaces import IResponseFactory from pyramid.interfaces import ISecuredView from pyramid.interfaces import IView from pyramid.interfaces import IViewClassifier from pyramid.interfaces import ISession from pyramid.config import Configurator +from pyramid.decorator import reify from pyramid.exceptions import Forbidden from pyramid.response import Response from pyramid.registry import Registry @@ -653,6 +655,8 @@ class DummyRequest(object): response_callbacks = () charset = 'UTF-8' script_name = '' + _registry = None + def __init__(self, params=None, environ=None, headers=None, path='/', cookies=None, post=None, **kw): if environ is None: @@ -698,9 +702,23 @@ class DummyRequest(object): self.response_callbacks = [] self.response_callbacks.append(callback) - @property - def registry(self): - return get_current_registry() + def _get_registry(self): + if self._registry is None: + return get_current_registry() + return self._registry + + def _set_registry(self, registry): + self._registry = registry + + def _del_registry(self): + self._registry = None + + registry = property(_get_registry, _set_registry, _del_registry) + + @reify + def response(self): + f = self.registry.queryUtility(IResponseFactory, default=Response) + return f() def setUp(registry=None, request=None, hook_zca=True, autocommit=True, settings=None): diff --git a/pyramid/tests/test_asset.py b/pyramid/tests/test_asset.py index 4a93b14a0..1bd855cdb 100644 --- a/pyramid/tests/test_asset.py +++ b/pyramid/tests/test_asset.py @@ -74,7 +74,7 @@ class TestOverrideProvider(unittest.TestCase): import pyramid.tests provider = self._makeOne(pyramid.tests) result = provider.resource_listdir(resource_name) - self.failUnless(result) + self.assertTrue(result) def test_get_resource_filename_override_returns_None(self): overrides = DummyOverrides(None) @@ -137,7 +137,7 @@ class TestOverrideProvider(unittest.TestCase): import pyramid.tests provider = self._makeOne(pyramid.tests) result = provider.resource_listdir(resource_name) - self.failUnless(result) + self.assertTrue(result) def test_get_resource_filename_override_returns_value(self): overrides = DummyOverrides('value') @@ -371,7 +371,7 @@ class TestPackageOverrides(unittest.TestCase): package = DummyPackage('package') po = self._makeOne(package) po.overrides= overrides - self.failUnless(po.listdir('whatever')) + self.assertTrue(po.listdir('whatever')) def test_listdir_doesnt_exist(self): overrides = [ DummyOverride(None), DummyOverride( diff --git a/pyramid/tests/test_authentication.py b/pyramid/tests/test_authentication.py index 1d2b939b7..ecd76a71c 100644 --- a/pyramid/tests/test_authentication.py +++ b/pyramid/tests/test_authentication.py @@ -470,7 +470,7 @@ class TestAuthTktCookieHelper(unittest.TestCase): plugin.now = now + 1 request = self._makeRequest({'HTTP_COOKIE':'auth_tkt=bogus'}) result = plugin.identify(request) - self.failUnless(result) + self.assertTrue(result) self.assertEqual(len(request.callbacks), 1) response = DummyResponse() request.callbacks[0](None, response) @@ -486,7 +486,7 @@ class TestAuthTktCookieHelper(unittest.TestCase): request = self._makeRequest({'HTTP_COOKIE':'auth_tkt=bogus'}) request._authtkt_reissued = True result = plugin.identify(request) - self.failUnless(result) + self.assertTrue(result) self.assertEqual(len(request.callbacks), 0) def test_identify_cookie_reissue_notyet(self): @@ -497,7 +497,7 @@ class TestAuthTktCookieHelper(unittest.TestCase): plugin.now = now + 1 request = self._makeRequest({'HTTP_COOKIE':'auth_tkt=bogus'}) result = plugin.identify(request) - self.failUnless(result) + self.assertTrue(result) self.assertEqual(len(request.callbacks), 0) def test_identify_cookie_reissue_with_tokens_default(self): @@ -510,13 +510,13 @@ class TestAuthTktCookieHelper(unittest.TestCase): plugin.now = now + 1 request = self._makeRequest({'HTTP_COOKIE':'auth_tkt=bogus'}) result = plugin.identify(request) - self.failUnless(result) + self.assertTrue(result) self.assertEqual(len(request.callbacks), 1) response = DummyResponse() request.callbacks[0](None, response) self.assertEqual(len(response.headerlist), 3) self.assertEqual(response.headerlist[0][0], 'Set-Cookie') - self.failUnless("'tokens': []" in response.headerlist[0][1]) + self.assertTrue("'tokens': []" in response.headerlist[0][1]) def test_remember(self): plugin = self._makeOne('secret') @@ -525,16 +525,16 @@ class TestAuthTktCookieHelper(unittest.TestCase): self.assertEqual(len(result), 3) self.assertEqual(result[0][0], 'Set-Cookie') - self.failUnless(result[0][1].endswith('; Path=/')) - self.failUnless(result[0][1].startswith('auth_tkt=')) + self.assertTrue(result[0][1].endswith('; Path=/')) + self.assertTrue(result[0][1].startswith('auth_tkt=')) self.assertEqual(result[1][0], 'Set-Cookie') - self.failUnless(result[1][1].endswith('; Path=/; Domain=localhost')) - self.failUnless(result[1][1].startswith('auth_tkt=')) + self.assertTrue(result[1][1].endswith('; Path=/; Domain=localhost')) + self.assertTrue(result[1][1].startswith('auth_tkt=')) self.assertEqual(result[2][0], 'Set-Cookie') - self.failUnless(result[2][1].endswith('; Path=/; Domain=.localhost')) - self.failUnless(result[2][1].startswith('auth_tkt=')) + self.assertTrue(result[2][1].endswith('; Path=/; Domain=.localhost')) + self.assertTrue(result[2][1].startswith('auth_tkt=')) def test_remember_include_ip(self): plugin = self._makeOne('secret', include_ip=True) @@ -543,16 +543,16 @@ class TestAuthTktCookieHelper(unittest.TestCase): self.assertEqual(len(result), 3) self.assertEqual(result[0][0], 'Set-Cookie') - self.failUnless(result[0][1].endswith('; Path=/')) - self.failUnless(result[0][1].startswith('auth_tkt=')) + self.assertTrue(result[0][1].endswith('; Path=/')) + self.assertTrue(result[0][1].startswith('auth_tkt=')) self.assertEqual(result[1][0], 'Set-Cookie') - self.failUnless(result[1][1].endswith('; Path=/; Domain=localhost')) - self.failUnless(result[1][1].startswith('auth_tkt=')) + self.assertTrue(result[1][1].endswith('; Path=/; Domain=localhost')) + self.assertTrue(result[1][1].startswith('auth_tkt=')) self.assertEqual(result[2][0], 'Set-Cookie') - self.failUnless(result[2][1].endswith('; Path=/; Domain=.localhost')) - self.failUnless(result[2][1].startswith('auth_tkt=')) + self.assertTrue(result[2][1].endswith('; Path=/; Domain=.localhost')) + self.assertTrue(result[2][1].startswith('auth_tkt=')) def test_remember_path(self): plugin = self._makeOne('secret', include_ip=True, @@ -562,18 +562,18 @@ class TestAuthTktCookieHelper(unittest.TestCase): self.assertEqual(len(result), 3) self.assertEqual(result[0][0], 'Set-Cookie') - self.failUnless(result[0][1].endswith('; Path=/cgi-bin/app.cgi/')) - self.failUnless(result[0][1].startswith('auth_tkt=')) + self.assertTrue(result[0][1].endswith('; Path=/cgi-bin/app.cgi/')) + self.assertTrue(result[0][1].startswith('auth_tkt=')) self.assertEqual(result[1][0], 'Set-Cookie') - self.failUnless(result[1][1].endswith( + self.assertTrue(result[1][1].endswith( '; Path=/cgi-bin/app.cgi/; Domain=localhost')) - self.failUnless(result[1][1].startswith('auth_tkt=')) + self.assertTrue(result[1][1].startswith('auth_tkt=')) self.assertEqual(result[2][0], 'Set-Cookie') - self.failUnless(result[2][1].endswith( + self.assertTrue(result[2][1].endswith( '; Path=/cgi-bin/app.cgi/; Domain=.localhost')) - self.failUnless(result[2][1].startswith('auth_tkt=')) + self.assertTrue(result[2][1].startswith('auth_tkt=')) def test_remember_http_only(self): plugin = self._makeOne('secret', include_ip=True, http_only=True) @@ -582,16 +582,16 @@ class TestAuthTktCookieHelper(unittest.TestCase): self.assertEqual(len(result), 3) self.assertEqual(result[0][0], 'Set-Cookie') - self.failUnless(result[0][1].endswith('; HttpOnly')) - self.failUnless(result[0][1].startswith('auth_tkt=')) + self.assertTrue(result[0][1].endswith('; HttpOnly')) + self.assertTrue(result[0][1].startswith('auth_tkt=')) self.assertEqual(result[1][0], 'Set-Cookie') - self.failUnless(result[1][1].endswith('; HttpOnly')) - self.failUnless(result[1][1].startswith('auth_tkt=')) + self.assertTrue(result[1][1].endswith('; HttpOnly')) + self.assertTrue(result[1][1].startswith('auth_tkt=')) self.assertEqual(result[2][0], 'Set-Cookie') - self.failUnless(result[2][1].endswith('; HttpOnly')) - self.failUnless(result[2][1].startswith('auth_tkt=')) + self.assertTrue(result[2][1].endswith('; HttpOnly')) + self.assertTrue(result[2][1].startswith('auth_tkt=')) def test_remember_secure(self): plugin = self._makeOne('secret', include_ip=True, secure=True) @@ -600,16 +600,16 @@ class TestAuthTktCookieHelper(unittest.TestCase): self.assertEqual(len(result), 3) self.assertEqual(result[0][0], 'Set-Cookie') - self.failUnless('; Secure' in result[0][1]) - self.failUnless(result[0][1].startswith('auth_tkt=')) + self.assertTrue('; Secure' in result[0][1]) + self.assertTrue(result[0][1].startswith('auth_tkt=')) self.assertEqual(result[1][0], 'Set-Cookie') - self.failUnless('; Secure' in result[1][1]) - self.failUnless(result[1][1].startswith('auth_tkt=')) + self.assertTrue('; Secure' in result[1][1]) + self.assertTrue(result[1][1].startswith('auth_tkt=')) self.assertEqual(result[2][0], 'Set-Cookie') - self.failUnless('; Secure' in result[2][1]) - self.failUnless(result[2][1].startswith('auth_tkt=')) + self.assertTrue('; Secure' in result[2][1]) + self.assertTrue(result[2][1].startswith('auth_tkt=')) def test_remember_wild_domain_disabled(self): plugin = self._makeOne('secret', wild_domain=False) @@ -619,11 +619,11 @@ class TestAuthTktCookieHelper(unittest.TestCase): self.assertEqual(result[0][0], 'Set-Cookie') self.assertTrue(result[0][1].endswith('; Path=/')) - self.failUnless(result[0][1].startswith('auth_tkt=')) + self.assertTrue(result[0][1].startswith('auth_tkt=')) self.assertEqual(result[1][0], 'Set-Cookie') self.assertTrue(result[1][1].endswith('; Path=/; Domain=localhost')) - self.failUnless(result[1][1].startswith('auth_tkt=')) + self.assertTrue(result[1][1].startswith('auth_tkt=')) def test_remember_domain_has_port(self): plugin = self._makeOne('secret', wild_domain=False) @@ -634,11 +634,11 @@ class TestAuthTktCookieHelper(unittest.TestCase): self.assertEqual(result[0][0], 'Set-Cookie') self.assertTrue(result[0][1].endswith('; Path=/')) - self.failUnless(result[0][1].startswith('auth_tkt=')) + self.assertTrue(result[0][1].startswith('auth_tkt=')) self.assertEqual(result[1][0], 'Set-Cookie') self.assertTrue(result[1][1].endswith('; Path=/; Domain=example.com')) - self.failUnless(result[1][1].startswith('auth_tkt=')) + self.assertTrue(result[1][1].startswith('auth_tkt=')) def test_remember_string_userid(self): plugin = self._makeOne('secret') @@ -690,7 +690,7 @@ class TestAuthTktCookieHelper(unittest.TestCase): values = self._parseHeaders(result) self.assertEqual(len(result), 3) value = values[0] - self.failUnless('userid' in value.value) + self.assertTrue('userid' in value.value) def test_remember_max_age(self): plugin = self._makeOne('secret') @@ -700,7 +700,7 @@ class TestAuthTktCookieHelper(unittest.TestCase): self.assertEqual(len(result), 3) self.assertEqual(values[0]['max-age'], '500') - self.failUnless(values[0]['expires']) + self.assertTrue(values[0]['expires']) def test_remember_tokens(self): plugin = self._makeOne('secret') @@ -709,13 +709,13 @@ class TestAuthTktCookieHelper(unittest.TestCase): self.assertEqual(len(result), 3) self.assertEqual(result[0][0], 'Set-Cookie') - self.failUnless("'tokens': ('foo', 'bar')" in result[0][1]) + self.assertTrue("'tokens': ('foo', 'bar')" in result[0][1]) self.assertEqual(result[1][0], 'Set-Cookie') - self.failUnless("'tokens': ('foo', 'bar')" in result[1][1]) + self.assertTrue("'tokens': ('foo', 'bar')" in result[1][1]) self.assertEqual(result[2][0], 'Set-Cookie') - self.failUnless("'tokens': ('foo', 'bar')" in result[2][1]) + self.assertTrue("'tokens': ('foo', 'bar')" in result[2][1]) def test_remember_non_string_token(self): plugin = self._makeOne('secret') diff --git a/pyramid/tests/test_chameleon_text.py b/pyramid/tests/test_chameleon_text.py index dcc4f8344..213f25f51 100644 --- a/pyramid/tests/test_chameleon_text.py +++ b/pyramid/tests/test_chameleon_text.py @@ -49,7 +49,7 @@ class TextTemplateRendererTests(Base, unittest.TestCase): minimal = self._getTemplatePath('minimal.txt') lookup = DummyLookup() instance = self._makeOne(minimal, lookup) - self.failIf('template' in instance.__dict__) + self.assertFalse('template' in instance.__dict__) template = instance.template self.assertEqual(template, instance.__dict__['template']) @@ -58,7 +58,7 @@ class TextTemplateRendererTests(Base, unittest.TestCase): minimal = self._getTemplatePath('minimal.txt') lookup = DummyLookup() instance = self._makeOne(minimal, lookup) - self.failIf('template' in instance.__dict__) + self.assertFalse('template' in instance.__dict__) template = instance.template self.assertEqual(template.translate, lookup.translate) @@ -68,7 +68,7 @@ class TextTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() lookup.debug = True instance = self._makeOne(minimal, lookup) - self.failIf('template' in instance.__dict__) + self.assertFalse('template' in instance.__dict__) template = instance.template self.assertEqual(template.debug, True) @@ -78,7 +78,7 @@ class TextTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() lookup.auto_reload = True instance = self._makeOne(minimal, lookup) - self.failIf('template' in instance.__dict__) + self.assertFalse('template' in instance.__dict__) template = instance.template self.assertEqual(template.auto_reload, True) @@ -88,7 +88,7 @@ class TextTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() lookup.auto_reload = False instance = self._makeOne(minimal, lookup) - self.failIf('template' in instance.__dict__) + self.assertFalse('template' in instance.__dict__) template = instance.template self.assertEqual(template.auto_reload, False) @@ -98,7 +98,7 @@ class TextTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() instance = self._makeOne(minimal, lookup) result = instance({}, {}) - self.failUnless(isinstance(result, str)) + self.assertTrue(isinstance(result, str)) self.assertEqual(result, 'Hello.\n') @skip_on('java') @@ -114,7 +114,7 @@ class TextTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() instance = self._makeOne(nonminimal, lookup) result = instance({'name':'Chris'}, {}) - self.failUnless(isinstance(result, str)) + self.assertTrue(isinstance(result, str)) self.assertEqual(result, 'Hello, Chris!\n') @skip_on('java') @@ -123,7 +123,7 @@ class TextTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() instance = self._makeOne(minimal, lookup) result = instance.implementation()() - self.failUnless(isinstance(result, str)) + self.assertTrue(isinstance(result, str)) self.assertEqual(result, 'Hello.\n') class RenderTemplateTests(Base, unittest.TestCase): @@ -135,7 +135,7 @@ class RenderTemplateTests(Base, unittest.TestCase): def test_it(self): minimal = self._getTemplatePath('minimal.txt') result = self._callFUT(minimal) - self.failUnless(isinstance(result, str)) + self.assertTrue(isinstance(result, str)) self.assertEqual(result, 'Hello.\n') class RenderTemplateToResponseTests(Base, unittest.TestCase): @@ -148,7 +148,7 @@ class RenderTemplateToResponseTests(Base, unittest.TestCase): minimal = self._getTemplatePath('minimal.txt') result = self._callFUT(minimal) from webob import Response - self.failUnless(isinstance(result, Response)) + self.assertTrue(isinstance(result, Response)) self.assertEqual(result.app_iter, ['Hello.\n']) self.assertEqual(result.status, '200 OK') self.assertEqual(len(result.headerlist), 2) @@ -162,7 +162,7 @@ class RenderTemplateToResponseTests(Base, unittest.TestCase): self._registerUtility(Response2, IResponseFactory) minimal = self._getTemplatePath('minimal.txt') result = self._callFUT(minimal) - self.failUnless(isinstance(result, Response2)) + self.assertTrue(isinstance(result, Response2)) class GetRendererTests(Base, unittest.TestCase): def _callFUT(self, name): @@ -180,7 +180,7 @@ class GetRendererTests(Base, unittest.TestCase): return renderer self._registerUtility(rf, IRendererFactory, name='foo') result = self._callFUT('foo') - self.failUnless(result is renderer) + self.assertTrue(result is renderer) class GetTemplateTests(Base, unittest.TestCase): def _callFUT(self, name): @@ -199,7 +199,7 @@ class GetTemplateTests(Base, unittest.TestCase): return renderer self._registerUtility(rf, IRendererFactory, name='foo') result = self._callFUT('foo') - self.failUnless(result is renderer.template) + self.assertTrue(result is renderer.template) class DummyLookup(object): auto_reload=True diff --git a/pyramid/tests/test_chameleon_zpt.py b/pyramid/tests/test_chameleon_zpt.py index 9bdb47776..84eaedcf4 100644 --- a/pyramid/tests/test_chameleon_zpt.py +++ b/pyramid/tests/test_chameleon_zpt.py @@ -51,7 +51,7 @@ class ZPTTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() instance = self._makeOne(minimal, lookup) result = instance({}, {}) - self.failUnless(isinstance(result, unicode)) + self.assertTrue(isinstance(result, unicode)) self.assertEqual(result.rstrip('\n'), '<div xmlns="http://www.w3.org/1999/xhtml">\n</div>') @@ -60,7 +60,7 @@ class ZPTTemplateRendererTests(Base, unittest.TestCase): minimal = self._getTemplatePath('minimal.pt') lookup = DummyLookup() instance = self._makeOne(minimal, lookup) - self.failIf('template' in instance.__dict__) + self.assertFalse('template' in instance.__dict__) template = instance.template self.assertEqual(template, instance.__dict__['template']) @@ -69,7 +69,7 @@ class ZPTTemplateRendererTests(Base, unittest.TestCase): minimal = self._getTemplatePath('minimal.pt') lookup = DummyLookup() instance = self._makeOne(minimal, lookup) - self.failIf('template' in instance.__dict__) + self.assertFalse('template' in instance.__dict__) template = instance.template self.assertEqual(template.translate, lookup.translate) @@ -79,7 +79,7 @@ class ZPTTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() lookup.debug = True instance = self._makeOne(minimal, lookup) - self.failIf('template' in instance.__dict__) + self.assertFalse('template' in instance.__dict__) template = instance.template self.assertEqual(template.debug, True) @@ -89,7 +89,7 @@ class ZPTTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() lookup.debug = False instance = self._makeOne(minimal, lookup) - self.failIf('template' in instance.__dict__) + self.assertFalse('template' in instance.__dict__) template = instance.template self.assertEqual(template.debug, False) @@ -99,7 +99,7 @@ class ZPTTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() lookup.auto_reload = True instance = self._makeOne(minimal, lookup) - self.failIf('template' in instance.__dict__) + self.assertFalse('template' in instance.__dict__) template = instance.template self.assertEqual(template.auto_reload, True) @@ -109,7 +109,7 @@ class ZPTTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() lookup.auto_reload = False instance = self._makeOne(minimal, lookup) - self.failIf('template' in instance.__dict__) + self.assertFalse('template' in instance.__dict__) template = instance.template self.assertEqual(template.auto_reload, False) @@ -126,7 +126,7 @@ class ZPTTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() instance = self._makeOne(minimal, lookup) result = instance.implementation()() - self.failUnless(isinstance(result, unicode)) + self.assertTrue(isinstance(result, unicode)) self.assertEqual(result.rstrip('\n'), '<div xmlns="http://www.w3.org/1999/xhtml">\n</div>') @@ -140,7 +140,7 @@ class RenderTemplateTests(Base, unittest.TestCase): def test_it(self): minimal = self._getTemplatePath('minimal.pt') result = self._callFUT(minimal) - self.failUnless(isinstance(result, unicode)) + self.assertTrue(isinstance(result, unicode)) self.assertEqual(result.rstrip('\n'), '<div xmlns="http://www.w3.org/1999/xhtml">\n</div>') @@ -154,7 +154,7 @@ class RenderTemplateToResponseTests(Base, unittest.TestCase): minimal = self._getTemplatePath('minimal.pt') result = self._callFUT(minimal) from webob import Response - self.failUnless(isinstance(result, Response)) + self.assertTrue(isinstance(result, Response)) self.assertEqual(result.app_iter[0].rstrip('\n'), '<div xmlns="http://www.w3.org/1999/xhtml">\n</div>') self.assertEqual(result.status, '200 OK') @@ -169,7 +169,7 @@ class RenderTemplateToResponseTests(Base, unittest.TestCase): self._registerUtility(Response2, IResponseFactory) minimal = self._getTemplatePath('minimal.pt') result = self._callFUT(minimal) - self.failUnless(isinstance(result, Response2)) + self.assertTrue(isinstance(result, Response2)) class GetRendererTests(Base, unittest.TestCase): def _callFUT(self, name): @@ -187,7 +187,7 @@ class GetRendererTests(Base, unittest.TestCase): return renderer self._registerUtility(rf, IRendererFactory, name='foo') result = self._callFUT('foo') - self.failUnless(result is renderer) + self.assertTrue(result is renderer) class GetTemplateTests(Base, unittest.TestCase): def _callFUT(self, name): @@ -206,7 +206,7 @@ class GetTemplateTests(Base, unittest.TestCase): return renderer self._registerUtility(rf, IRendererFactory, name='foo') result = self._callFUT('foo') - self.failUnless(result is renderer.template) + self.assertTrue(result is renderer.template) class DummyLookup(object): auto_reload=True diff --git a/pyramid/tests/test_config.py b/pyramid/tests/test_config.py index d2ff65878..5818f248b 100644 --- a/pyramid/tests/test_config.py +++ b/pyramid/tests/test_config.py @@ -75,20 +75,20 @@ class ConfiguratorTests(unittest.TestCase): from pyramid.interfaces import IRendererFactory config = Configurator() this_pkg = sys.modules['pyramid.tests'] - self.failUnless(config.registry.getUtility(ISettings)) + self.assertTrue(config.registry.getUtility(ISettings)) self.assertEqual(config.package, this_pkg) - self.failUnless(config.registry.getUtility(IRendererFactory, 'json')) - self.failUnless(config.registry.getUtility(IRendererFactory, 'string')) + self.assertTrue(config.registry.getUtility(IRendererFactory, 'json')) + self.assertTrue(config.registry.getUtility(IRendererFactory, 'string')) if not __pypy__: - self.failUnless(config.registry.getUtility(IRendererFactory, '.pt')) - self.failUnless(config.registry.getUtility(IRendererFactory,'.txt')) - self.failUnless(config.registry.getUtility(IRendererFactory, '.mak')) - self.failUnless(config.registry.getUtility(IRendererFactory, '.mako')) + self.assertTrue(config.registry.getUtility(IRendererFactory, '.pt')) + self.assertTrue(config.registry.getUtility(IRendererFactory,'.txt')) + self.assertTrue(config.registry.getUtility(IRendererFactory, '.mak')) + self.assertTrue(config.registry.getUtility(IRendererFactory, '.mako')) def test__set_settings_as_None(self): config = self._makeOne() settings = config._set_settings(None) - self.failUnless(settings) + self.assertTrue(settings) def test__set_settings_as_dictwithvalues(self): config = self._makeOne() @@ -171,7 +171,7 @@ class ConfiguratorTests(unittest.TestCase): def test_ctor_no_root_factory(self): from pyramid.interfaces import IRootFactory config = self._makeOne() - self.failUnless(config.registry.getUtility(IRootFactory)) + self.assertTrue(config.registry.getUtility(IRootFactory)) def test_ctor_alternate_renderers(self): from pyramid.interfaces import IRendererFactory @@ -390,7 +390,7 @@ class ConfiguratorTests(unittest.TestCase): reg = Registry() config = self._makeOne(reg) config.setup_registry() - self.failUnless(reg.getUtility(IRootFactory)) + self.assertTrue(reg.getUtility(IRootFactory)) def test_setup_registry_dottedname_root_factory(self): from pyramid.registry import Registry @@ -591,9 +591,9 @@ class ConfiguratorTests(unittest.TestCase): self.assertEqual(app.__class__, Router) self.assertEqual(manager.pushed['registry'], config.registry) self.assertEqual(manager.pushed['request'], None) - self.failUnless(manager.popped) + self.assertTrue(manager.popped) self.assertEqual(len(subscriber), 1) - self.failUnless(IApplicationCreated.providedBy(subscriber[0])) + self.assertTrue(IApplicationCreated.providedBy(subscriber[0])) def test_include_with_dotted_name(self): from pyramid import tests @@ -610,7 +610,7 @@ class ConfiguratorTests(unittest.TestCase): ) self.assertEqual(context_after.basepath, None) self.assertEqual(context_after.includepath, ()) - self.failUnless(context_after is context_before) + self.assertTrue(context_after is context_before) def test_include_with_python_callable(self): from pyramid import tests @@ -627,7 +627,7 @@ class ConfiguratorTests(unittest.TestCase): ) self.assertEqual(context_after.basepath, None) self.assertEqual(context_after.includepath, ()) - self.failUnless(context_after is context_before) + self.assertTrue(context_after is context_before) def test_include_with_module_defaults_to_includeme(self): from pyramid import tests @@ -644,7 +644,7 @@ class ConfiguratorTests(unittest.TestCase): ) self.assertEqual(context_after.basepath, None) self.assertEqual(context_after.includepath, ()) - self.failUnless(context_after is context_before) + self.assertTrue(context_after is context_before) def test_with_context(self): config = self._makeOne() @@ -683,7 +683,7 @@ class ConfiguratorTests(unittest.TestCase): self._registerRenderer(config, name='dummy') config.add_view(renderer='dummy') view = self._getViewCallable(config) - self.failUnless('Hello!' in view(None, None).body) + self.assertTrue('Hello!' in view(None, None).body) def test_add_view_wrapped_view_is_decorated(self): def view(request): # request-only wrapper @@ -729,7 +729,7 @@ class ConfiguratorTests(unittest.TestCase): config = self._makeOne(autocommit=True) config.add_view(view=view, decorator=view_wrapper) wrapper = self._getViewCallable(config) - self.failIf(wrapper is view) + self.assertFalse(wrapper is view) self.assertEqual(wrapper.__doc__, view.__doc__) result = wrapper(None, None) self.assertEqual(result, 'OK') @@ -900,7 +900,7 @@ class ConfiguratorTests(unittest.TestCase): return 'OK' config.add_view(view=newview, xhr=True) wrapper = self._getViewCallable(config) - self.failIf(IMultiView.providedBy(wrapper)) + self.assertFalse(IMultiView.providedBy(wrapper)) request = DummyRequest() request.is_xhr = True self.assertEqual(wrapper(None, request), 'OK') @@ -926,7 +926,7 @@ class ConfiguratorTests(unittest.TestCase): config.add_view(view=newview, xhr=True, context=RuntimeError) wrapper = self._getViewCallable( config, ctx_iface=implementedBy(RuntimeError), exception_view=True) - self.failIf(IMultiView.providedBy(wrapper)) + self.assertFalse(IMultiView.providedBy(wrapper)) request = DummyRequest() request.is_xhr = True self.assertEqual(wrapper(None, request), 'OK') @@ -945,7 +945,7 @@ class ConfiguratorTests(unittest.TestCase): return 'OK' config.add_view(view=newview) wrapper = self._getViewCallable(config) - self.failIf(IMultiView.providedBy(wrapper)) + self.assertFalse(IMultiView.providedBy(wrapper)) request = DummyRequest() request.is_xhr = True self.assertEqual(wrapper(None, request), 'OK') @@ -967,7 +967,7 @@ class ConfiguratorTests(unittest.TestCase): config.add_view(view=newview, context=RuntimeError) wrapper = self._getViewCallable( config, ctx_iface=implementedBy(RuntimeError), exception_view=True) - self.failIf(IMultiView.providedBy(wrapper)) + self.assertFalse(IMultiView.providedBy(wrapper)) request = DummyRequest() request.is_xhr = True self.assertEqual(wrapper(None, request), 'OK') @@ -988,7 +988,7 @@ class ConfiguratorTests(unittest.TestCase): return 'OK' config.add_view(view=newview) wrapper = self._getViewCallable(config) - self.failIf(IMultiView.providedBy(wrapper)) + self.assertFalse(IMultiView.providedBy(wrapper)) request = DummyRequest() request.is_xhr = True self.assertEqual(wrapper(None, request), 'OK') @@ -1012,7 +1012,7 @@ class ConfiguratorTests(unittest.TestCase): config.add_view(view=newview, context=RuntimeError) wrapper = self._getViewCallable( config, ctx_iface=implementedBy(RuntimeError), exception_view=True) - self.failIf(IMultiView.providedBy(wrapper)) + self.assertFalse(IMultiView.providedBy(wrapper)) request = DummyRequest() request.is_xhr = True self.assertEqual(wrapper(None, request), 'OK') @@ -1030,7 +1030,7 @@ class ConfiguratorTests(unittest.TestCase): view, (IViewClassifier, IRequest, Interface), IView, name='') config.add_view(view=view) wrapper = self._getViewCallable(config) - self.failUnless(IMultiView.providedBy(wrapper)) + self.assertTrue(IMultiView.providedBy(wrapper)) self.assertEqual(wrapper(None, None), 'OK') def test_add_view_exc_multiview_replaces_existing_view(self): @@ -1054,7 +1054,7 @@ class ConfiguratorTests(unittest.TestCase): config.add_view(view=view, context=RuntimeError) wrapper = self._getViewCallable( config, ctx_iface=implementedBy(RuntimeError), exception_view=True) - self.failUnless(IMultiView.providedBy(wrapper)) + self.assertTrue(IMultiView.providedBy(wrapper)) self.assertEqual(wrapper(None, None), 'OK') def test_add_view_multiview_replaces_existing_securedview(self): @@ -1071,7 +1071,7 @@ class ConfiguratorTests(unittest.TestCase): ISecuredView, name='') config.add_view(view=view) wrapper = self._getViewCallable(config) - self.failUnless(IMultiView.providedBy(wrapper)) + self.assertTrue(IMultiView.providedBy(wrapper)) self.assertEqual(wrapper(None, None), 'OK') def test_add_view_exc_multiview_replaces_existing_securedview(self): @@ -1095,7 +1095,7 @@ class ConfiguratorTests(unittest.TestCase): config.add_view(view=view, context=RuntimeError) wrapper = self._getViewCallable( config, ctx_iface=implementedBy(RuntimeError), exception_view=True) - self.failUnless(IMultiView.providedBy(wrapper)) + self.assertTrue(IMultiView.providedBy(wrapper)) self.assertEqual(wrapper(None, None), 'OK') def test_add_view_with_accept_multiview_replaces_existing_view(self): @@ -1113,7 +1113,7 @@ class ConfiguratorTests(unittest.TestCase): view, (IViewClassifier, IRequest, Interface), IView, name='') config.add_view(view=view2, accept='text/html') wrapper = self._getViewCallable(config) - self.failUnless(IMultiView.providedBy(wrapper)) + self.assertTrue(IMultiView.providedBy(wrapper)) self.assertEqual(len(wrapper.views), 1) self.assertEqual(len(wrapper.media_views), 1) self.assertEqual(wrapper(None, None), 'OK') @@ -1144,7 +1144,7 @@ class ConfiguratorTests(unittest.TestCase): config.add_view(view=view2, accept='text/html', context=RuntimeError) wrapper = self._getViewCallable( config, ctx_iface=implementedBy(RuntimeError), exception_view=True) - self.failUnless(IMultiView.providedBy(wrapper)) + self.assertTrue(IMultiView.providedBy(wrapper)) self.assertEqual(len(wrapper.views), 1) self.assertEqual(len(wrapper.media_views), 1) self.assertEqual(wrapper(None, None), 'OK') @@ -1169,7 +1169,7 @@ class ConfiguratorTests(unittest.TestCase): view, (IViewClassifier, IRequest, Interface), IView, name='') config.add_view(view=view2) wrapper = self._getViewCallable(config) - self.failUnless(IMultiView.providedBy(wrapper)) + self.assertTrue(IMultiView.providedBy(wrapper)) self.assertEqual(len(wrapper.views), 1) self.assertEqual(len(wrapper.media_views), 1) self.assertEqual(wrapper(None, None), 'OK2') @@ -1202,7 +1202,7 @@ class ConfiguratorTests(unittest.TestCase): config.add_view(view=view2, context=RuntimeError) wrapper = self._getViewCallable( config, ctx_iface=implementedBy(RuntimeError), exception_view=True) - self.failUnless(IMultiView.providedBy(wrapper)) + self.assertTrue(IMultiView.providedBy(wrapper)) self.assertEqual(len(wrapper.views), 1) self.assertEqual(len(wrapper.media_views), 1) self.assertEqual(wrapper(None, None), 'OK2') @@ -1223,7 +1223,7 @@ class ConfiguratorTests(unittest.TestCase): view2 = lambda *arg: 'OK2' config.add_view(view=view2) wrapper = self._getViewCallable(config) - self.failUnless(IMultiView.providedBy(wrapper)) + self.assertTrue(IMultiView.providedBy(wrapper)) self.assertEqual([x[:2] for x in wrapper.views], [(view2, None)]) self.assertEqual(wrapper(None, None), 'OK1') @@ -1247,7 +1247,7 @@ class ConfiguratorTests(unittest.TestCase): config.add_view(view=view2, context=RuntimeError) wrapper = self._getViewCallable( config, ctx_iface=implementedBy(RuntimeError), exception_view=True) - self.failUnless(IMultiView.providedBy(wrapper)) + self.assertTrue(IMultiView.providedBy(wrapper)) self.assertEqual([x[:2] for x in wrapper.views], [(view2, None)]) self.assertEqual(wrapper(None, None), 'OK1') @@ -1268,10 +1268,10 @@ class ConfiguratorTests(unittest.TestCase): view, (IViewClassifier, IRequest, ISuper), IView, name='') config.add_view(view=view2, for_=ISub) wrapper = self._getViewCallable(config, ISuper, IRequest) - self.failIf(IMultiView.providedBy(wrapper)) + self.assertFalse(IMultiView.providedBy(wrapper)) self.assertEqual(wrapper(None, None), 'OK') wrapper = self._getViewCallable(config, ISub, IRequest) - self.failIf(IMultiView.providedBy(wrapper)) + self.assertFalse(IMultiView.providedBy(wrapper)) self.assertEqual(wrapper(None, None), 'OK2') def test_add_view_multiview_exception_superclass_then_subclass(self): @@ -1298,14 +1298,14 @@ class ConfiguratorTests(unittest.TestCase): wrapper_exc_view = self._getViewCallable( config, implementedBy(Super), IRequest, exception_view=True) self.assertEqual(wrapper_exc_view, wrapper) - self.failIf(IMultiView.providedBy(wrapper_exc_view)) + self.assertFalse(IMultiView.providedBy(wrapper_exc_view)) self.assertEqual(wrapper_exc_view(None, None), 'OK') wrapper = self._getViewCallable( config, implementedBy(Sub), IRequest) wrapper_exc_view = self._getViewCallable( config, implementedBy(Sub), IRequest, exception_view=True) self.assertEqual(wrapper_exc_view, wrapper) - self.failIf(IMultiView.providedBy(wrapper_exc_view)) + self.assertFalse(IMultiView.providedBy(wrapper_exc_view)) self.assertEqual(wrapper_exc_view(None, None), 'OK2') def test_add_view_multiview_call_ordering(self): @@ -1486,9 +1486,9 @@ class ConfiguratorTests(unittest.TestCase): self.assertEqual(wrapper, None) config.add_route('foo', '/a/b') request_iface = self._getRouteRequestIface(config, 'foo') - self.failIfEqual(request_iface, None) + self.assertNotEqual(request_iface, None) wrapper = self._getViewCallable(config, request_iface=request_iface) - self.failIfEqual(wrapper, None) + self.assertNotEqual(wrapper, None) self.assertEqual(wrapper(None, None), 'OK') def test_add_view_with_route_name_deferred_views_already_exist(self): @@ -1532,11 +1532,11 @@ class ConfiguratorTests(unittest.TestCase): self.assertEqual(wrapper_exc_view, None) config.add_route('foo', '/a/b') request_iface = self._getRouteRequestIface(config, 'foo') - self.failIfEqual(request_iface, None) + self.assertNotEqual(request_iface, None) wrapper_exc_view = self._getViewCallable( config, ctx_iface=implementedBy(RuntimeError), request_iface=request_iface, exception_view=True) - self.failIfEqual(wrapper_exc_view, None) + self.assertNotEqual(wrapper_exc_view, None) wrapper = self._getViewCallable( config, ctx_iface=implementedBy(RuntimeError), request_iface=request_iface) @@ -2086,7 +2086,7 @@ class ConfiguratorTests(unittest.TestCase): request_type = self._getRouteRequestIface(config, 'name') wrapper = self._getViewCallable(config, None, request_type) self._assertRoute(config, 'name', 'path') - self.failUnless(hasattr(wrapper, '__call_permissive__')) + self.assertTrue(hasattr(wrapper, '__call_permissive__')) def test_add_route_with_view_permission_alias(self): from pyramid.interfaces import IAuthenticationPolicy @@ -2100,7 +2100,7 @@ class ConfiguratorTests(unittest.TestCase): request_type = self._getRouteRequestIface(config, 'name') wrapper = self._getViewCallable(config, None, request_type) self._assertRoute(config, 'name', 'path') - self.failUnless(hasattr(wrapper, '__call_permissive__')) + self.assertTrue(hasattr(wrapper, '__call_permissive__')) def test_add_route_no_pattern_with_path(self): config = self._makeOne(autocommit=True) @@ -2163,14 +2163,14 @@ class ConfiguratorTests(unittest.TestCase): return 'OK' config = self._makeOne() result = config.derive_view(view) - self.failIf(result is view) + self.assertFalse(result is view) self.assertEqual(result(None, None), 'OK') def test_derive_view_dottedname(self): config = self._makeOne() result = config.derive_view( 'pyramid.tests.test_config.dummy_view') - self.failIf(result is dummy_view) + self.assertFalse(result is dummy_view) self.assertEqual(result(None, None), 'OK') def test_derive_view_with_default_renderer_no_explicit_renderer(self): @@ -2184,7 +2184,7 @@ class ConfiguratorTests(unittest.TestCase): def view(request): return 'OK' result = config.derive_view(view) - self.failIf(result is view) + self.assertFalse(result is view) self.assertEqual(result(None, None).body, 'moo') def test_derive_view_with_default_renderer_with_explicit_renderer(self): @@ -2200,7 +2200,7 @@ class ConfiguratorTests(unittest.TestCase): config.add_renderer(None, moo) config.add_renderer('foo', foo) result = config.derive_view(view, renderer='foo') - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest(config) self.assertEqual(result(None, request).body, 'foo') @@ -2350,7 +2350,7 @@ class ConfiguratorTests(unittest.TestCase): result = view(None, request) finally: config.end() - self.failUnless('div' in result.body) + self.assertTrue('div' in result.body) def test_set_forbidden_view(self): from zope.interface import implementedBy @@ -2397,7 +2397,7 @@ class ConfiguratorTests(unittest.TestCase): result = view(None, request) finally: config.end() - self.failUnless('div' in result.body) + self.assertTrue('div' in result.body) def test__set_authentication_policy(self): from pyramid.interfaces import IAuthenticationPolicy @@ -2791,7 +2791,7 @@ class ConfiguratorTests(unittest.TestCase): from pyramid.interfaces import IAuthenticationPolicy from pyramid.interfaces import IAuthorizationPolicy ut = config.registry.getUtility(IAuthenticationPolicy) - self.failUnless(isinstance(ut, DummySecurityPolicy)) + self.assertTrue(isinstance(ut, DummySecurityPolicy)) ut = config.registry.getUtility(IAuthorizationPolicy) self.assertEqual(ut.userid, 'user') self.assertEqual(ut.groupids, ('group1', 'group2')) @@ -2899,7 +2899,7 @@ class ConfiguratorTests(unittest.TestCase): config = self._makeOne(autocommit=True) renderer = config.testing_add_renderer('templates/foo.pt') from pyramid.testing import DummyTemplateRenderer - self.failUnless(isinstance(renderer, DummyTemplateRenderer)) + self.assertTrue(isinstance(renderer, DummyTemplateRenderer)) from pyramid.renderers import render_to_response # must provide request to pass in registry (this is a functest) request = DummyRequest() @@ -2915,8 +2915,8 @@ class ConfiguratorTests(unittest.TestCase): renderer1 = config.testing_add_renderer('templates/foo.pt') renderer2 = config.testing_add_renderer('templates/bar.pt') from pyramid.testing import DummyTemplateRenderer - self.failUnless(isinstance(renderer1, DummyTemplateRenderer)) - self.failUnless(isinstance(renderer2, DummyTemplateRenderer)) + self.assertTrue(isinstance(renderer1, DummyTemplateRenderer)) + self.assertTrue(isinstance(renderer2, DummyTemplateRenderer)) from pyramid.renderers import render_to_response # must provide request to pass in registry (this is a functest) request = DummyRequest() @@ -2955,7 +2955,7 @@ class ConfiguratorTests(unittest.TestCase): config = self._makeOne(autocommit=True) renderer = config.testing_add_template('templates/foo.pt') from pyramid.testing import DummyTemplateRenderer - self.failUnless(isinstance(renderer, DummyTemplateRenderer)) + self.assertTrue(isinstance(renderer, DummyTemplateRenderer)) from pyramid.renderers import render_to_response # must provide request to pass in registry (this is a functest) request = DummyRequest() @@ -3102,8 +3102,8 @@ class ConfiguratorTests(unittest.TestCase): yield confinst[3] which = list(scanconflicts(why)) self.assertEqual(len(which), 4) - self.failUnless("@view_config(renderer='string')" in which) - self.failUnless("@view_config(name='two', renderer='string')" in + self.assertTrue("@view_config(renderer='string')" in which) + self.assertTrue("@view_config(name='two', renderer='string')" in which) def _conflictFunctions(self, e): @@ -3128,7 +3128,7 @@ class ConfiguratorTests(unittest.TestCase): directives = {'foo':(foo, True)} config.registry._directives = directives foo_meth = config.foo - self.failUnless(foo_meth.im_func.__docobj__ is foo) + self.assertTrue(foo_meth.im_func.__docobj__ is foo) def test___getattr__matches_no_action_wrap(self): config = self._makeOne() @@ -3136,7 +3136,7 @@ class ConfiguratorTests(unittest.TestCase): directives = {'foo':(foo, False)} config.registry._directives = directives foo_meth = config.foo - self.failUnless(foo_meth.im_func is foo) + self.assertTrue(foo_meth.im_func is foo) class TestConfigurator_add_directive(unittest.TestCase): @@ -3250,7 +3250,7 @@ class TestViewDeriver(unittest.TestCase): return 'OK' deriver = self._makeOne() result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) self.assertEqual(result(None, None), 'OK') def test_requestonly_function_with_renderer(self): @@ -3265,7 +3265,7 @@ class TestViewDeriver(unittest.TestCase): return 'OK' deriver = self._makeOne(renderer=moo()) result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() context = testing.DummyResource() self.assertEqual(result(context, request), 'moo') @@ -3283,7 +3283,7 @@ class TestViewDeriver(unittest.TestCase): self.config.add_renderer('moo', moo) deriver = self._makeOne(renderer='string') result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() request.override_renderer = 'moo' context = testing.DummyResource() @@ -3301,12 +3301,12 @@ class TestViewDeriver(unittest.TestCase): return 'OK' deriver = self._makeOne(renderer=moo()) result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() request.__view__ = 'view' context = testing.DummyResource() self.assertEqual(result(context, request), 'moo') - self.failIf(hasattr(request, '__view__')) + self.assertFalse(hasattr(request, '__view__')) def test_class_without_attr(self): class View(object): @@ -3337,8 +3337,8 @@ class TestViewDeriver(unittest.TestCase): return 'OK' deriver = self._makeOne() result = deriver(view) - self.failUnless(result is view) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertTrue(result is view) + self.assertFalse(hasattr(result, '__call_permissive__')) self.assertEqual(view(None, None), 'OK') def test_as_function_requestonly(self): @@ -3346,11 +3346,11 @@ class TestViewDeriver(unittest.TestCase): return 'OK' deriver = self._makeOne() result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) self.assertEqual(view.__module__, result.__module__) self.assertEqual(view.__doc__, result.__doc__) self.assertEqual(view.__name__, result.__name__) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertFalse(hasattr(result, '__call_permissive__')) self.assertEqual(result(None, None), 'OK') def test_as_newstyle_class_context_and_request(self): @@ -3361,11 +3361,11 @@ class TestViewDeriver(unittest.TestCase): return 'OK' deriver = self._makeOne() result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) self.assertEqual(view.__module__, result.__module__) self.assertEqual(view.__doc__, result.__doc__) self.assertEqual(view.__name__, result.__name__) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertFalse(hasattr(result, '__call_permissive__')) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') self.assertEqual(request.__view__.__class__, view) @@ -3378,11 +3378,11 @@ class TestViewDeriver(unittest.TestCase): return 'OK' deriver = self._makeOne() result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) self.assertEqual(view.__module__, result.__module__) self.assertEqual(view.__doc__, result.__doc__) self.assertEqual(view.__name__, result.__name__) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertFalse(hasattr(result, '__call_permissive__')) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') self.assertEqual(request.__view__.__class__, view) @@ -3395,11 +3395,11 @@ class TestViewDeriver(unittest.TestCase): return 'OK' deriver = self._makeOne() result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) self.assertEqual(view.__module__, result.__module__) self.assertEqual(view.__doc__, result.__doc__) self.assertEqual(view.__name__, result.__name__) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertFalse(hasattr(result, '__call_permissive__')) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') self.assertEqual(request.__view__.__class__, view) @@ -3412,11 +3412,11 @@ class TestViewDeriver(unittest.TestCase): return 'OK' deriver = self._makeOne() result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) self.assertEqual(view.__module__, result.__module__) self.assertEqual(view.__doc__, result.__doc__) self.assertEqual(view.__name__, result.__name__) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertFalse(hasattr(result, '__call_permissive__')) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') self.assertEqual(request.__view__.__class__, view) @@ -3428,8 +3428,8 @@ class TestViewDeriver(unittest.TestCase): view = View() deriver = self._makeOne() result = deriver(view) - self.failUnless(result is view) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertTrue(result is view) + self.assertFalse(hasattr(result, '__call_permissive__')) self.assertEqual(result(None, None), 'OK') def test_as_instance_requestonly(self): @@ -3439,11 +3439,11 @@ class TestViewDeriver(unittest.TestCase): view = View() deriver = self._makeOne() result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) self.assertEqual(view.__module__, result.__module__) self.assertEqual(view.__doc__, result.__doc__) - self.failUnless('instance' in result.__name__) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertTrue('instance' in result.__name__) + self.assertFalse(hasattr(result, '__call_permissive__')) self.assertEqual(result(None, None), 'OK') def test_with_debug_authorization_no_authpol(self): @@ -3456,7 +3456,7 @@ class TestViewDeriver(unittest.TestCase): self.assertEqual(view.__module__, result.__module__) self.assertEqual(view.__doc__, result.__doc__) self.assertEqual(view.__name__, result.__name__) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertFalse(hasattr(result, '__call_permissive__')) request = self._makeRequest() request.view_name = 'view_name' request.url = 'url' @@ -3479,7 +3479,7 @@ class TestViewDeriver(unittest.TestCase): self.assertEqual(view.__module__, result.__module__) self.assertEqual(view.__doc__, result.__doc__) self.assertEqual(view.__name__, result.__name__) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertFalse(hasattr(result, '__call_permissive__')) request = self._makeRequest() request.view_name = 'view_name' request.url = 'url' @@ -3502,7 +3502,7 @@ class TestViewDeriver(unittest.TestCase): self.assertEqual(view.__module__, result.__module__) self.assertEqual(view.__doc__, result.__doc__) self.assertEqual(view.__name__, result.__name__) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertFalse(hasattr(result, '__call_permissive__')) request = self._makeRequest() request.view_name = 'view_name' request.url = 'url' @@ -3524,7 +3524,7 @@ class TestViewDeriver(unittest.TestCase): self.assertEqual(view.__module__, result.__module__) self.assertEqual(view.__doc__, result.__doc__) self.assertEqual(view.__name__, result.__name__) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertFalse(hasattr(result, '__call_permissive__')) request = self._makeRequest() request.view_name = 'view_name' request.url = 'url' @@ -3624,7 +3624,7 @@ class TestViewDeriver(unittest.TestCase): self.assertEqual(view.__module__, result.__module__) self.assertEqual(view.__doc__, result.__doc__) self.assertEqual(view.__name__, result.__name__) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertFalse(hasattr(result, '__call_permissive__')) request = self._makeRequest() request.view_name = 'view_name' request.url = 'url' @@ -3645,7 +3645,7 @@ class TestViewDeriver(unittest.TestCase): self.assertEqual(view.__module__, result.__module__) self.assertEqual(view.__doc__, result.__doc__) self.assertEqual(view.__name__, result.__name__) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertFalse(hasattr(result, '__call_permissive__')) request = self._makeRequest() request.view_name = 'view_name' request.url = 'url' @@ -3662,7 +3662,7 @@ class TestViewDeriver(unittest.TestCase): self.assertEqual(view.__module__, result.__module__) self.assertEqual(view.__doc__, result.__doc__) self.assertEqual(view.__name__, result.__name__) - self.failIf(hasattr(result, '__call_permissive__')) + self.assertFalse(hasattr(result, '__call_permissive__')) request = self._makeRequest() request.view_name = 'view_name' request.url = 'url' @@ -3736,7 +3736,7 @@ class TestViewDeriver(unittest.TestCase): deriver = self._makeOne(viewname='inner', wrapper_viewname='owrap') result = deriver(inner_view) - self.failIf(result is inner_view) + self.assertFalse(result is inner_view) self.assertEqual(inner_view.__module__, result.__module__) self.assertEqual(inner_view.__doc__, result.__doc__) request = self._makeRequest() @@ -3768,7 +3768,7 @@ class TestViewDeriver(unittest.TestCase): return {'a':'1'} deriver = self._makeOne(renderer=renderer(), attr='index') result = deriver(View) - self.failIf(result is View) + self.assertFalse(result is View) self.assertEqual(result.__module__, View.__module__) self.assertEqual(result.__doc__, View.__doc__) self.assertEqual(result.__name__, View.__name__) @@ -3791,7 +3791,7 @@ class TestViewDeriver(unittest.TestCase): return {'a':'1'} deriver = self._makeOne(renderer=renderer(), attr='index') result = deriver(View) - self.failIf(result is View) + self.assertFalse(result is View) self.assertEqual(result.__module__, View.__module__) self.assertEqual(result.__doc__, View.__doc__) self.assertEqual(result.__name__, View.__name__) @@ -3814,7 +3814,7 @@ class TestViewDeriver(unittest.TestCase): return {'a':'1'} deriver = self._makeOne(renderer=renderer(), attr='index') result = deriver(View) - self.failIf(result is View) + self.assertFalse(result is View) self.assertEqual(result.__module__, View.__module__) self.assertEqual(result.__doc__, View.__doc__) self.assertEqual(result.__name__, View.__name__) @@ -3837,7 +3837,7 @@ class TestViewDeriver(unittest.TestCase): return {'a':'1'} deriver = self._makeOne(renderer=renderer(), attr='index') result = deriver(View) - self.failIf(result is View) + self.assertFalse(result is View) self.assertEqual(result.__module__, View.__module__) self.assertEqual(result.__doc__, View.__doc__) self.assertEqual(result.__name__, View.__name__) @@ -3859,7 +3859,7 @@ class TestViewDeriver(unittest.TestCase): deriver = self._makeOne(renderer=renderer(), attr='index') view = View() result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) self.assertEqual(result.__module__, view.__module__) self.assertEqual(result.__doc__, view.__doc__) request = self._makeRequest() @@ -3880,7 +3880,7 @@ class TestViewDeriver(unittest.TestCase): deriver = self._makeOne(renderer=renderer(), attr='index') view = View() result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) self.assertEqual(result.__module__, view.__module__) self.assertEqual(result.__doc__, view.__doc__) request = self._makeRequest() @@ -3898,7 +3898,7 @@ class TestViewDeriver(unittest.TestCase): def view(context, request): return 'NOTOK' deriver = self._makeOne(mapper=mapper) result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) self.assertEqual(result(None, None), 'OK') def test_with_view_mapper_view_specified(self): @@ -3913,7 +3913,7 @@ class TestViewDeriver(unittest.TestCase): view.__view_mapper__ = mapper deriver = self._makeOne() result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) self.assertEqual(result(None, None), 'OK') def test_with_view_mapper_default_mapper_specified(self): @@ -3928,7 +3928,7 @@ class TestViewDeriver(unittest.TestCase): def view(context, request): return 'NOTOK' deriver = self._makeOne() result = deriver(view) - self.failIf(result is view) + self.assertFalse(result is view) self.assertEqual(result(None, None), 'OK') def test_attr_wrapped_view_branching_default_phash(self): @@ -3968,7 +3968,7 @@ class TestDefaultViewMapper(unittest.TestCase): return 'OK' mapper = self._makeOne() result = mapper(view) - self.failUnless(result is view) + self.assertTrue(result is view) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') @@ -3977,7 +3977,7 @@ class TestDefaultViewMapper(unittest.TestCase): """ """ mapper = self._makeOne(attr='__name__') result = mapper(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() self.assertRaises(TypeError, result, None, request) @@ -3986,7 +3986,7 @@ class TestDefaultViewMapper(unittest.TestCase): return 'OK' mapper = self._makeOne() result = mapper(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') @@ -3995,7 +3995,7 @@ class TestDefaultViewMapper(unittest.TestCase): """ """ mapper = self._makeOne(attr='__name__') result = mapper(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() self.assertRaises(TypeError, result, None, request) @@ -4007,7 +4007,7 @@ class TestDefaultViewMapper(unittest.TestCase): return 'OK' mapper = self._makeOne() result = mapper(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') @@ -4019,7 +4019,7 @@ class TestDefaultViewMapper(unittest.TestCase): return 'OK' mapper = self._makeOne(attr='index') result = mapper(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') @@ -4031,7 +4031,7 @@ class TestDefaultViewMapper(unittest.TestCase): return 'OK' mapper = self._makeOne() result = mapper(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') @@ -4043,7 +4043,7 @@ class TestDefaultViewMapper(unittest.TestCase): return 'OK' mapper = self._makeOne(attr='index') result = mapper(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') @@ -4055,7 +4055,7 @@ class TestDefaultViewMapper(unittest.TestCase): return 'OK' mapper = self._makeOne() result = mapper(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') @@ -4067,7 +4067,7 @@ class TestDefaultViewMapper(unittest.TestCase): return 'OK' mapper = self._makeOne(attr='index') result = mapper(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') @@ -4079,7 +4079,7 @@ class TestDefaultViewMapper(unittest.TestCase): return 'OK' mapper = self._makeOne() result = mapper(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') @@ -4091,7 +4091,7 @@ class TestDefaultViewMapper(unittest.TestCase): return 'OK' mapper = self._makeOne(attr='index') result = mapper(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') @@ -4102,7 +4102,7 @@ class TestDefaultViewMapper(unittest.TestCase): view = View() mapper = self._makeOne() result = mapper(view) - self.failUnless(result is view) + self.assertTrue(result is view) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') @@ -4113,7 +4113,7 @@ class TestDefaultViewMapper(unittest.TestCase): view = View() mapper = self._makeOne(attr='index') result = mapper(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') @@ -4124,7 +4124,7 @@ class TestDefaultViewMapper(unittest.TestCase): view = View() mapper = self._makeOne() result = mapper(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') @@ -4135,7 +4135,7 @@ class TestDefaultViewMapper(unittest.TestCase): view = View() mapper = self._makeOne(attr='index') result = mapper(view) - self.failIf(result is view) + self.assertFalse(result is view) request = self._makeRequest() self.assertEqual(result(None, request), 'OK') @@ -4148,7 +4148,7 @@ class Test_preserve_view_attrs(unittest.TestCase): def view(context, request): """ """ result = self._callFUT(view, view) - self.failUnless(result is view) + self.assertTrue(result is view) def test_it_different_with_existing_original_view(self): def view1(context, request): pass @@ -4156,7 +4156,7 @@ class Test_preserve_view_attrs(unittest.TestCase): def view2(context, request): pass result = self._callFUT(view1, view2) self.assertEqual(result.__original_view__, 'abc') - self.failIf(result is view1) + self.assertFalse(result is view1) def test_it_different(self): class DummyView1: @@ -4187,15 +4187,15 @@ class Test_preserve_view_attrs(unittest.TestCase): view2 = DummyView2() result = self._callFUT(view2, view1) self.assertEqual(result, view1) - self.failUnless(view1.__original_view__ is view2) - self.failUnless(view1.__doc__ is view2.__doc__) - self.failUnless(view1.__module__ is view2.__module__) - self.failUnless(view1.__name__ is view2.__name__) - self.failUnless(view1.__call_permissive__.im_func is + self.assertTrue(view1.__original_view__ is view2) + self.assertTrue(view1.__doc__ is view2.__doc__) + self.assertTrue(view1.__module__ is view2.__module__) + self.assertTrue(view1.__name__ is view2.__name__) + self.assertTrue(view1.__call_permissive__.im_func is view2.__call_permissive__.im_func) - self.failUnless(view1.__permitted__.im_func is + self.assertTrue(view1.__permitted__.im_func is view2.__permitted__.im_func) - self.failUnless(view1.__predicated__.im_func is + self.assertTrue(view1.__predicated__.im_func is view2.__predicated__.im_func) class Test__make_predicates(unittest.TestCase): @@ -4206,7 +4206,7 @@ class Test__make_predicates(unittest.TestCase): def test_ordering_xhr_and_request_method_trump_only_containment(self): order1, _, _ = self._callFUT(xhr=True, request_method='GET') order2, _, _ = self._callFUT(containment=True) - self.failUnless(order1 < order2) + self.assertTrue(order1 < order2) def test_ordering_number_of_predicates(self): order1, _, _ = self._callFUT( @@ -4286,15 +4286,15 @@ class Test__make_predicates(unittest.TestCase): order11, _, _ = self._callFUT( ) self.assertEqual(order1, order2) - self.failUnless(order3 > order2) - self.failUnless(order4 > order3) - self.failUnless(order5 > order4) - self.failUnless(order6 > order5) - self.failUnless(order7 > order6) - self.failUnless(order8 > order7) - self.failUnless(order9 > order8) - self.failUnless(order10 > order9) - self.failUnless(order11 > order10) + self.assertTrue(order3 > order2) + self.assertTrue(order4 > order3) + self.assertTrue(order5 > order4) + self.assertTrue(order6 > order5) + self.assertTrue(order7 > order6) + self.assertTrue(order8 > order7) + self.assertTrue(order9 > order8) + self.assertTrue(order10 > order9) + self.assertTrue(order11 > order10) def test_ordering_importance_of_predicates(self): order1, _, _ = self._callFUT( @@ -4324,14 +4324,14 @@ class Test__make_predicates(unittest.TestCase): order9, _, _ = self._callFUT( custom=('a',), ) - self.failUnless(order1 > order2) - self.failUnless(order2 > order3) - self.failUnless(order3 > order4) - self.failUnless(order4 > order5) - self.failUnless(order5 > order6) - self.failUnless(order6 > order7) - self.failUnless(order7 > order8) - self.failUnless(order8 > order9) + self.assertTrue(order1 > order2) + self.assertTrue(order2 > order3) + self.assertTrue(order3 > order4) + self.assertTrue(order4 > order5) + self.assertTrue(order5 > order6) + self.assertTrue(order6 > order7) + self.assertTrue(order7 > order8) + self.assertTrue(order8 > order9) def test_ordering_importance_and_number(self): order1, _, _ = self._callFUT( @@ -4341,7 +4341,7 @@ class Test__make_predicates(unittest.TestCase): order2, _, _ = self._callFUT( custom=('a',), ) - self.failUnless(order1 < order2) + self.assertTrue(order1 < order2) order1, _, _ = self._callFUT( xhr='xhr', @@ -4351,7 +4351,7 @@ class Test__make_predicates(unittest.TestCase): request_method='request_method', custom=('a',), ) - self.failUnless(order1 > order2) + self.assertTrue(order1 > order2) order1, _, _ = self._callFUT( xhr='xhr', @@ -4362,7 +4362,7 @@ class Test__make_predicates(unittest.TestCase): request_method='request_method', custom=('a',), ) - self.failUnless(order1 < order2) + self.assertTrue(order1 < order2) order1, _, _ = self._callFUT( xhr='xhr', @@ -4374,7 +4374,7 @@ class Test__make_predicates(unittest.TestCase): request_method='request_method', custom=('a',), ) - self.failUnless(order1 > order2) + self.assertTrue(order1 > order2) def test_different_custom_predicates_with_same_hash(self): class PredicateWithHash(object): diff --git a/pyramid/tests/test_events.py b/pyramid/tests/test_events.py index 9f655959d..22a42758a 100644 --- a/pyramid/tests/test_events.py +++ b/pyramid/tests/test_events.py @@ -190,12 +190,12 @@ class TestBeforeRender(unittest.TestCase): def test__contains__True(self): system = {'a':1} event = self._makeOne(system) - self.failUnless('a' in event) + self.assertTrue('a' in event) def test__contains__False(self): system = {} event = self._makeOne(system) - self.failIf('a' in event) + self.assertFalse('a' in event) def test__getitem__success(self): system = {'a':1} diff --git a/pyramid/tests/test_exceptions.py b/pyramid/tests/test_exceptions.py index 15eaa8698..5d0fa1e1a 100644 --- a/pyramid/tests/test_exceptions.py +++ b/pyramid/tests/test_exceptions.py @@ -7,7 +7,7 @@ class TestExceptionResponse(unittest.TestCase): def test_app_iter(self): exc = self._makeOne('') - self.failUnless('<code></code>' in exc.app_iter[0]) + self.assertTrue('<code></code>' in exc.app_iter[0]) def test_headerlist(self): exc = self._makeOne('') @@ -20,7 +20,7 @@ class TestExceptionResponse(unittest.TestCase): def test_withmessage(self): exc = self._makeOne('abc&123') - self.failUnless('<code>abc&123</code>' in exc.app_iter[0]) + self.assertTrue('<code>abc&123</code>' in exc.app_iter[0]) class TestNotFound(unittest.TestCase): def _makeOne(self, message): @@ -30,7 +30,7 @@ class TestNotFound(unittest.TestCase): def test_it(self): from pyramid.exceptions import ExceptionResponse e = self._makeOne('notfound') - self.failUnless(isinstance(e, ExceptionResponse)) + self.assertTrue(isinstance(e, ExceptionResponse)) self.assertEqual(e.status, '404 Not Found') class TestForbidden(unittest.TestCase): @@ -41,5 +41,5 @@ class TestForbidden(unittest.TestCase): def test_it(self): from pyramid.exceptions import ExceptionResponse e = self._makeOne('unauthorized') - self.failUnless(isinstance(e, ExceptionResponse)) + self.assertTrue(isinstance(e, ExceptionResponse)) self.assertEqual(e.status, '403 Forbidden') diff --git a/pyramid/tests/test_i18n.py b/pyramid/tests/test_i18n.py index 3155f0ba1..588f0a7cc 100644 --- a/pyramid/tests/test_i18n.py +++ b/pyramid/tests/test_i18n.py @@ -41,7 +41,7 @@ class TestLocalizer(unittest.TestCase): localizer = self._makeOne(None, translations) self.assertEqual(localizer.translate('123', domain='1', mapping={}), '123') - self.failUnless(localizer.translator) + self.assertTrue(localizer.translator) def test_pluralize(self): translations = DummyTranslations() @@ -49,7 +49,7 @@ class TestLocalizer(unittest.TestCase): self.assertEqual(localizer.pluralize('singular', 'plural', 1, domain='1', mapping={}), 'singular') - self.failUnless(localizer.pluralizer) + self.assertTrue(localizer.pluralizer) def test_pluralize_pluralizer_already_added(self): translations = DummyTranslations() @@ -63,7 +63,7 @@ class TestLocalizer(unittest.TestCase): result, (('singular', 'plural', 1), {'domain': '1', 'mapping': {}}) ) - self.failUnless(localizer.pluralizer is pluralizer) + self.assertTrue(localizer.pluralizer is pluralizer) class Test_negotiate_locale_name(unittest.TestCase): def setUp(self): @@ -174,7 +174,7 @@ class Test_make_localizer(unittest.TestCase): self.assertEqual(result.translate('Approve', 'deformsite'), 'Genehmigen') self.assertEqual(result.translate('Approve'), 'Approve') - self.failUnless(hasattr(result, 'pluralize')) + self.assertTrue(hasattr(result, 'pluralize')) def test_locale_from_mo_bad_mo(self): import os @@ -260,7 +260,7 @@ class Test_get_localizer(unittest.TestCase): self.assertEqual(result.translate('Approve', 'deformsite'), 'Genehmigen') self.assertEqual(result.translate('Approve'), 'Approve') - self.failUnless(hasattr(result, 'pluralize')) + self.assertTrue(hasattr(result, 'pluralize')) def test_locale_from_mo_bad_mo(self): import os diff --git a/pyramid/tests/test_integration.py b/pyramid/tests/test_integration.py index 095f22f41..1f9484279 100644 --- a/pyramid/tests/test_integration.py +++ b/pyramid/tests/test_integration.py @@ -20,8 +20,8 @@ class WGSIAppPlusViewConfigTests(unittest.TestCase): def test_it(self): from venusian import ATTACH_ATTR import types - self.failUnless(getattr(wsgiapptest, ATTACH_ATTR)) - self.failUnless(type(wsgiapptest) is types.FunctionType) + self.assertTrue(getattr(wsgiapptest, ATTACH_ATTR)) + self.assertTrue(type(wsgiapptest) is types.FunctionType) context = DummyContext() request = DummyRequest() result = wsgiapptest(context, request) @@ -256,13 +256,13 @@ class TestForbiddenAppHasResult(IntegrationBase): def test_it(self): res = self.testapp.get('/x', status=403) message, result = [x.strip() for x in res.body.split('\n')] - self.failUnless(message.endswith('failed permission check')) - self.failUnless( + self.assertTrue(message.endswith('failed permission check')) + self.assertTrue( result.startswith("ACLDenied permission 'private' via ACE " "'<default deny>' in ACL " "'<No ACL found on any object in resource " "lineage>' on context")) - self.failUnless( + self.assertTrue( result.endswith("for principals ['system.Everyone']")) class TestViewDecoratorApp(IntegrationBase): @@ -276,20 +276,20 @@ class TestViewDecoratorApp(IntegrationBase): # we use mako here instead of chameleon because it works on Jython self._configure_mako() res = self.testapp.get('/first', status=200) - self.failUnless('OK' in res.body) + self.assertTrue('OK' in res.body) def test_second(self): # we use mako here instead of chameleon because it works on Jython self._configure_mako() res = self.testapp.get('/second', status=200) - self.failUnless('OK2' in res.body) + self.assertTrue('OK2' in res.body) class TestViewPermissionBug(IntegrationBase): # view_execution_permitted bug as reported by Shane at http://lists.repoze.org/pipermail/repoze-dev/2010-October/003603.html package = 'pyramid.tests.permbugapp' def test_test(self): res = self.testapp.get('/test', status=200) - self.failUnless('ACLDenied' in res.body) + self.assertTrue('ACLDenied' in res.body) def test_x(self): self.testapp.get('/x', status=403) @@ -299,15 +299,15 @@ class TestDefaultViewPermissionBug(IntegrationBase): package = 'pyramid.tests.defpermbugapp' def test_x(self): res = self.testapp.get('/x', status=403) - self.failUnless('failed permission check' in res.body) + self.assertTrue('failed permission check' in res.body) def test_y(self): res = self.testapp.get('/y', status=403) - self.failUnless('failed permission check' in res.body) + self.assertTrue('failed permission check' in res.body) def test_z(self): res = self.testapp.get('/z', status=200) - self.failUnless('public' in res.body) + self.assertTrue('public' in res.body) from pyramid.tests.exceptionviewapp.models import AnException, NotAnException excroot = {'anexception':AnException(), @@ -318,31 +318,31 @@ class TestExceptionViewsApp(IntegrationBase): root_factory = lambda *arg: excroot def test_root(self): res = self.testapp.get('/', status=200) - self.failUnless('maybe' in res.body) + self.assertTrue('maybe' in res.body) def test_notanexception(self): res = self.testapp.get('/notanexception', status=200) - self.failUnless('no' in res.body) + self.assertTrue('no' in res.body) def test_anexception(self): res = self.testapp.get('/anexception', status=200) - self.failUnless('yes' in res.body) + self.assertTrue('yes' in res.body) def test_route_raise_exception(self): res = self.testapp.get('/route_raise_exception', status=200) - self.failUnless('yes' in res.body) + self.assertTrue('yes' in res.body) def test_route_raise_exception2(self): res = self.testapp.get('/route_raise_exception2', status=200) - self.failUnless('yes' in res.body) + self.assertTrue('yes' in res.body) def test_route_raise_exception3(self): res = self.testapp.get('/route_raise_exception3', status=200) - self.failUnless('whoa' in res.body) + self.assertTrue('whoa' in res.body) def test_route_raise_exception4(self): res = self.testapp.get('/route_raise_exception4', status=200) - self.failUnless('whoa' in res.body) + self.assertTrue('whoa' in res.body) class ImperativeIncludeConfigurationTest(unittest.TestCase): def setUp(self): @@ -360,15 +360,15 @@ class ImperativeIncludeConfigurationTest(unittest.TestCase): def test_root(self): res = self.testapp.get('/', status=200) - self.failUnless('root' in res.body) + self.assertTrue('root' in res.body) def test_two(self): res = self.testapp.get('/two', status=200) - self.failUnless('two' in res.body) + self.assertTrue('two' in res.body) def test_three(self): res = self.testapp.get('/three', status=200) - self.failUnless('three' in res.body) + self.assertTrue('three' in res.body) class SelfScanAppTest(unittest.TestCase): def setUp(self): @@ -384,11 +384,11 @@ class SelfScanAppTest(unittest.TestCase): def test_root(self): res = self.testapp.get('/', status=200) - self.failUnless('root' in res.body) + self.assertTrue('root' in res.body) def test_two(self): res = self.testapp.get('/two', status=200) - self.failUnless('two' in res.body) + self.assertTrue('two' in res.body) class DummyContext(object): pass diff --git a/pyramid/tests/test_mako_templating.py b/pyramid/tests/test_mako_templating.py index 8a03d4b5c..054c83d2b 100644 --- a/pyramid/tests/test_mako_templating.py +++ b/pyramid/tests/test_mako_templating.py @@ -260,7 +260,7 @@ class MakoLookupTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() instance = self._makeOne('path', lookup) result = instance({}, {'system':1}) - self.failUnless(isinstance(result, unicode)) + self.assertTrue(isinstance(result, unicode)) self.assertEqual(result, u'result') def test_call_with_system_context(self): @@ -268,7 +268,7 @@ class MakoLookupTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() instance = self._makeOne('path', lookup) result = instance({}, {'context':1}) - self.failUnless(isinstance(result, unicode)) + self.assertTrue(isinstance(result, unicode)) self.assertEqual(result, u'result') self.assertEqual(lookup.values, {'_context':1}) @@ -289,7 +289,7 @@ class MakoLookupTemplateRendererTests(Base, unittest.TestCase): lookup = DummyLookup() instance = self._makeOne('path', lookup) result = instance.implementation().render_unicode() - self.failUnless(isinstance(result, unicode)) + self.assertTrue(isinstance(result, unicode)) self.assertEqual(result, u'result') class TestIntegration(unittest.TestCase): @@ -378,12 +378,12 @@ class TestPkgResourceTemplateLookup(unittest.TestCase): fixturedir = self.get_fixturedir() inst = self._makeOne(directories=[fixturedir]) result = inst.get_template('helloworld.mak') - self.failIf(result is None) + self.assertFalse(result is None) def test_get_template_asset_spec_with_filesystem_checks(self): inst = self._makeOne(filesystem_checks=True) result = inst.get_template('pyramid.tests:fixtures/helloworld.mak') - self.failIf(result is None) + self.assertFalse(result is None) def test_get_template_asset_spec_missing(self): from mako.exceptions import TopLevelLookupException diff --git a/pyramid/tests/test_paster.py b/pyramid/tests/test_paster.py index 07ec4f7b7..d1082fc51 100644 --- a/pyramid/tests/test_paster.py +++ b/pyramid/tests/test_paster.py @@ -15,7 +15,7 @@ class TestPyramidTemplate(unittest.TestCase): result = tmpl.pre(None, None, vars) self.assertEqual(result, None) self.assertEqual(vars['package_logger'], 'app') - self.failUnless(len(vars['random_string']) == 40) + self.assertTrue(len(vars['random_string']) == 40) def test_pre_logger_noteq_root(self): tmpl = self._makeOne('name') @@ -23,7 +23,7 @@ class TestPyramidTemplate(unittest.TestCase): result = tmpl.pre(None, None, vars) self.assertEqual(result, None) self.assertEqual(vars['package_logger'], 'notroot') - self.failUnless(len(vars['random_string']) == 40) + self.assertTrue(len(vars['random_string']) == 40) def test_post(self): tmpl = self._makeOne('name') @@ -56,14 +56,14 @@ class TestPShellCommand(unittest.TestCase): command.command(IPShell=None) self.assertEqual(loadapp.config_name, 'config:/foo/bar/myapp.ini') self.assertEqual(loadapp.section_name, 'myapp') - self.failUnless(loadapp.relative_to) + self.assertTrue(loadapp.relative_to) self.assertEqual(len(app.threadlocal_manager.pushed), 1) pushed = app.threadlocal_manager.pushed[0] self.assertEqual(pushed['registry'], dummy_registry) self.assertEqual(pushed['request'].registry, dummy_registry) self.assertEqual(interact.local, {'root':dummy_root, 'registry':dummy_registry}) - self.failUnless(interact.banner) + self.assertTrue(interact.banner) self.assertEqual(len(app.threadlocal_manager.popped), 1) def test_command_ipshell_is_not_None_ipython_disabled(self): @@ -80,14 +80,14 @@ class TestPShellCommand(unittest.TestCase): command.command(IPShell='notnone') self.assertEqual(loadapp.config_name, 'config:/foo/bar/myapp.ini') self.assertEqual(loadapp.section_name, 'myapp') - self.failUnless(loadapp.relative_to) + self.assertTrue(loadapp.relative_to) self.assertEqual(len(app.threadlocal_manager.pushed), 1) pushed = app.threadlocal_manager.pushed[0] self.assertEqual(pushed['registry'], dummy_registry) self.assertEqual(pushed['request'].registry, dummy_registry) self.assertEqual(interact.local, {'root':dummy_root, 'registry':dummy_registry}) - self.failUnless(interact.banner) + self.assertTrue(interact.banner) self.assertEqual(len(app.threadlocal_manager.popped), 1) def test_command_ipython_enabled(self): @@ -103,7 +103,7 @@ class TestPShellCommand(unittest.TestCase): command.command(IPShell=dummy_shell_factory) self.assertEqual(loadapp.config_name, 'config:/foo/bar/myapp.ini') self.assertEqual(loadapp.section_name, 'myapp') - self.failUnless(loadapp.relative_to) + self.assertTrue(loadapp.relative_to) self.assertEqual(len(app.threadlocal_manager.pushed), 1) pushed = app.threadlocal_manager.pushed[0] self.assertEqual(pushed['registry'], dummy_registry) @@ -111,7 +111,7 @@ class TestPShellCommand(unittest.TestCase): self.assertEqual(dummy_shell_factory.shell.local_ns, {'root':dummy_root, 'registry':dummy_registry}) self.assertEqual(dummy_shell_factory.shell.global_ns, {}) - self.failUnless('\n\n' in dummy_shell_factory.shell.IP.BANNER) + self.assertTrue('\n\n' in dummy_shell_factory.shell.IP.BANNER) self.assertEqual(len(app.threadlocal_manager.popped), 1) def test_command_get_app_hookable(self): @@ -137,7 +137,7 @@ class TestPShellCommand(unittest.TestCase): self.assertEqual(pushed['request'].registry, dummy_registry) self.assertEqual(interact.local, {'root':dummy_root, 'registry':dummy_registry}) - self.failUnless(interact.banner) + self.assertTrue(interact.banner) self.assertEqual(len(app.threadlocal_manager.popped), 1) self.assertEqual(apped, [(('/foo/bar/myapp.ini', 'myapp'), {'loadapp': loadapp})]) @@ -162,11 +162,11 @@ class TestPShellCommand(unittest.TestCase): command.command(IPShell=None) self.assertEqual(loadapp.config_name, 'config:/foo/bar/myapp.ini') self.assertEqual(loadapp.section_name, 'myapp') - self.failUnless(loadapp.relative_to) + self.assertTrue(loadapp.relative_to) self.assertEqual(len(app.threadlocal_manager.pushed), 0) self.assertEqual(interact.local, {'root':root, 'registry':dummy_registry}) - self.failUnless(interact.banner) + self.assertTrue(interact.banner) self.assertEqual(apps, [app]) class TestPRoutesCommand(unittest.TestCase): diff --git a/pyramid/tests/test_path.py b/pyramid/tests/test_path.py index 5619aafa1..c2261d223 100644 --- a/pyramid/tests/test_path.py +++ b/pyramid/tests/test_path.py @@ -53,7 +53,7 @@ class TestCallerModule(unittest.TestCase): def test_it_level_3(self): from pyramid.tests import test_path result = self._callFUT(3) - self.failIfEqual(result, test_path) + self.assertNotEqual(result, test_path) def test_it_no___name__(self): class DummyFrame(object): @@ -121,7 +121,7 @@ class TestPackagePath(unittest.TestCase): from pyramid.tests import test_path module = DummyPackageOrModule(test_path, raise_exc=TypeError) result = self._callFUT(module) - self.failIf(hasattr(module, '__abspath__')) + self.assertFalse(hasattr(module, '__abspath__')) self.assertEqual(result, module.package_path) class TestPackageOf(unittest.TestCase): diff --git a/pyramid/tests/test_renderers.py b/pyramid/tests/test_renderers.py index 70c2c620e..0dbb0d821 100644 --- a/pyramid/tests/test_renderers.py +++ b/pyramid/tests/test_renderers.py @@ -3,6 +3,18 @@ import unittest from pyramid.testing import cleanUp from pyramid import testing +def hide_warnings(wrapped): + import warnings + def wrapper(*arg, **kw): + warnings.filterwarnings('ignore') + try: + wrapped(*arg, **kw) + finally: + warnings.resetwarnings() + wrapper.__name__ = wrapped.__name__ + wrapper.__doc__ = wrapped.__doc__ + return wrapper + class TestTemplateRendererFactory(unittest.TestCase): def setUp(self): self.config = cleanUp() @@ -46,7 +58,7 @@ class TestTemplateRendererFactory(unittest.TestCase): 'type':'type', }) result = self._callFUT(info, None) - self.failUnless(result is renderer) + self.assertTrue(result is renderer) class TestChameleonRendererLookup(unittest.TestCase): def setUp(self): @@ -190,7 +202,7 @@ class TestChameleonRendererLookup(unittest.TestCase): }) lookup = self._makeOne(None) result = lookup(info) - self.failUnless(result is renderer) + self.assertTrue(result is renderer) def test___call__abspath_notyetregistered(self): import os @@ -221,7 +233,7 @@ class TestChameleonRendererLookup(unittest.TestCase): }) lookup = self._makeOne(None) result = lookup(info) - self.failUnless(renderer is result) + self.assertTrue(renderer is result) def test___call__relpath_has_package_registered(self): renderer = {} @@ -237,7 +249,7 @@ class TestChameleonRendererLookup(unittest.TestCase): }) lookup = self._makeOne(None) result = lookup(info) - self.failUnless(renderer is result) + self.assertTrue(renderer is result) def test___call__spec_notfound(self): spec = 'pyramid.tests:wont/exist' @@ -267,7 +279,7 @@ class TestChameleonRendererLookup(unittest.TestCase): self._registerTemplateRenderer(renderer, spec) lookup = self._makeOne(None) result = lookup(info) - self.failUnless(result is renderer) + self.assertTrue(result is renderer) def test___call__spec_notyetregistered(self): import os @@ -286,11 +298,11 @@ class TestChameleonRendererLookup(unittest.TestCase): }) lookup = self._makeOne(factory) result = lookup(info) - self.failUnless(result is renderer) + self.assertTrue(result is renderer) path = os.path.abspath(__file__).split('$')[0] # jython if path.endswith('.pyc'): # pragma: no cover path = path[:-1] - self.failUnless(factory.path.startswith(path)) + self.assertTrue(factory.path.startswith(path)) self.assertEqual(factory.kw, {}) def test___call__reload_assets_true(self): @@ -312,7 +324,7 @@ class TestChameleonRendererLookup(unittest.TestCase): }) lookup = self._makeOne(factory) result = lookup(info) - self.failUnless(result is renderer) + self.assertTrue(result is renderer) spec = '%s:%s' % ('pyramid.tests', 'test_renderers.py') self.assertEqual(reg.queryUtility(ITemplateRenderer, name=spec), None) @@ -334,7 +346,7 @@ class TestChameleonRendererLookup(unittest.TestCase): }) lookup = self._makeOne(factory) result = lookup(info) - self.failUnless(result is renderer) + self.assertTrue(result is renderer) spec = '%s:%s' % ('pyramid.tests', 'test_renderers.py') self.assertNotEqual(reg.queryUtility(ITemplateRenderer, name=spec), None) @@ -394,6 +406,12 @@ class TestRendererFromName(unittest.TestCase): class Test_json_renderer_factory(unittest.TestCase): + def setUp(self): + self.config = testing.setUp() + + def tearDown(self): + testing.tearDown() + def _callFUT(self, name): from pyramid.renderers import json_renderer_factory return json_renderer_factory(name) @@ -407,14 +425,14 @@ class Test_json_renderer_factory(unittest.TestCase): request = testing.DummyRequest() renderer = self._callFUT(None) renderer({'a':1}, {'request':request}) - self.assertEqual(request.response_content_type, 'application/json') + self.assertEqual(request.response.content_type, 'application/json') def test_with_request_content_type_set(self): request = testing.DummyRequest() - request.response_content_type = 'text/mishmash' + request.response.content_type = 'text/mishmash' renderer = self._callFUT(None) renderer({'a':1}, {'request':request}) - self.assertEqual(request.response_content_type, 'text/mishmash') + self.assertEqual(request.response.content_type, 'text/mishmash') class Test_string_renderer_factory(unittest.TestCase): def _callFUT(self, name): @@ -443,14 +461,14 @@ class Test_string_renderer_factory(unittest.TestCase): request = testing.DummyRequest() renderer = self._callFUT(None) renderer(None, {'request':request}) - self.assertEqual(request.response_content_type, 'text/plain') + self.assertEqual(request.response.content_type, 'text/plain') def test_with_request_content_type_set(self): request = testing.DummyRequest() - request.response_content_type = 'text/mishmash' + request.response.content_type = 'text/mishmash' renderer = self._callFUT(None) renderer(None, {'request':request}) - self.assertEqual(request.response_content_type, 'text/mishmash') + self.assertEqual(request.response.content_type, 'text/mishmash') class TestRendererHelper(unittest.TestCase): @@ -492,8 +510,15 @@ class TestRendererHelper(unittest.TestCase): name='.foo') return renderer + def _registerResponseFactory(self): + from pyramid.interfaces import IResponseFactory + class ResponseFactory(object): + pass + self.config.registry.registerUtility(ResponseFactory, IResponseFactory) + def test_render_to_response(self): self._registerRendererFactory() + self._registerResponseFactory() request = Dummy() helper = self._makeOne('loo.foo') response = helper.render_to_response('values', 'system_values', @@ -502,6 +527,7 @@ class TestRendererHelper(unittest.TestCase): def test_render_view(self): self._registerRendererFactory() + self._registerResponseFactory() request = Dummy() helper = self._makeOne('loo.foo') view = 'view' @@ -532,7 +558,7 @@ class TestRendererHelper(unittest.TestCase): helper = self._makeOne('loo.foo', registry=reg) result = helper.render('value', {}) self.assertEqual(result, ('value', {})) - self.failUnless(reg.queried) + self.assertTrue(reg.queried) self.assertEqual(reg.event._system, {}) self.assertEqual(reg.event.__class__.__name__, 'BeforeRender') @@ -561,8 +587,43 @@ class TestRendererHelper(unittest.TestCase): result = helper.render('values', None) self.assertEqual(result[1]['a'], 1) + def test__make_response_request_is_None(self): + request = None + helper = self._makeOne('loo.foo') + response = helper._make_response('abc', request) + self.assertEqual(response.body, 'abc') + + def test__make_response_request_is_None_response_factory_exists(self): + self._registerResponseFactory() + request = None + helper = self._makeOne('loo.foo') + response = helper._make_response('abc', request) + self.assertEqual(response.__class__.__name__, 'ResponseFactory') + self.assertEqual(response.body, 'abc') + + def test__make_response_result_is_unicode(self): + from pyramid.response import Response + request = testing.DummyRequest() + request.response = Response() + helper = self._makeOne('loo.foo') + la = unicode('/La Pe\xc3\xb1a', 'utf-8') + response = helper._make_response(la, request) + self.assertEqual(response.body, la.encode('utf-8')) + + def test__make_response_result_is_str(self): + from pyramid.response import Response + request = testing.DummyRequest() + request.response = Response() + helper = self._makeOne('loo.foo') + la = unicode('/La Pe\xc3\xb1a', 'utf-8') + response = helper._make_response(la.encode('utf-8'), request) + self.assertEqual(response.body, la.encode('utf-8')) + + @hide_warnings def test__make_response_with_content_type(self): + from pyramid.response import Response request = testing.DummyRequest() + request.response = Response() attrs = {'response_content_type':'text/nonsense'} request.__dict__.update(attrs) helper = self._makeOne('loo.foo') @@ -570,8 +631,11 @@ class TestRendererHelper(unittest.TestCase): self.assertEqual(response.content_type, 'text/nonsense') self.assertEqual(response.body, 'abc') + @hide_warnings def test__make_response_with_headerlist(self): + from pyramid.response import Response request = testing.DummyRequest() + request.response = Response() attrs = {'response_headerlist':[('a', '1'), ('b', '2')]} request.__dict__.update(attrs) helper = self._makeOne('loo.foo') @@ -583,8 +647,11 @@ class TestRendererHelper(unittest.TestCase): ('b', '2')]) self.assertEqual(response.body, 'abc') + @hide_warnings def test__make_response_with_status(self): + from pyramid.response import Response request = testing.DummyRequest() + request.response = Response() attrs = {'response_status':'406 You Lose'} request.__dict__.update(attrs) helper = self._makeOne('loo.foo') @@ -592,16 +659,22 @@ class TestRendererHelper(unittest.TestCase): self.assertEqual(response.status, '406 You Lose') self.assertEqual(response.body, 'abc') + @hide_warnings def test__make_response_with_charset(self): + from pyramid.response import Response request = testing.DummyRequest() + request.response = Response() attrs = {'response_charset':'UTF-16'} request.__dict__.update(attrs) helper = self._makeOne('loo.foo') response = helper._make_response('abc', request) self.assertEqual(response.charset, 'UTF-16') + @hide_warnings def test__make_response_with_cache_for(self): + from pyramid.response import Response request = testing.DummyRequest() + request.response = Response() attrs = {'response_cache_for':100} request.__dict__.update(attrs) helper = self._makeOne('loo.foo') @@ -611,21 +684,21 @@ class TestRendererHelper(unittest.TestCase): def test_with_alternate_response_factory(self): from pyramid.interfaces import IResponseFactory class ResponseFactory(object): - def __init__(self, result): - self.result = result + def __init__(self): + pass self.config.registry.registerUtility(ResponseFactory, IResponseFactory) request = testing.DummyRequest() helper = self._makeOne('loo.foo') response = helper._make_response('abc', request) self.assertEqual(response.__class__, ResponseFactory) - self.assertEqual(response.result, 'abc') + self.assertEqual(response.body, 'abc') def test__make_response_with_real_request(self): # functional from pyramid.request import Request request = Request({}) - attrs = {'response_status':'406 You Lose'} - request.__dict__.update(attrs) + request.registry = self.config.registry + request.response.status = '406 You Lose' helper = self._makeOne('loo.foo') response = helper._make_response('abc', request) self.assertEqual(response.status, '406 You Lose') diff --git a/pyramid/tests/test_request.py b/pyramid/tests/test_request.py index 40940cfc9..66a451220 100644 --- a/pyramid/tests/test_request.py +++ b/pyramid/tests/test_request.py @@ -98,13 +98,13 @@ class TestRequest(unittest.TestCase): def test___contains__(self): environ ={'zooma':1} inst = self._makeOne(environ) - self.failUnless('zooma' in inst) + self.assertTrue('zooma' in inst) def test___delitem__(self): environ = {'zooma':1} inst = self._makeOne(environ) del inst['zooma'] - self.failIf('zooma' in environ) + self.assertFalse('zooma' in environ) def test___getitem__(self): environ = {'zooma':1} diff --git a/pyramid/tests/test_router.py b/pyramid/tests/test_router.py index ffda14738..b869a3830 100644 --- a/pyramid/tests/test_router.py +++ b/pyramid/tests/test_router.py @@ -117,8 +117,8 @@ class TestRouter(unittest.TestCase): router = self._makeOne() self.assertEqual(router.debug_notfound, False) self.assertEqual(router.debug_routematch, False) - self.failIf('debug_notfound' in router.__dict__) - self.failIf('debug_routematch' in router.__dict__) + self.assertFalse('debug_notfound' in router.__dict__) + self.assertFalse('debug_routematch' in router.__dict__) def test_root_policy(self): context = DummyContext() @@ -142,8 +142,8 @@ class TestRouter(unittest.TestCase): router = self._makeOne() start_response = DummyStartResponse() why = exc_raised(NotFound, router, environ, start_response) - self.failUnless('/' in why[0], why) - self.failIf('debug_notfound' in why[0]) + self.assertTrue('/' in why[0], why) + self.assertFalse('debug_notfound' in why[0]) self.assertEqual(len(logger.messages), 0) def test_traverser_raises_notfound_class(self): @@ -163,7 +163,7 @@ class TestRouter(unittest.TestCase): router = self._makeOne() start_response = DummyStartResponse() why = exc_raised(NotFound, router, environ, start_response) - self.failUnless('foo' in why[0], why) + self.assertTrue('foo' in why[0], why) def test_traverser_raises_forbidden_class(self): from pyramid.exceptions import Forbidden @@ -182,7 +182,7 @@ class TestRouter(unittest.TestCase): router = self._makeOne() start_response = DummyStartResponse() why = exc_raised(Forbidden, router, environ, start_response) - self.failUnless('foo' in why[0], why) + self.assertTrue('foo' in why[0], why) def test_call_no_view_registered_no_isettings(self): from pyramid.exceptions import NotFound @@ -193,8 +193,8 @@ class TestRouter(unittest.TestCase): router = self._makeOne() start_response = DummyStartResponse() why = exc_raised(NotFound, router, environ, start_response) - self.failUnless('/' in why[0], why) - self.failIf('debug_notfound' in why[0]) + self.assertTrue('/' in why[0], why) + self.assertFalse('debug_notfound' in why[0]) self.assertEqual(len(logger.messages), 0) def test_call_no_view_registered_debug_notfound_false(self): @@ -207,8 +207,8 @@ class TestRouter(unittest.TestCase): router = self._makeOne() start_response = DummyStartResponse() why = exc_raised(NotFound, router, environ, start_response) - self.failUnless('/' in why[0], why) - self.failIf('debug_notfound' in why[0]) + self.assertTrue('/' in why[0], why) + self.assertFalse('debug_notfound' in why[0]) self.assertEqual(len(logger.messages), 0) def test_call_no_view_registered_debug_notfound_true(self): @@ -221,19 +221,19 @@ class TestRouter(unittest.TestCase): router = self._makeOne() start_response = DummyStartResponse() why = exc_raised(NotFound, router, environ, start_response) - self.failUnless( + self.assertTrue( "debug_notfound of url http://localhost:8080/; path_info: '/', " "context:" in why[0]) - self.failUnless("view_name: '', subpath: []" in why[0]) - self.failUnless('http://localhost:8080' in why[0], why) + self.assertTrue("view_name: '', subpath: []" in why[0]) + self.assertTrue('http://localhost:8080' in why[0], why) self.assertEqual(len(logger.messages), 1) message = logger.messages[0] - self.failUnless('of url http://localhost:8080' in message) - self.failUnless("path_info: '/'" in message) - self.failUnless('DummyContext instance at' in message) - self.failUnless("view_name: ''" in message) - self.failUnless("subpath: []" in message) + self.assertTrue('of url http://localhost:8080' in message) + self.assertTrue("path_info: '/'" in message) + self.assertTrue('DummyContext instance at' in message) + self.assertTrue("view_name: ''" in message) + self.assertTrue("subpath: []" in message) def test_call_view_returns_nonresponse(self): from pyramid.interfaces import IViewClassifier @@ -557,7 +557,7 @@ class TestRouter(unittest.TestCase): self.assertEqual(request.matched_route.name, 'foo') self.assertEqual(len(logger.messages), 1) - self.failUnless( + self.assertTrue( logger.messages[0].startswith( "route matched for url http://localhost:8080" "/archives/action1/article1; " @@ -623,7 +623,7 @@ class TestRouter(unittest.TestCase): self.assertEqual(environ['bfg.routes.route'].name, 'foo') self.assertEqual(request.matchdict, matchdict) self.assertEqual(request.matched_route.name, 'foo') - self.failUnless(IFoo.providedBy(request)) + self.assertTrue(IFoo.providedBy(request)) def test_root_factory_raises_notfound(self): from pyramid.interfaces import IRootFactory @@ -641,7 +641,7 @@ class TestRouter(unittest.TestCase): router = self._makeOne() start_response = DummyStartResponse() why = exc_raised(NotFound, router, environ, start_response) - self.failUnless('from root factory' in why[0]) + self.assertTrue('from root factory' in why[0]) def test_root_factory_raises_forbidden(self): from pyramid.interfaces import IRootFactory @@ -659,7 +659,7 @@ class TestRouter(unittest.TestCase): router = self._makeOne() start_response = DummyStartResponse() why = exc_raised(Forbidden, router, environ, start_response) - self.failUnless('from root factory' in why[0]) + self.assertTrue('from root factory' in why[0]) def test_root_factory_exception_propagating(self): from pyramid.interfaces import IRootFactory diff --git a/pyramid/tests/test_security.py b/pyramid/tests/test_security.py index 94cefa642..86149d554 100644 --- a/pyramid/tests/test_security.py +++ b/pyramid/tests/test_security.py @@ -19,9 +19,9 @@ class TestAllPermissionsList(unittest.TestCase): def test_it(self): thing = self._makeOne() - self.failUnless(thing.__eq__(thing)) + self.assertTrue(thing.__eq__(thing)) self.assertEqual(thing.__iter__(), ()) - self.failUnless('anything' in thing) + self.assertTrue('anything' in thing) def test_singleton(self): from pyramid.security import ALL_PERMISSIONS @@ -40,10 +40,10 @@ class TestAllowed(unittest.TestCase): allowed = self._makeOne('hello') self.assertEqual(allowed.msg, 'hello') self.assertEqual(allowed, True) - self.failUnless(allowed) + self.assertTrue(allowed) self.assertEqual(str(allowed), 'hello') - self.failUnless('<Allowed instance at ' in repr(allowed)) - self.failUnless("with msg 'hello'>" in repr(allowed)) + self.assertTrue('<Allowed instance at ' in repr(allowed)) + self.assertTrue("with msg 'hello'>" in repr(allowed)) class TestDenied(unittest.TestCase): def _getTargetClass(self): @@ -58,10 +58,10 @@ class TestDenied(unittest.TestCase): denied = self._makeOne('hello') self.assertEqual(denied.msg, 'hello') self.assertEqual(denied, False) - self.failIf(denied) + self.assertFalse(denied) self.assertEqual(str(denied), 'hello') - self.failUnless('<Denied instance at ' in repr(denied)) - self.failUnless("with msg 'hello'>" in repr(denied)) + self.assertTrue('<Denied instance at ' in repr(denied)) + self.assertTrue("with msg 'hello'>" in repr(denied)) class TestACLAllowed(unittest.TestCase): def _getTargetClass(self): @@ -76,12 +76,12 @@ class TestACLAllowed(unittest.TestCase): msg = ("ACLAllowed permission 'permission' via ACE 'ace' in ACL 'acl' " "on context 'ctx' for principals 'principals'") allowed = self._makeOne('ace', 'acl', 'permission', 'principals', 'ctx') - self.failUnless(msg in allowed.msg) + self.assertTrue(msg in allowed.msg) self.assertEqual(allowed, True) - self.failUnless(allowed) + self.assertTrue(allowed) self.assertEqual(str(allowed), msg) - self.failUnless('<ACLAllowed instance at ' in repr(allowed)) - self.failUnless("with msg %r>" % msg in repr(allowed)) + self.assertTrue('<ACLAllowed instance at ' in repr(allowed)) + self.assertTrue("with msg %r>" % msg in repr(allowed)) class TestACLDenied(unittest.TestCase): def _getTargetClass(self): @@ -96,12 +96,12 @@ class TestACLDenied(unittest.TestCase): msg = ("ACLDenied permission 'permission' via ACE 'ace' in ACL 'acl' " "on context 'ctx' for principals 'principals'") denied = self._makeOne('ace', 'acl', 'permission', 'principals', 'ctx') - self.failUnless(msg in denied.msg) + self.assertTrue(msg in denied.msg) self.assertEqual(denied, False) - self.failIf(denied) + self.assertFalse(denied) self.assertEqual(str(denied), msg) - self.failUnless('<ACLDenied instance at ' in repr(denied)) - self.failUnless("with msg %r>" % msg in repr(denied)) + self.assertTrue('<ACLDenied instance at ' in repr(denied)) + self.assertTrue("with msg %r>" % msg in repr(denied)) class TestViewExecutionPermitted(unittest.TestCase): def setUp(self): @@ -140,8 +140,8 @@ class TestViewExecutionPermitted(unittest.TestCase): request = DummyRequest({}) result = self._callFUT(context, request, '') msg = result.msg - self.failUnless("Allowed: view name '' in context" in msg) - self.failUnless('(no permission defined)' in msg) + self.assertTrue("Allowed: view name '' in context" in msg) + self.assertTrue('(no permission defined)' in msg) self.assertEqual(result, True) def test_with_permission(self): @@ -156,7 +156,7 @@ class TestViewExecutionPermitted(unittest.TestCase): request = DummyRequest({}) directlyProvides(request, IRequest) result = self._callFUT(context, request, '') - self.failUnless(result is True) + self.assertTrue(result is True) class TestHasPermission(unittest.TestCase): def setUp(self): diff --git a/pyramid/tests/test_session.py b/pyramid/tests/test_session.py index e8a3318ea..17a437af6 100644 --- a/pyramid/tests/test_session.py +++ b/pyramid/tests/test_session.py @@ -54,7 +54,7 @@ class TestUnencryptedCookieSession(unittest.TestCase): session = self._makeOne(request) session['a'] = 1 self.assertEqual(session.invalidate(), None) - self.failIf('a' in session) + self.assertFalse('a' in session) def test__set_cookie_on_exception(self): request = testing.DummyRequest() @@ -116,7 +116,7 @@ class TestUnencryptedCookieSession(unittest.TestCase): cookieval= response.headerlist[0][1] val, domain, path, secure, httponly = [x.strip() for x in cookieval.split(';')] - self.failUnless(val.startswith('abc=')) + self.assertTrue(val.startswith('abc=')) self.assertEqual(domain, 'Domain=localhost') self.assertEqual(path, 'Path=/foo') self.assertEqual(secure, 'secure') @@ -205,14 +205,14 @@ class TestUnencryptedCookieSession(unittest.TestCase): session['_csrft_'] = 'token' token = session.get_csrf_token() self.assertEqual(token, 'token') - self.failUnless('_csrft_' in session) + self.assertTrue('_csrft_' in session) def test_get_csrf_token_new(self): request = testing.DummyRequest() session = self._makeOne(request) token = session.get_csrf_token() - self.failUnless(token) - self.failUnless('_csrft_' in session) + self.assertTrue(token) + self.assertTrue('_csrft_' in session) class Test_manage_accessed(unittest.TestCase): def _makeOne(self, wrapped): @@ -254,7 +254,7 @@ class Test_manage_accessed(unittest.TestCase): response = webob.Response() result = callbacks[0](request, response) self.assertEqual(result, None) - self.failIf('Set-Cookie' in dict(response.headerlist)) + self.assertFalse('Set-Cookie' in dict(response.headerlist)) def test_cookie_is_set(self): request = testing.DummyRequest() diff --git a/pyramid/tests/test_static.py b/pyramid/tests/test_static.py index 9c4c4a1c8..b9d464bf1 100644 --- a/pyramid/tests/test_static.py +++ b/pyramid/tests/test_static.py @@ -46,8 +46,8 @@ class TestPackageURLParser(unittest.TestCase): sr = DummyStartResponse() response = inst(environ, sr) body = response[0] - self.failUnless('301 Moved Permanently' in body) - self.failUnless('http://example.com:6543/' in body) + self.assertTrue('301 Moved Permanently' in body) + self.assertTrue('http://example.com:6543/' in body) def test_path_info_slash_means_index_html(self): environ = self._makeEnviron() @@ -55,7 +55,7 @@ class TestPackageURLParser(unittest.TestCase): sr = DummyStartResponse() response = inst(environ, sr) body = response[0] - self.failUnless('<html>static</html>' in body) + self.assertTrue('<html>static</html>' in body) def test_resource_out_of_bounds(self): environ = self._makeEnviron() @@ -64,8 +64,8 @@ class TestPackageURLParser(unittest.TestCase): sr = DummyStartResponse() response = inst(environ, sr) body = response[0] - self.failUnless('404 Not Found' in body) - self.failUnless('http://example.com:6543/' in body) + self.assertTrue('404 Not Found' in body) + self.assertTrue('http://example.com:6543/' in body) def test_resource_doesnt_exist(self): environ = self._makeEnviron(PATH_INFO='/notthere') @@ -73,8 +73,8 @@ class TestPackageURLParser(unittest.TestCase): sr = DummyStartResponse() response = inst(environ, sr) body = response[0] - self.failUnless('404 Not Found' in body) - self.failUnless('http://example.com:6543/' in body) + self.assertTrue('404 Not Found' in body) + self.assertTrue('http://example.com:6543/' in body) def test_resource_isdir(self): environ = self._makeEnviron(PATH_INFO='/subdir/') @@ -82,7 +82,7 @@ class TestPackageURLParser(unittest.TestCase): sr = DummyStartResponse() response = inst(environ, sr) body = response[0] - self.failUnless('<html>subdir</html>' in body) + self.assertTrue('<html>subdir</html>' in body) def test_resource_is_file(self): environ = self._makeEnviron(PATH_INFO='/index.html') @@ -90,7 +90,7 @@ class TestPackageURLParser(unittest.TestCase): sr = DummyStartResponse() response = inst(environ, sr) body = response[0] - self.failUnless('<html>static</html>' in body) + self.assertTrue('<html>static</html>' in body) def test_resource_has_extra_path_info(self): environ = self._makeEnviron(PATH_INFO='/static/index.html/more') @@ -98,7 +98,7 @@ class TestPackageURLParser(unittest.TestCase): sr = DummyStartResponse() response = inst(environ, sr) body = response[0] - self.failUnless("The trailing path '/more' is not allowed" in body) + self.assertTrue("The trailing path '/more' is not allowed" in body) def test_resource_is_file_with_cache_max_age(self): environ = self._makeEnviron(PATH_INFO='/index.html') @@ -107,7 +107,7 @@ class TestPackageURLParser(unittest.TestCase): sr = DummyStartResponse() response = inst(environ, sr) body = response[0] - self.failUnless('<html>static</html>' in body) + self.assertTrue('<html>static</html>' in body) self.assertEqual(len(sr.headerlist), 8) header_names = [ x[0] for x in sr.headerlist ] header_names.sort() @@ -122,7 +122,7 @@ class TestPackageURLParser(unittest.TestCase): sr = DummyStartResponse() response = inst(environ, sr) body = response[0] - self.failUnless('<html>static</html>' in body) + self.assertTrue('<html>static</html>' in body) self.assertEqual(len(sr.headerlist), 6) header_names = [ x[0] for x in sr.headerlist ] header_names.sort() @@ -137,7 +137,7 @@ class TestPackageURLParser(unittest.TestCase): sr = DummyStartResponse() response = inst(environ, sr) body = response[0] - self.failUnless('<html>static</html>' in body) + self.assertTrue('<html>static</html>' in body) def test_if_none_match(self): class DummyEq(object): @@ -168,7 +168,7 @@ class TestPackageURLParser(unittest.TestCase): def test_repr(self): import os.path inst = self._makeOne('pyramid.tests', 'fixtures/static') - self.failUnless( + self.assertTrue( repr(inst).startswith( '<PackageURLParser pyramid.tests:%s at' % os.path.join('fixtures', 'static'))) @@ -179,7 +179,7 @@ class TestPackageURLParser(unittest.TestCase): sr = DummyStartResponse() response = inst.not_found(environ, sr, 'debug_message') body = response[0] - self.failUnless('404 Not Found' in body) + self.assertTrue('404 Not Found' in body) self.assertEqual(sr.status, '404 Not Found') class Test_static_view(unittest.TestCase): diff --git a/pyramid/tests/test_testing.py b/pyramid/tests/test_testing.py index 99b0a1911..0c94a2803 100644 --- a/pyramid/tests/test_testing.py +++ b/pyramid/tests/test_testing.py @@ -27,7 +27,7 @@ class Test_registerDummySecurityPolicy(TestBase): from pyramid.interfaces import IAuthorizationPolicy ut = self.registry.getUtility(IAuthenticationPolicy) from pyramid.testing import DummySecurityPolicy - self.failUnless(isinstance(ut, DummySecurityPolicy)) + self.assertTrue(isinstance(ut, DummySecurityPolicy)) ut = self.registry.getUtility(IAuthorizationPolicy) self.assertEqual(ut.userid, 'user') self.assertEqual(ut.groupids, ('group1', 'group2')) @@ -65,7 +65,7 @@ class Test_registerTemplateRenderer(TestBase): from pyramid import testing renderer = testing.registerTemplateRenderer('templates/foo') from pyramid.testing import DummyTemplateRenderer - self.failUnless(isinstance(renderer, DummyTemplateRenderer)) + self.assertTrue(isinstance(renderer, DummyTemplateRenderer)) from pyramid.renderers import render_to_response render_to_response('templates/foo', dict(foo=1, bar=2)) renderer.assert_(foo=1) @@ -116,7 +116,7 @@ class Test_registerView(TestBase): from pyramid import testing view = testing.registerView('moo.html') import types - self.failUnless(isinstance(view, types.FunctionType)) + self.assertTrue(isinstance(view, types.FunctionType)) from pyramid.view import render_view_to_response request = DummyRequest() request.registry = self.registry @@ -127,7 +127,7 @@ class Test_registerView(TestBase): from pyramid import testing view = testing.registerView('moo.html', 'yo') import types - self.failUnless(isinstance(view, types.FunctionType)) + self.assertTrue(isinstance(view, types.FunctionType)) from pyramid.view import render_view_to_response request = DummyRequest() request.registry = self.registry @@ -141,7 +141,7 @@ class Test_registerView(TestBase): return Response('123') view = testing.registerView('moo.html', view=view) import types - self.failUnless(isinstance(view, types.FunctionType)) + self.assertTrue(isinstance(view, types.FunctionType)) from pyramid.view import render_view_to_response request = DummyRequest() request.registry = self.registry @@ -156,7 +156,7 @@ class Test_registerView(TestBase): view = testing.registerView('moo.html', view=view, permission='bar') testing.registerDummySecurityPolicy(permissive=False) import types - self.failUnless(isinstance(view, types.FunctionType)) + self.assertTrue(isinstance(view, types.FunctionType)) from pyramid.view import render_view_to_response request = DummyRequest() request.registry = self.registry @@ -171,7 +171,7 @@ class Test_registerView(TestBase): view = testing.registerView('moo.html', view=view, permission='bar') testing.registerDummySecurityPolicy(permissive=False) import types - self.failUnless(isinstance(view, types.FunctionType)) + self.assertTrue(isinstance(view, types.FunctionType)) result = view_execution_permitted(None, None, 'moo.html') self.assertEqual(result, False) @@ -183,7 +183,7 @@ class Test_registerView(TestBase): view = testing.registerView('moo.html', view=view, permission='bar') testing.registerDummySecurityPolicy(permissive=True) import types - self.failUnless(isinstance(view, types.FunctionType)) + self.assertTrue(isinstance(view, types.FunctionType)) from pyramid.view import render_view_to_response request = DummyRequest() request.registry = self.registry @@ -355,9 +355,9 @@ class TestDummyResource(unittest.TestCase): self.assertEqual(resource['abc'], dummy) self.assertEqual(resource.get('abc'), dummy) self.assertRaises(KeyError, resource.__getitem__, 'none') - self.failUnless('abc' in resource) + self.assertTrue('abc' in resource) del resource['abc'] - self.failIf('abc' in resource) + self.assertFalse('abc' in resource) self.assertEqual(resource.get('abc', 'foo'), 'foo') self.assertEqual(resource.get('abc'), None) @@ -390,7 +390,7 @@ class TestDummyResource(unittest.TestCase): def test_ctor_with__provides__(self): resource = self._makeOne(__provides__=IDummy) - self.failUnless(IDummy.providedBy(resource)) + self.assertTrue(IDummy.providedBy(resource)) class TestDummyRequest(unittest.TestCase): def _getTargetClass(self): @@ -498,10 +498,55 @@ class TestDummyRequest(unittest.TestCase): registry = Registry('this_test') config = Configurator(registry=registry) config.begin() - self.failUnless(request.registry is registry) + self.assertTrue(request.registry is registry) finally: config.end() + def test_set_registry(self): + request = self._makeOne() + request.registry = 'abc' + self.assertEqual(request.registry, 'abc') + + def test_del_registry(self): + # see https://github.com/Pylons/pyramid/issues/165 + from pyramid.registry import Registry + from pyramid.config import Configurator + request = self._makeOne() + request.registry = 'abc' + self.assertEqual(request.registry, 'abc') + del request.registry + try: + registry = Registry('this_test') + config = Configurator(registry=registry) + config.begin() + self.assertTrue(request.registry is registry) + finally: + config.end() + + def test_response_with_responsefactory(self): + from pyramid.registry import Registry + from pyramid.interfaces import IResponseFactory + registry = Registry('this_test') + class ResponseFactory(object): + pass + registry.registerUtility(ResponseFactory, IResponseFactory) + request = self._makeOne() + request.registry = registry + resp = request.response + self.assertEqual(resp.__class__, ResponseFactory) + self.assertTrue(request.response is resp) # reified + + def test_response_without_responsefactory(self): + from pyramid.registry import Registry + from pyramid.response import Response + registry = Registry('this_test') + request = self._makeOne() + request.registry = registry + resp = request.response + self.assertEqual(resp.__class__, Response) + self.assertTrue(request.response is resp) # reified + + class TestDummyTemplateRenderer(unittest.TestCase): def _getTargetClass(self, ): from pyramid.testing import DummyTemplateRenderer @@ -528,7 +573,7 @@ class TestDummyTemplateRenderer(unittest.TestCase): renderer({'a':1, 'b':2}) self.assertRaises(AssertionError, renderer.assert_, c=1) self.assertRaises(AssertionError, renderer.assert_, b=3) - self.failUnless(renderer.assert_(a=1, b=2)) + self.assertTrue(renderer.assert_(a=1, b=2)) def test_nondefault_string_response(self): renderer = self._makeOne('abc') @@ -550,7 +595,7 @@ class Test_setUp(unittest.TestCase): try: config = self._callFUT() current = manager.get() - self.failIf(current is old) + self.assertFalse(current is old) self.assertEqual(config.registry, current['registry']) self.assertEqual(current['registry'].__class__, Registry) self.assertEqual(current['request'], None) @@ -593,7 +638,7 @@ class Test_setUp(unittest.TestCase): try: self._callFUT(registry=registry, hook_zca=False) sm = getSiteManager() - self.failIf(sm is registry) + self.assertFalse(sm is registry) finally: getSiteManager.reset() manager.clear() @@ -780,7 +825,7 @@ class TestDummySession(unittest.TestCase): session = self._makeOne() session['a'] = 1 self.assertEqual(session.invalidate(), None) - self.failIf('a' in session) + self.assertFalse('a' in session) def test_flash_default(self): session = self._makeOne() @@ -838,7 +883,7 @@ class TestDummySession(unittest.TestCase): session['_csrft_'] = 'token' token = session.get_csrf_token() self.assertEqual(token, 'token') - self.failUnless('_csrft_' in session) + self.assertTrue('_csrft_' in session) from zope.interface import Interface diff --git a/pyramid/tests/test_urldispatch.py b/pyramid/tests/test_urldispatch.py index a3579cdd5..6e1474b1d 100644 --- a/pyramid/tests/test_urldispatch.py +++ b/pyramid/tests/test_urldispatch.py @@ -21,8 +21,8 @@ class TestRoute(unittest.TestCase): self.assertEqual(route.path, ':path') self.assertEqual(route.name, 'name') self.assertEqual(route.factory, 'factory') - self.failUnless(route.generate.__class__ is types.FunctionType) - self.failUnless(route.match.__class__ is types.FunctionType) + self.assertTrue(route.generate.__class__ is types.FunctionType) + self.assertTrue(route.match.__class__ is types.FunctionType) def test_ctor_defaults(self): import types @@ -31,8 +31,8 @@ class TestRoute(unittest.TestCase): self.assertEqual(route.path, ':path') self.assertEqual(route.name, 'name') self.assertEqual(route.factory, None) - self.failUnless(route.generate.__class__ is types.FunctionType) - self.failUnless(route.match.__class__ is types.FunctionType) + self.assertTrue(route.generate.__class__ is types.FunctionType) + self.assertTrue(route.match.__class__ is types.FunctionType) def test_match(self): route = self._makeOne('name', ':path') diff --git a/pyramid/tests/test_view.py b/pyramid/tests/test_view.py index 826fc4290..b1d48b98b 100644 --- a/pyramid/tests/test_view.py +++ b/pyramid/tests/test_view.py @@ -267,7 +267,7 @@ class TestViewConfigDecorator(unittest.TestCase): decorator.venusian = venusian def foo(): pass wrapped = decorator(foo) - self.failUnless(wrapped is foo) + self.assertTrue(wrapped is foo) settings = call_venusian(venusian) self.assertEqual(len(settings), 1) self.assertEqual(settings[0]['permission'], None) @@ -281,7 +281,7 @@ class TestViewConfigDecorator(unittest.TestCase): decorator.venusian.info.scope = 'class' class foo(object): pass wrapped = decorator(foo) - self.failUnless(wrapped is foo) + self.assertTrue(wrapped is foo) settings = call_venusian(venusian) self.assertEqual(len(settings), 1) self.assertEqual(settings[0]['permission'], None) @@ -296,7 +296,7 @@ class TestViewConfigDecorator(unittest.TestCase): decorator.venusian.info.scope = 'class' class foo(object): pass wrapped = decorator(foo) - self.failUnless(wrapped is foo) + self.assertTrue(wrapped is foo) settings = call_venusian(venusian) self.assertEqual(len(settings), 1) self.assertEqual(settings[0]['permission'], None) @@ -314,8 +314,8 @@ class TestViewConfigDecorator(unittest.TestCase): def foo(): pass wrapped1 = decorator1(foo) wrapped2 = decorator2(wrapped1) - self.failUnless(wrapped1 is foo) - self.failUnless(wrapped2 is foo) + self.assertTrue(wrapped1 is foo) + self.assertTrue(wrapped2 is foo) settings1 = call_venusian(venusian1) self.assertEqual(len(settings1), 1) self.assertEqual(settings1[0]['name'], '1') @@ -344,7 +344,7 @@ class TestViewConfigDecorator(unittest.TestCase): decorator.venusian = venusian def foo(context, request): pass decorated = decorator(foo) - self.failUnless(decorated is foo) + self.assertTrue(decorated is foo) settings = call_venusian(venusian) self.assertEqual(settings[0]['custom_predicates'], (1,)) @@ -355,7 +355,7 @@ class TestViewConfigDecorator(unittest.TestCase): decorator.venusian = venusian def foo(): pass wrapped = decorator(foo) - self.failUnless(wrapped is foo) + self.assertTrue(wrapped is foo) settings = call_venusian(venusian) self.assertEqual(len(settings), 1) renderer = settings[0]['renderer'] @@ -369,7 +369,7 @@ class TestViewConfigDecorator(unittest.TestCase): decorator.venusian = venusian def foo(): pass wrapped = decorator(foo) - self.failUnless(wrapped is foo) + self.assertTrue(wrapped is foo) settings = call_venusian(venusian) self.assertEqual(len(settings), 1) self.assertEqual(settings[0]['renderer'], {'a':1}) @@ -477,20 +477,20 @@ class Test_default_exceptionresponse_view(unittest.TestCase): def test_is_exception(self): context = Exception() result = self._callFUT(context, None) - self.failUnless(result is context) + self.assertTrue(result is context) def test_is_not_exception_context_is_false_still_chose(self): request = DummyRequest() request.exception = 0 result = self._callFUT(None, request) - self.failUnless(result is None) + self.assertTrue(result is None) def test_is_not_exception_no_request_exception(self): context = object() request = DummyRequest() request.exception = None result = self._callFUT(context, request) - self.failUnless(result is context) + self.assertTrue(result is context) def test_is_not_exception_request_exception(self): context = object() @@ -31,7 +31,7 @@ install_requires=[ 'Paste > 1.7', # temp version pin to prevent PyPi install failure :-( 'PasteDeploy', 'PasteScript', - 'WebOb >= 1.0', # no "default_charset" + 'WebOb >= 1.0.2', # no "default_charset"; request.script_name doesnt error 'repoze.lru', 'setuptools', 'zope.component >= 3.6.0', # independent of zope.hookable @@ -1,19 +1,27 @@ [tox] envlist = - py25,py26,py27,jython,pypy,cover + py24,py25,py26,py27,jython,pypy,cover [testenv] commands = python setup.py test -q -# if we ever want to run the paster template tests, we could also use: -# python template_tests.py -# they take forever, though deps = Sphinx WebTest repoze.sphinx.autointerface virtualenv +[testenv:py24] +# Chameleon 2 doesnt work under py2.4 +commands = + python setup.py test -q +deps = + Sphinx + WebTest + repoze.sphinx.autointerface + virtualenv + Chameleon<=1.999 + [testenv:jython] commands = jython setup.py test -q |
