Esempio n. 1
0
    async def test_create_app_server_no_ports(self) -> None:
        code = AuthCode()
        app = create_auth_code_app(code)

        port = unused_port()
        async with create_app_server_once(app, host="127.0.0.1", port=port):
            with pytest.raises(RuntimeError, match="No free ports."):
                async with create_app_server(app, ports=[port]):
                    pass
Esempio n. 2
0
    async def test_create_app_server(self, client: ClientSession) -> None:
        code = AuthCode()
        app = create_auth_code_app(code)

        port = unused_port()
        async with create_app_server(app, host="127.0.0.1",
                                     ports=[port]) as url:
            assert url == URL(f"http://127.0.0.1:{port}")
            await self.assert_code_callback_success(code, client, url)
Esempio n. 3
0
 async def test_create_app_server_port_conflict(
         self, client: ClientSession) -> None:
     code = AuthCode()
     app = create_auth_code_app(code)
     outer_port = unused_port()
     inner_port = unused_port()
     async with create_app_server(app, ports=[outer_port,
                                              inner_port]) as url:
         assert url == URL(f"http://127.0.0.1:{outer_port}")
         async with create_app_server(app, ports=[outer_port,
                                                  inner_port]) as url:
             assert url == URL(f"http://127.0.0.1:{inner_port}")
             await self.assert_code_callback_success(code, client, url)
Esempio n. 4
0
    async def test_create_app_server_redirect(self,
                                              client: ClientSession) -> None:
        code = AuthCode()
        redirect_url = URL("http://redirect.url")
        app = create_auth_code_app(code, redirect_url=redirect_url)

        port = unused_port()
        async with create_app_server_once(app, host="127.0.0.1",
                                          port=port) as url:
            assert url == URL(f"http://127.0.0.1:{port}")
            await self.assert_code_callback_success(code,
                                                    client,
                                                    url,
                                                    redirect_url=redirect_url)
Esempio n. 5
0
    async def test_create_app_server_once_failure(
            self, client: ClientSession) -> None:
        code = AuthCode()
        app = create_auth_code_app(code)

        port = unused_port()
        async with create_app_server_once(app, host="127.0.0.1",
                                          port=port) as url:
            assert url == URL(f"http://127.0.0.1:{port}")

            async with client.get(url) as resp:
                assert resp.status == HTTPBadRequest.status_code
                text = await resp.text()
                assert text == "The 'code' query parameter is missing."

            with pytest.raises(AuthException,
                               match="failed to get an authorization code"):
                await code.wait()
Esempio n. 6
0
    async def test_error_other(self, client: ClientSession) -> None:
        code = AuthCode()
        app = create_auth_code_app(code)

        port = unused_port()
        async with create_app_server_once(app, host="127.0.0.1",
                                          port=port) as url:
            assert url == URL(f"http://127.0.0.1:{port}")

            async with client.get(url,
                                  params={
                                      "error": "other",
                                      "error_description": "Test Other"
                                  }) as resp:
                assert resp.status == HTTPBadRequest.status_code
                text = await resp.text()
                assert text == "Test Other"

            with pytest.raises(AuthException, match="Test Other"):
                await code.wait()