Metadata-Version: 1.1
Name: testing-aiohttp
Version: 0.0.7
Summary: UNKNOWN
Home-page: https://github.com/genericclient/testing-aiohttp
Author: Flavio Curella
Author-email: flavio.curella@gmail.com
License: UNKNOWN
Description-Content-Type: UNKNOWN
Description: ===============
        testing-aiohttp
        ===============
        
        .. image:: https://travis-ci.org/genericclient/testing-aiohttp.svg?branch=master
            :target: https://travis-ci.org/genericclient/testing-aiohttp
        
        Testing utilities for `aiohttp`. Python 3.5+ only.
        
        
        Installation
        ============
        
        ::
        
            $ pip install testing-aiohttp
        
        Usage
        =====
        
        ``RouteManager``
        ---------------------------
        
        ``RouteManager`` will mock up responses for `aiohttp.Client``.
        
        The API is inspired by the ``responses`` library::
        
            from aiohttp import ClientSession
            from asynctest import TestCase
        
            from testing_aiohttp import RouteManager
        
        
            # Create your tests here.
            class MyTestCase(TestCase):
                async def test_response_data(self):
                    with RouteManager() as rsps:
                        rsps.add('GET', 'http://example.org/users', json=[
                            {
                                'id': 1,
                                'username': 'user1',
                                'group': 'watchers',
                            },
                            {
                                'id': 2,
                                'username': 'user2',
                                'group': 'watchers',
                            },
                        ])
        
                        async with ClientSession() as session:
                            response = await session.get('http://example.org/users')
                        self.assertEqual(response, 200)
                        users = await response.json()
                        self.assertEqual(len(users), 2)
        
        ::
        
            from aiohttp import ClientSession
            from asynctest import TestCase
        
            from testing_aiohttp import RouteManager
        
        
            async def request_callback(request):
                return (200, {}, 'ok')
        
        
            class MyTestCase(TestCase):
        
                async def test_endpoint_detail_route(self):
                    with RouteManager() as rsps:
                        rsps.add_callback(
                            'POST', 'http://example.org/users/2/notify',
                            callback=request_callback,
                            content_type='application/json',
                        )
        
                        async with ClientSession() as session:
                            response = await session.post('http://example.org/users/2/notify')
                        self.assertEqual(await response.text(), 'ok')
        
        ::
            from aiohttp import ClientSession
            from asynctest import TestCase
        
            from testing_aiohttp.rsps import RouteManager, RouteNotFoundError
        
        
            class MyTestCase(TestCase):
                async def test_response_match_querystring(self):
                    with RouteManager() as rsps:
                        rsps.add('GET', 'http://example.org/users?username=user1', json=[
                            {
                                'id': 1,
                                'username': 'user1',
                                'group': 'watchers',
                            },
                        ], match_querystring=True)
        
                        with ClientSession() as session:
                            response = await session.get('http://example.org/users', params={'username': 'user1'})
                        self.assertEqual(response.status, 200)
                        users = await response.json()
                        self.assertEqual(len(users), 1)
        
                    with self.assertRaises(RouteNotFoundError):
                        with RouteManager() as rsps:
                            rsps.add('GET', 'http://example.org/users?username=user1', json=[
                                {
                                    'id': 1,
                                    'username': 'user1',
                                    'group': 'watchers',
                                },
                            ], match_querystring=True)
        
                            with ClientSession() as session:
                                await session.get('http://example.org/users')
        
        
        License
        =======
        
        Licensed under the MIT License.
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
