def test_resources_from_middle(self, mock_remote_app):
        startup_func = resources_from_middle('MIDDLE_TEST')
        session = {
            'user_data': {
                'uuid': 'a82670c2-027e-4079-b5c7-81f2433041b3',
                'email': '*****@*****.**',
                'accounts': [self.account_uuid],
            },
            'access_token':
            ['ZHNkc2VyZWY', '17a799ddbbbfb855f25e89d0bf51ae19'],
        }

        response = mock_remote_app.get_instance.return_value.get.return_value
        response.status = 200
        response.data = {'msg': 'some data'}
        response.headers = {}

        with patch('flask_identity_client.startup_funcs.session', session):
            self.assertTrue(startup_func() is None)

        mock_remote_app.get_instance.assert_called_once_with()
        mock_remote_app.get_instance.return_value.get.assert_called_once_with(
            'http://middle.localhost/resources/'
            '?oauth_token_secret=17a799ddbbbfb855f25e89d0bf51ae19'
            '&oauth_scope=http%3A%2F%2Fmiddle.localhost%2Fresources%2F',
            headers={
                'Accept': 'application/json',
                'Authorization': 'Basic WDpZV1J6Wm1Ga2MyWm1aR0Z6WkE=',
            })
        self.assertEqual(session['resources'].data, {'msg': 'some data'})
        self.assertTrue(session['resources'].etag is None)
        self.assertTrue(session['resources'].expires is None)
    def test_really_unknown_response(self, mock_remote_app):
        startup_func = resources_from_middle('MIDDLE_TEST')
        session = {
            'user_data': {
                'uuid': 'a82670c2-027e-4079-b5c7-81f2433041b3',
                'email': '*****@*****.**',
                'accounts': [self.account_uuid],
            },
            'access_token':
            ['ZHNkc2VyZWY', '17a799ddbbbfb855f25e89d0bf51ae19'],
        }

        response = mock_remote_app.get_instance.return_value.get.return_value
        response.status = 529
        response.data = 'unknown status'
        response.headers = {}

        from flask_identity_client.startup_funcs import app
        with patch('flask_identity_client.startup_funcs.session', session), \
             patch.object(app.logger, 'getChild') as mock_child:

            self.assertTrue(startup_func() is None)
            mock_child.assert_called_once_with('resources_from_middle')
            mock_child.return_value.getChild.assert_called_once_with(
                'MIDDLE_TEST')
            call_args = mock_child.return_value.getChild.return_value.error.call_args[
                0]
            self.assertEqual(call_args[0], '(%s) code:%s - %s')
            self.assertEqual(call_args[1], 'Code529')
            self.assertEqual(call_args[2], 529)
            self.assertTrue(isinstance(call_args[3], HTTPException))

        mock_remote_app.get_instance.assert_called_once_with()
        self.assertTrue(session['resources'] is None)
    def test_error(self, mock_remote_app):
        startup_func = resources_from_middle('MIDDLE_TEST')
        session = {
            'user_data': {
                'uuid': 'a82670c2-027e-4079-b5c7-81f2433041b3',
                'email': '*****@*****.**',
                'accounts': [self.account_uuid],
            },
            'access_token':
            ['ZHNkc2VyZWY', '17a799ddbbbfb855f25e89d0bf51ae19'],
        }

        from flask_identity_client.startup_funcs import app
        mock_remote_app.get_instance.return_value.get.side_effect = HttpLib2Error

        with patch('flask_identity_client.startup_funcs.session', session), \
             patch.object(app.logger, 'getChild') as mock_child:

            self.assertTrue(startup_func() is None)
            mock_child.assert_called_once_with('resources_from_middle')
            mock_child.return_value.getChild.assert_called_once_with(
                'MIDDLE_TEST')
            call_args = mock_child.return_value.getChild.return_value.error.call_args[
                0]
            self.assertEqual(call_args[0], '(%s) %s')
            self.assertEqual(call_args[1], 'HttpLib2Error')
            self.assertTrue(isinstance(call_args[2], HttpLib2Error))

        mock_remote_app.get_instance.assert_called_once_with()
        self.assertTrue(session['resources'] is None)
Beispiel #4
0
    def test_resources_from_middle(self, mock_remote_app):
        startup_func = resources_from_middle('MIDDLE_TEST')
        session = {
            'user_data': {
                'uuid': 'a82670c2-027e-4079-b5c7-81f2433041b3',
                'email': '*****@*****.**',
                'accounts': [self.account_uuid],
            },
            'access_token': ['ZHNkc2VyZWY', '17a799ddbbbfb855f25e89d0bf51ae19'],
        }

        response = mock_remote_app.get_instance.return_value.get.return_value
        response.status = 200
        response.data = { 'msg': 'some data' }
        response.headers = {}

        with patch('flask_identity_client.startup_funcs.session', session):
            self.assertTrue(startup_func() is None)

        mock_remote_app.get_instance.assert_called_once_with()
        mock_remote_app.get_instance.return_value.get.assert_called_once_with(
            'http://middle.localhost/resources/'
            '?oauth_token_secret=17a799ddbbbfb855f25e89d0bf51ae19'
            '&oauth_scope=http%3A%2F%2Fmiddle.localhost%2Fresources%2F',
            headers = {
                'Accept': 'application/json',
                'Authorization': 'Basic WDpZV1J6Wm1Ga2MyWm1aR0Z6WkE=',
            }
        )
        self.assertEqual(session['resources'].data, { 'msg': 'some data' })
        self.assertTrue(session['resources'].etag is None)
        self.assertTrue(session['resources'].expires is None)
Beispiel #5
0
    def test_really_unknown_response(self, mock_remote_app):
        startup_func = resources_from_middle('MIDDLE_TEST')
        session = {
            'user_data': {
                'uuid': 'a82670c2-027e-4079-b5c7-81f2433041b3',
                'email': '*****@*****.**',
                'accounts': [self.account_uuid],
            },
            'access_token': ['ZHNkc2VyZWY', '17a799ddbbbfb855f25e89d0bf51ae19'],
        }

        response = mock_remote_app.get_instance.return_value.get.return_value
        response.status = 529
        response.data = 'unknown status'
        response.headers = {}

        from flask_identity_client.startup_funcs import app
        with patch('flask_identity_client.startup_funcs.session', session), \
             patch.object(app.logger, 'getChild') as mock_child:

            self.assertTrue(startup_func() is None)
            mock_child.assert_called_once_with('resources_from_middle')
            mock_child.return_value.getChild.assert_called_once_with('MIDDLE_TEST')
            call_args = mock_child.return_value.getChild.return_value.error.call_args[0]
            self.assertEqual(call_args[0], '(%s) code:%s - %s')
            self.assertEqual(call_args[1], 'Code529')
            self.assertEqual(call_args[2], 529)
            self.assertTrue(isinstance(call_args[3], HTTPException))

        mock_remote_app.get_instance.assert_called_once_with()
        self.assertTrue(session['resources'] is None)
Beispiel #6
0
    def test_error(self, mock_remote_app):
        startup_func = resources_from_middle('MIDDLE_TEST')
        session = {
            'user_data': {
                'uuid': 'a82670c2-027e-4079-b5c7-81f2433041b3',
                'email': '*****@*****.**',
                'accounts': [self.account_uuid],
            },
            'access_token': ['ZHNkc2VyZWY', '17a799ddbbbfb855f25e89d0bf51ae19'],
        }

        from flask_identity_client.startup_funcs import app
        mock_remote_app.get_instance.return_value.get.side_effect = HttpLib2Error

        with patch('flask_identity_client.startup_funcs.session', session), \
             patch.object(app.logger, 'getChild') as mock_child:

            self.assertTrue(startup_func() is None)
            mock_child.assert_called_once_with('resources_from_middle')
            mock_child.return_value.getChild.assert_called_once_with('MIDDLE_TEST')
            call_args = mock_child.return_value.getChild.return_value.error.call_args[0]
            self.assertEqual(call_args[0], '(%s) %s')
            self.assertEqual(call_args[1], 'HttpLib2Error')
            self.assertTrue(isinstance(call_args[2], HttpLib2Error))

        mock_remote_app.get_instance.assert_called_once_with()
        self.assertTrue(session['resources'] is None)
Beispiel #7
0
    def test_not_expired(self, mock_remote_app):
        startup_func = resources_from_middle('MIDDLE_TEST')
        expires = time() + 600
        session = {
            'user_data': {
                'uuid': 'a82670c2-027e-4079-b5c7-81f2433041b3',
                'email': '*****@*****.**',
                'accounts': [self.account_uuid],
            },
            'access_token': ['ZHNkc2VyZWY', '17a799ddbbbfb855f25e89d0bf51ae19'],
            'resources': ({ 'msg': 'some data' }, '"d41d8cd98f00b204e9800998ecf8427e"', expires),
        }

        with patch('flask_identity_client.startup_funcs.session', session):
            self.assertTrue(startup_func() is None)

        self.assertFalse(mock_remote_app.get_instance.called)
        self.assertEqual(session['resources'].data, { 'msg': 'some data' })
        self.assertEqual(session['resources'].etag, '"d41d8cd98f00b204e9800998ecf8427e"')
        self.assertEqual(session['resources'].expires, expires)
    def test_not_expired(self, mock_remote_app):
        startup_func = resources_from_middle('MIDDLE_TEST')
        expires = time() + 600
        session = {
            'user_data': {
                'uuid': 'a82670c2-027e-4079-b5c7-81f2433041b3',
                'email': '*****@*****.**',
                'accounts': [self.account_uuid],
            },
            'access_token':
            ['ZHNkc2VyZWY', '17a799ddbbbfb855f25e89d0bf51ae19'],
            'resources': ({
                'msg': 'some data'
            }, '"d41d8cd98f00b204e9800998ecf8427e"', expires),
        }

        with patch('flask_identity_client.startup_funcs.session', session):
            self.assertTrue(startup_func() is None)

        self.assertFalse(mock_remote_app.get_instance.called)
        self.assertEqual(session['resources'].data, {'msg': 'some data'})
        self.assertEqual(session['resources'].etag,
                         '"d41d8cd98f00b204e9800998ecf8427e"')
        self.assertEqual(session['resources'].expires, expires)