(factory)
| 93 | |
| 94 | |
| 95 | def test_oauth2_authorize(factory): |
| 96 | request = factory.get("/login") |
| 97 | request.session = factory.session |
| 98 | |
| 99 | oauth = OAuth() |
| 100 | client = oauth.register( |
| 101 | "dev", |
| 102 | client_id="dev", |
| 103 | client_secret="dev", |
| 104 | api_base_url="https://resource.test/api", |
| 105 | access_token_url="https://provider.test/token", |
| 106 | authorize_url="https://provider.test/authorize", |
| 107 | ) |
| 108 | rv = client.authorize_redirect(request, "https://client.test/callback") |
| 109 | assert rv.status_code == 302 |
| 110 | url = rv.get("Location") |
| 111 | assert "state=" in url |
| 112 | state = dict(url_decode(urlparse.urlparse(url).query))["state"] |
| 113 | |
| 114 | with mock.patch("requests.sessions.Session.send") as send: |
| 115 | send.return_value = mock_send_value(get_bearer_token()) |
| 116 | request2 = factory.get(f"/authorize?state={state}&code=foo") |
| 117 | request2.session = request.session |
| 118 | |
| 119 | token = client.authorize_access_token(request2) |
| 120 | assert token["access_token"] == "a" |
| 121 | |
| 122 | |
| 123 | def test_oauth2_authorize_access_denied(factory): |
nothing calls this directly
no test coverage detected
searching dependent graphs…