Ejemplo n.º 1
0
    def test_anonym_unauth(self):
        'Anonym and unathorized access'

        def anonym(r):
            self.assert_(r.vals.user is None)

        auth = CookieAuth(user_by_credential, user_by_id)
        app = local_cache_env() | jinja_env() | Map(
            auth.login_handler,
            auth.logout_handler,
            auth | Map(
                match('/', 'index') | anonym,
            )
        )

        rctx = RequestContext.blank('/')
        rctx = app(rctx)

        def view(r):
            r.response.write('aaaa')

        app = local_cache_env() | jinja_env() | Map(
            auth.login_handler,
            auth.logout_handler,
            auth | auth.login_required | Map(
                match('/', 'index') | view
            )
        )
        rctx = RequestContext.blank('/')
        self.assertRaises(HttpException, lambda: app(rctx))
        try:
            app(rctx)
        except HttpException, e:
            self.assertEqual(str(e.url), '/login?next=/')
Ejemplo n.º 2
0
    def test_anonym_unauth(self):
        'Anonym and unathorized access'

        def anonym(r):
            self.assert_(r.vals.user is None)

        auth = CookieAuth(user_by_credential, user_by_id)
        app = local_cache_env() | jinja_env() | Map(
            auth.login_handler, auth.logout_handler,
            auth | Map(match('/', 'index') | anonym, ))

        rctx = RequestContext.blank('/')
        rctx = app(rctx)

        def view(r):
            r.response.write('aaaa')

        app = local_cache_env() | jinja_env() | Map(
            auth.login_handler, auth.logout_handler,
            auth | auth.login_required | Map(match('/', 'index') | view))
        rctx = RequestContext.blank('/')
        self.assertRaises(HttpException, lambda: app(rctx))
        try:
            app(rctx)
        except HttpException, e:
            self.assertEqual(str(e.url), '/login?next=/')
Ejemplo n.º 3
0
    def test_login_logout(self):
        'Login and Logout process'
        auth = CookieAuth(user_by_credential, user_by_id)

        def logout(r):
            self.assertEqual(len(r.vals.session_storage.cache), 0)

        def login(r):
            self.assertEqual(len(r.vals.session_storage.cache), 1)

        app = local_cache_env() | jinja_env() | Map(
            auth.login_handler | login,
            auth.logout_handler | logout,
            auth | Map(
                match('/', 'index')
            )
        )
        rctx = RequestContext.blank('/login', login='******', password='******')
        self.assertRaises(HttpException, lambda: app(rctx))

        self.assert_(rctx.response.headers.get('Set-Cookie'))

        try:
            app(rctx)
        except HttpException, e:
            self.assertEqual(e.status, 303)
Ejemplo n.º 4
0
class AuthTest(unittest.TestCase):
    def test_login_logout(self):
        'Login and Logout process'
        auth = CookieAuth(user_by_credential, user_by_id)

        def logout(r):
            self.assertEqual(len(r.vals.session_storage.cache), 0)

        def login(r):
            self.assertEqual(len(r.vals.session_storage.cache), 1)

        app = local_cache_env() | jinja_env() | Map(
            auth.login_handler | login, auth.logout_handler | logout,
            auth | Map(match('/', 'index')))
        rctx = RequestContext.blank('/login',
                                    login='******',
                                    password='******')
        self.assertRaises(HttpException, lambda: app(rctx))

        self.assert_(rctx.response.headers.get('Set-Cookie'))

        try:
            app(rctx)
        except HttpException, e:
            self.assertEqual(e.status, 303)

        r = RequestContext.blank('/logout', login='******')
        r.request.headers['Cookie'] = rctx.response.headers['Set-Cookie']
        self.assertRaises(HttpException, lambda: app(r))
        try:
            app(r)
        except HttpException, e:
            self.assertEqual(e.status, 303)
Ejemplo n.º 5
0
    def test_auth(self):
        'Authorized access'
        auth = CookieAuth(user_by_credential, user_by_id)
        def user(r):
            self.assertEqual(r.vals.user.name, 'user name')
        app = local_cache_env() | jinja_env() | Map(
            auth.login_handler,
            auth.logout_handler,
            auth | auth.login_required | Map(
                match('/', 'index') | user
            )
        )

        try:
            rctx = RequestContext.blank('/login', login='******', password='******')
            app(rctx)
        except HttpException:
            pass
        r = RequestContext.blank('/')
        r.request.headers['Cookie'] = rctx.response.headers['Set-Cookie']
        self.assertEqual(app(r).response.status_int, 200)
Ejemplo n.º 6
0
    def test_auth(self):
        'Authorized access'
        auth = CookieAuth(user_by_credential, user_by_id)

        def user(r):
            self.assertEqual(r.vals.user.name, 'user name')

        app = local_cache_env() | jinja_env() | Map(
            auth.login_handler, auth.logout_handler,
            auth | auth.login_required | Map(match('/', 'index') | user))

        try:
            rctx = RequestContext.blank('/login',
                                        login='******',
                                        password='******')
            app(rctx)
        except HttpException:
            pass
        r = RequestContext.blank('/')
        r.request.headers['Cookie'] = rctx.response.headers['Set-Cookie']
        self.assertEqual(app(r).response.status_int, 200)