def test_get_access_token(self, mock_requests): client_id = "client_id" client_secret = "client_secret" code = "code" expected_token = "access_token" mock_requests.post.return_value = MockResponse({"access_token": expected_token}) actual_token = GithubAPI.get_access_token(client_id, client_secret, code) mock_requests.post.assert_called_once_with( "url/access_token", {"client_secret": client_secret, "code": code, "client_id": client_id}, headers={"accept": "application/json"}, ) self.assertEqual(actual_token, expected_token)
def get(self, request): if 'code' in request.query_params: code = request.query_params['code'] access_token = GithubAPI.get_access_token(CLIENT_ID, SECRET_KEY, code) resp_data = GithubAPI.get_user(access_token) print(resp_data) user = GithubUserBuilder.build(resp_data) user.save() request.session['access_token'] = access_token request.session['user'] = user return redirect('/') else: raise Exception()