class TestAuthClientAuthorizeCode(unittest.TestCase): server_url = TEST_SERVER_URL def setUp(self): self.client = Client("abc", "xyz", server_url=self.server_url) body = '{"redirect": "https://relier/page?code=qed&state=blah"}' responses.add(responses.POST, 'https://server/v1/authorization', body=body, content_type='application/json') @responses.activate def test_authorize_code_with_default_arguments(self): assertion = "A_FAKE_ASSERTION" code = self.client.authorize_code(assertion) self.assertEquals(code, "qed") req_body = json.loads(responses.calls[0].request.body) self.assertEquals( req_body, { "assertion": assertion, "client_id": self.client.client_id, "state": "x", }) @responses.activate def test_authorize_code_with_explicit_scope(self): assertion = "A_FAKE_ASSERTION" code = self.client.authorize_code(assertion, scope="profile:email") self.assertEquals(code, "qed") req_body = json.loads(responses.calls[0].request.body) self.assertEquals( req_body, { "assertion": assertion, "client_id": self.client.client_id, "state": "x", "scope": "profile:email", }) @responses.activate def test_authorize_code_with_explicit_client_id(self): assertion = "A_FAKE_ASSERTION" code = self.client.authorize_code(assertion, client_id="cba") self.assertEquals(code, "qed") req_body = json.loads(responses.calls[0].request.body) self.assertEquals(req_body, { "assertion": assertion, "client_id": "cba", "state": "x", })
class TestAuthClientAuthorizeCode(unittest.TestCase): server_url = TEST_SERVER_URL def setUp(self): self.client = Client("abc", "xyz", server_url=self.server_url) body = '{"redirect": "https://relier/page?code=qed&state=blah"}' responses.add(responses.POST, 'https://server/v1/authorization', body=body, content_type='application/json') @responses.activate def test_authorize_code_with_default_arguments(self): assertion = "A_FAKE_ASSERTION" code = self.client.authorize_code(assertion) self.assertEquals(code, "qed") req_body = json.loads(responses.calls[0].request.body) self.assertEquals(req_body, { "assertion": assertion, "client_id": self.client.client_id, "state": "x", }) @responses.activate def test_authorize_code_with_explicit_scope(self): assertion = "A_FAKE_ASSERTION" code = self.client.authorize_code(assertion, scope="profile:email") self.assertEquals(code, "qed") req_body = json.loads(responses.calls[0].request.body) self.assertEquals(req_body, { "assertion": assertion, "client_id": self.client.client_id, "state": "x", "scope": "profile:email", }) @responses.activate def test_authorize_code_with_explicit_client_id(self): assertion = "A_FAKE_ASSERTION" code = self.client.authorize_code(assertion, client_id="cba") self.assertEquals(code, "qed") req_body = json.loads(responses.calls[0].request.body) self.assertEquals(req_body, { "assertion": assertion, "client_id": "cba", "state": "x", })
class TestAuthClientAuthorizeCode(unittest.TestCase): server_url = TEST_SERVER_URL def setUp(self): self.client = Client("abc", "xyz", server_url=self.server_url) body = '{"redirect": "https://relier/page?code=qed&state=blah"}' responses.add(responses.POST, 'https://server/v1/authorization', body=body, content_type='application/json') @responses.activate def test_authorize_code_with_default_arguments(self): assertion = "A_FAKE_ASSERTION" code = self.client.authorize_code(assertion) self.assertEquals(code, "qed") req_body = json.loads(_decoded(responses.calls[0].request.body)) self.assertEquals( req_body, { "assertion": assertion, "client_id": self.client.client_id, "state": "x", }) @responses.activate def test_authorize_code_with_explicit_scope(self): assertion = "A_FAKE_ASSERTION" code = self.client.authorize_code(assertion, scope="profile:email") self.assertEquals(code, "qed") req_body = json.loads(_decoded(responses.calls[0].request.body)) self.assertEquals( req_body, { "assertion": assertion, "client_id": self.client.client_id, "state": "x", "scope": "profile:email", }) @responses.activate def test_authorize_code_with_explicit_client_id(self): assertion = "A_FAKE_ASSERTION" code = self.client.authorize_code(assertion, client_id="cba") self.assertEquals(code, "qed") req_body = json.loads(_decoded(responses.calls[0].request.body)) self.assertEquals(req_body, { "assertion": assertion, "client_id": "cba", "state": "x", }) @responses.activate def test_authorize_code_with_pkce_challenge(self): assertion = "A_FAKE_ASSERTION" challenge, verifier = self.client.generate_pkce_challenge() self.assertEqual(sorted(challenge), ["code_challenge", "code_challenge_method"]) self.assertEqual(sorted(verifier), ["code_verifier"]) code = self.client.authorize_code(assertion, **challenge) self.assertEquals(code, "qed") req_body = json.loads(_decoded(responses.calls[0].request.body)) self.assertEquals( req_body, { "assertion": assertion, "client_id": self.client.client_id, "state": "x", "code_challenge": challenge["code_challenge"], "code_challenge_method": challenge["code_challenge_method"], }) @responses.activate def test_authorize_code_with_session_object(self): session = mock.Mock() session.get_identity_assertion.return_value = "IDENTITY" code = self.client.authorize_code(session) session.get_identity_assertion.assert_called_once_with( audience=TEST_SERVER_URL, service=self.client.client_id) self.assertEquals(code, "qed") req_body = json.loads(_decoded(responses.calls[0].request.body)) self.assertEquals( req_body, { "assertion": "IDENTITY", "client_id": self.client.client_id, "state": "x", })
class TestAuthClientAuthorizeCode(unittest.TestCase): server_url = TEST_SERVER_URL def setUp(self): self.client = Client("abc", "xyz", server_url=self.server_url) body = '{"redirect": "https://relier/page?code=qed&state=blah"}' responses.add(responses.POST, 'https://server/v1/authorization', body=body, content_type='application/json') @responses.activate def test_authorize_code_with_default_arguments(self): assertion = "A_FAKE_ASSERTION" code = self.client.authorize_code(assertion) self.assertEquals(code, "qed") req_body = json.loads(_decoded(responses.calls[0].request.body)) self.assertEquals(req_body, { "assertion": assertion, "client_id": self.client.client_id, "state": "x", }) @responses.activate def test_authorize_code_with_explicit_scope(self): assertion = "A_FAKE_ASSERTION" code = self.client.authorize_code(assertion, scope="profile:email") self.assertEquals(code, "qed") req_body = json.loads(_decoded(responses.calls[0].request.body)) self.assertEquals(req_body, { "assertion": assertion, "client_id": self.client.client_id, "state": "x", "scope": "profile:email", }) @responses.activate def test_authorize_code_with_explicit_client_id(self): assertion = "A_FAKE_ASSERTION" code = self.client.authorize_code(assertion, client_id="cba") self.assertEquals(code, "qed") req_body = json.loads(_decoded(responses.calls[0].request.body)) self.assertEquals(req_body, { "assertion": assertion, "client_id": "cba", "state": "x", }) @responses.activate def test_authorize_code_with_pkce_challenge(self): assertion = "A_FAKE_ASSERTION" challenge, verifier = self.client.generate_pkce_challenge() self.assertEqual(sorted(challenge), ["code_challenge", "code_challenge_method"]) self.assertEqual(sorted(verifier), ["code_verifier"]) code = self.client.authorize_code(assertion, **challenge) self.assertEquals(code, "qed") req_body = json.loads(_decoded(responses.calls[0].request.body)) self.assertEquals(req_body, { "assertion": assertion, "client_id": self.client.client_id, "state": "x", "code_challenge": challenge["code_challenge"], "code_challenge_method": challenge["code_challenge_method"], }) @responses.activate def test_authorize_code_with_session_object(self): session = mock.Mock() session.get_identity_assertion.return_value = "IDENTITY" code = self.client.authorize_code(session) session.get_identity_assertion.assert_called_once_with( audience=TEST_SERVER_URL, service=self.client.client_id ) self.assertEquals(code, "qed") req_body = json.loads(_decoded(responses.calls[0].request.body)) self.assertEquals(req_body, { "assertion": "IDENTITY", "client_id": self.client.client_id, "state": "x", })