Chris McDonough
2011-08-24 b5a3b0de22d6e94185226cbb56c98e3eaa359a31
add some integration tests for aconflict autoresolution
2 files added
1 files modified
96 ■■■■■ changed files
pyramid/tests/conflictapp/__init__.py 23 ●●●●● patch | view | raw | blame | history
pyramid/tests/conflictapp/included.py 8 ●●●●● patch | view | raw | blame | history
pyramid/tests/test_integration.py 65 ●●●●● patch | view | raw | blame | history
pyramid/tests/conflictapp/__init__.py
New file
@@ -0,0 +1,23 @@
from pyramid.response import Response
from pyramid.authentication import AuthTktAuthenticationPolicy
from pyramid.authorization import ACLAuthorizationPolicy
def aview(request):
    return Response('a view')
def routeview(request):
    return Response('route view')
def protectedview(request):
    return Response('protected view')
def includeme(config):
    # purposely sorta-randomly ordered (route comes after view naming it,
    # authz comes after views)
    config.add_view(aview)
    config.add_view(protectedview, name='protected', permission='view')
    config.add_view(routeview, route_name='aroute')
    config.add_route('aroute', '/route')
    config.set_authentication_policy(AuthTktAuthenticationPolicy('seekri1t'))
    config.set_authorization_policy(ACLAuthorizationPolicy())
    config.include('pyramid.tests.conflictapp.included')
pyramid/tests/conflictapp/included.py
New file
@@ -0,0 +1,8 @@
from webob import Response
def bview(request):
    """ """
    return Response('b view')
def includeme(config):
    config.add_view(bview)
pyramid/tests/test_integration.py
@@ -344,6 +344,71 @@
        res = self.testapp.get('/route_raise_exception4', status=200)
        self.assertTrue('whoa' in res.body)
class TestConflictApp(unittest.TestCase):
    package = 'pyramid.tests.conflictapp'
    def _makeConfig(self):
        from pyramid.config import Configurator
        config = Configurator()
        return config
    def test_autoresolved_view(self):
        config = self._makeConfig()
        config.include(self.package)
        app = config.make_wsgi_app()
        from webtest import TestApp
        self.testapp = TestApp(app)
        res = self.testapp.get('/')
        self.assertTrue('a view' in res.body)
        res = self.testapp.get('/route')
        self.assertTrue('route view' in res.body)
    def test_overridden_autoresolved_view(self):
        from pyramid.response import Response
        config = self._makeConfig()
        config.include(self.package)
        def thisview(request):
            return Response('this view')
        config.add_view(thisview)
        app = config.make_wsgi_app()
        from webtest import TestApp
        self.testapp = TestApp(app)
        res = self.testapp.get('/')
        self.assertTrue('this view' in res.body)
    def test_overridden_route_view(self):
        from pyramid.response import Response
        config = self._makeConfig()
        config.include(self.package)
        def thisview(request):
            return Response('this view')
        config.add_view(thisview, route_name='aroute')
        app = config.make_wsgi_app()
        from webtest import TestApp
        self.testapp = TestApp(app)
        res = self.testapp.get('/route')
        self.assertTrue('this view' in res.body)
    def test_nonoverridden_authorization_policy(self):
        config = self._makeConfig()
        config.include(self.package)
        app = config.make_wsgi_app()
        from webtest import TestApp
        self.testapp = TestApp(app)
        res = self.testapp.get('/protected', status=403)
        self.assertTrue('403 Forbidden' in res)
    def test_overridden_authorization_policy(self):
        config = self._makeConfig()
        config.include(self.package)
        from pyramid.testing import DummySecurityPolicy
        config.set_authorization_policy(DummySecurityPolicy('fred'))
        config.set_authentication_policy(DummySecurityPolicy(permissive=True))
        app = config.make_wsgi_app()
        from webtest import TestApp
        self.testapp = TestApp(app)
        res = self.testapp.get('/protected', status=200)
        self.assertTrue('protected view' in res)
class ImperativeIncludeConfigurationTest(unittest.TestCase):
    def setUp(self):
        from pyramid.config import Configurator