Example #1
0
class TestAuthClientAuthorizeToken(unittest.TestCase):

    server_url = TEST_SERVER_URL

    def setUp(self):
        self.client = Client("abc", "xyz", server_url=self.server_url)
        responses.add(responses.POST,
                      'https://server/v1/authorization',
                      body='{"access_token": "izatoken"}',
                      content_type='application/json')

    @responses.activate
    def test_authorize_token_with_default_arguments(self):
        assertion = "A_FAKE_ASSERTION"
        token = self.client.authorize_token(assertion)
        self.assertEquals(token, "izatoken")
        req_body = json.loads(responses.calls[0].request.body)
        self.assertEquals(
            req_body, {
                "assertion": assertion,
                "client_id": self.client.client_id,
                "state": "x",
                "response_type": "token",
            })

    @responses.activate
    def test_authorize_token_with_explicit_scope(self):
        assertion = "A_FAKE_ASSERTION"
        token = self.client.authorize_token(assertion, scope="storage")
        self.assertEquals(token, "izatoken")
        req_body = json.loads(responses.calls[0].request.body)
        self.assertEquals(
            req_body, {
                "assertion": assertion,
                "client_id": self.client.client_id,
                "state": "x",
                "response_type": "token",
                "scope": "storage",
            })

    @responses.activate
    def test_authorize_token_with_explicit_client_id(self):
        assertion = "A_FAKE_ASSERTION"
        token = self.client.authorize_token(assertion, client_id="cba")
        self.assertEquals(token, "izatoken")
        req_body = json.loads(responses.calls[0].request.body)
        self.assertEquals(
            req_body, {
                "assertion": assertion,
                "client_id": "cba",
                "state": "x",
                "response_type": "token",
            })
Example #2
0
class TestAuthClientAuthorizeToken(unittest.TestCase):

    server_url = TEST_SERVER_URL

    def setUp(self):
        self.client = Client("abc", "xyz", server_url=self.server_url)
        responses.add(responses.POST,
                      'https://server/v1/authorization',
                      body='{"access_token": "izatoken"}',
                      content_type='application/json')

    @responses.activate
    def test_authorize_token_with_default_arguments(self):
        assertion = "A_FAKE_ASSERTION"
        token = self.client.authorize_token(assertion)
        self.assertEquals(token, "izatoken")
        req_body = json.loads(responses.calls[0].request.body)
        self.assertEquals(req_body, {
            "assertion": assertion,
            "client_id": self.client.client_id,
            "state": "x",
            "response_type": "token",
        })

    @responses.activate
    def test_authorize_token_with_explicit_scope(self):
        assertion = "A_FAKE_ASSERTION"
        token = self.client.authorize_token(assertion, scope="storage")
        self.assertEquals(token, "izatoken")
        req_body = json.loads(responses.calls[0].request.body)
        self.assertEquals(req_body, {
            "assertion": assertion,
            "client_id": self.client.client_id,
            "state": "x",
            "response_type": "token",
            "scope": "storage",
        })

    @responses.activate
    def test_authorize_token_with_explicit_client_id(self):
        assertion = "A_FAKE_ASSERTION"
        token = self.client.authorize_token(assertion, client_id="cba")
        self.assertEquals(token, "izatoken")
        req_body = json.loads(responses.calls[0].request.body)
        self.assertEquals(req_body, {
            "assertion": assertion,
            "client_id": "cba",
            "state": "x",
            "response_type": "token",
        })
Example #3
0
def get_oauth_token(client_id=CLIENT_ID, oauth_server=OAUTH_SERVER,
                    auth_server=AUTH_SERVER, email=EMAIL, password=PASSWORD):

    if password is None:
        raise Exception('You must set FXA_PASSWORD')

    print('Getting an oauth token from FxA')
    oauth_client = OAuthClient(client_id, server_url=oauth_server)
    session = Client(server_url=auth_server).login(email, password=password)
    assertion = session.get_identity_assertion(oauth_server)

    return oauth_client.authorize_token(assertion, scope="profile")
Example #4
0
def get_oauth_token(client_id=CLIENT_ID,
                    oauth_server=OAUTH_SERVER,
                    auth_server=AUTH_SERVER,
                    email=EMAIL,
                    password=PASSWORD):

    if password is None:
        raise Exception('You must set FXA_PASSWORD')

    print('Getting an oauth token from FxA')
    oauth_client = OAuthClient(client_id, server_url=oauth_server)
    session = Client(server_url=auth_server).login(email, password=password)
    assertion = session.get_identity_assertion(oauth_server)

    return oauth_client.authorize_token(assertion, scope="profile")
Example #5
0
class TestAuthClientAuthorizeToken(unittest.TestCase):

    server_url = TEST_SERVER_URL

    def setUp(self):
        self.client = Client("abc", "xyz", server_url=self.server_url)
        responses.add(responses.POST,
                      'https://server/v1/authorization',
                      body='{"access_token": "izatoken"}',
                      content_type='application/json')
        add_jwks_response()

    @responses.activate
    def test_authorize_token_with_default_arguments(self):
        assertion = "A_FAKE_ASSERTION"
        token = self.client.authorize_token(assertion)
        self.assertEqual(token, "izatoken")
        req_body = json.loads(_decoded(responses.calls[0].request.body))
        self.assertEqual(
            req_body, {
                "assertion": assertion,
                "client_id": self.client.client_id,
                "state": AnyStringValue(),
                "response_type": "token",
            })

    @responses.activate
    def test_authorize_token_with_explicit_scope(self):
        assertion = "A_FAKE_ASSERTION"
        token = self.client.authorize_token(assertion, scope="storage")
        self.assertEqual(token, "izatoken")
        req_body = json.loads(_decoded(responses.calls[0].request.body))
        self.assertEqual(
            req_body, {
                "assertion": assertion,
                "client_id": self.client.client_id,
                "state": AnyStringValue(),
                "response_type": "token",
                "scope": "storage",
            })

    @responses.activate
    def test_authorize_token_with_explicit_client_id(self):
        assertion = "A_FAKE_ASSERTION"
        token = self.client.authorize_token(assertion, client_id="cba")
        self.assertEqual(token, "izatoken")
        req_body = json.loads(_decoded(responses.calls[0].request.body))
        self.assertEqual(
            req_body, {
                "assertion": assertion,
                "client_id": "cba",
                "state": AnyStringValue(),
                "response_type": "token",
            })

    @responses.activate
    def test_authorize_token_with_session_object(self):
        session = mock.Mock()
        session.get_identity_assertion.return_value = "IDENTITY"
        token = self.client.authorize_token(session)
        session.get_identity_assertion.assert_called_once_with(
            audience=TEST_SERVER_URL, service=self.client.client_id)
        self.assertEqual(token, "izatoken")
        req_body = json.loads(_decoded(responses.calls[0].request.body))
        self.assertEqual(
            req_body, {
                "assertion": "IDENTITY",
                "client_id": self.client.client_id,
                "state": AnyStringValue(),
                "response_type": "token",
            })