コード例 #1
0
ファイル: test_views.py プロジェクト: wangjs/MAGMa
    def test_login_post_incorrect_pw(self, user, remember):
        u = Mock(User)
        u.validate_password.return_value = False
        user.by_id.return_value = u
        self.config.add_route('login', '/login')
        self.config.add_route('workspace', '/workspace')
        post = {'userid': 'bob', 'password': '******'}
        params = {'came_from': 'http://example.com/workspace'}
        request = testing.DummyRequest(post=post, params=params)
        request.user = None
        route_mapper = self.config.get_routes_mapper()
        request.matched_route = route_mapper.get_route('workspace')

        views = Views(request)

        response = views.login()

        expected_response = {
            'came_from': 'http://example.com/workspace',
            'userid': 'bob',
            'password': '******'
        }
        self.assertDictEqual(response, expected_response)
        u.validate_password.assert_called_with('mypw')
        self.assertFalse(remember.called)
コード例 #2
0
ファイル: test_views.py プロジェクト: wangjs/MAGMa
    def test_login_authenticated(self):
        from pyramid.exceptions import Forbidden
        request = testing.DummyRequest()
        request.user = '******'
        request.exception = Forbidden()
        views = Views(request)

        response = views.login()

        self.assertIsInstance(response, Forbidden)
コード例 #3
0
ファイル: test_views.py プロジェクト: wangjs/MAGMa
    def test_login_auto_register_from_login(self, user, remember):
        user.generate.return_value = User('bob', 'bob dob',
                                          '*****@*****.**')
        from pyramid.httpexceptions import HTTPFound
        self.config.add_route('home', '/')
        self.config.add_route('login', '/login')
        request = testing.DummyRequest()
        request.user = None
        request.url = 'http://example.com/login'
        route_mapper = self.config.get_routes_mapper()
        request.matched_route = route_mapper.get_route('login')
        request.registry.settings['auto_register'] = True
        views = Views(request)

        response = views.login()

        self.assertIsInstance(response, HTTPFound)
        self.assertEqual(response.location, 'http://example.com/')
        user.generate.assert_called_with()
        remember.assert_called_with(request, 'bob')
コード例 #4
0
ファイル: test_views.py プロジェクト: wangjs/MAGMa
    def test_login_get_from_loginpage(self):
        self.config.add_route('home', '/')
        self.config.add_route('login', '/login')
        request = testing.DummyRequest()
        request.user = None
        request.url = 'http://example.com/login'
        route_mapper = self.config.get_routes_mapper()
        request.matched_route = route_mapper.get_route('login')
        views = Views(request)

        response = views.login()

        expected_response = {
            'came_from': 'http://example.com/',
            'userid': '',
            'password': ''
        }
        self.assertDictEqual(response, expected_response)
        self.assertEqual(request.response.headers['WWW-Authenticate'], 'MAC')
        self.assertEqual(request.response.status_int, 401)
コード例 #5
0
ファイル: test_views.py プロジェクト: wangjs/MAGMa
    def test_login_post_correct_pw(self, user, remember):
        from pyramid.httpexceptions import HTTPFound
        u = Mock(User)
        u.validate_password.return_value = True
        user.by_id.return_value = u
        self.config.add_route('login', '/login')
        self.config.add_route('workspace', '/workspace')
        post = {'userid': 'bob', 'password': '******'}
        params = {'came_from': 'http://example.com/workspace'}
        request = testing.DummyRequest(post=post, params=params)
        request.user = None
        route_mapper = self.config.get_routes_mapper()
        request.matched_route = route_mapper.get_route('workspace')
        views = Views(request)

        response = views.login()

        self.assertIsInstance(response, HTTPFound)
        self.assertEqual(response.location, 'http://example.com/workspace')
        u.validate_password.assert_called_with('mypw')
        remember.assert_called_with(request, 'bob')
コード例 #6
0
ファイル: test_views.py プロジェクト: wangjs/MAGMa
    def test_login_auto_register_mac_challenge(self):
        self.config.add_route('status.json', '/status')
        self.config.add_route('home', '/')
        self.config.add_route('login', '/login')
        request = testing.DummyRequest()
        request.user = None
        request.url = 'http://example.com/status'
        request.method = u'PUT'
        route_mapper = self.config.get_routes_mapper()
        request.matched_route = route_mapper.get_route('status.json')
        request.registry.settings['auto_register'] = True
        views = Views(request)

        response = views.login()

        expected_response = {
            'came_from': 'http://example.com/status',
            'userid': '',
            'password': ''
        }
        self.assertDictEqual(response, expected_response)
        self.assertEqual(request.response.headers['WWW-Authenticate'], 'MAC')
        self.assertEqual(request.response.status_int, 401)