Beispiel #1
0
    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)
Beispiel #2
0
    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()