def test_authorization_url_with_o365(self): base_url = MicrosoftClient._authorization_url expected_auth_url = self._get_auth_url(base_url) auth_client = MicrosoftClient(state=STATE) self._assert_auth_url(expected_auth_url, auth_client.authorization_url())
def test_authorization_url(self): auth_client = MicrosoftClient(state=STATE) base_url = auth_client.openid_config["authorization_endpoint"] expected_auth_url = self._get_auth_url(base_url) self._assert_auth_url(expected_auth_url, auth_client.authorization_url())
def test_authorization_url_with_xbl(self): base_url = MicrosoftClient._xbox_authorization_url expected_auth_url = self._get_auth_url( base_url, scopes=MicrosoftClient.SCOPE_XBL) auth_client = MicrosoftClient(state=STATE) self._assert_auth_url(expected_auth_url, auth_client.authorization_url())
def test_get_xbox_profile_bad_response(self, mock_requests): mock_response = Mock() mock_response.status_code = 400 mock_requests.post.return_value = mock_response auth_client = MicrosoftClient() auth_client.xbox_token = {"Token": XBOX_TOKEN} xbox_profile = auth_client.get_xbox_profile() self.assertEqual({}, xbox_profile)
def test_fetch_xbox_token_bad_response(self, mock_requests): mock_response = Mock() mock_response.status_code = 400 mock_requests.post.return_value = mock_response auth_client = MicrosoftClient() auth_client.token = {"access_token": ACCESS_TOKEN} xbox_token = auth_client.fetch_xbox_token() self.assertEqual({}, xbox_token) self.assertEqual({}, auth_client.xbox_token)
def test_alternative_site(self): self.assertEqual(Site.objects.get(pk=1).domain, "testserver") Site.objects.create(domain="example.com", name="example.com") request = self.factory.get("/", HTTP_HOST="example.com") self.assertEqual( Site.objects.get_current(request).domain, "example.com") client = MicrosoftClient(request=request) self.assertIn("example.com", client.authorization_url()[0])
def test_get_xbox_profile(self, mock_requests): mock_response = Mock() mock_response.status_code = 200 mock_response.json.return_value = { "DisplayClaims": { "xui": [XBOX_PROFILE] } } mock_requests.post.return_value = mock_response auth_client = MicrosoftClient() auth_client.xbox_token = {"Token": XBOX_TOKEN} xbox_profile = auth_client.get_xbox_profile() self.assertEqual(XBOX_PROFILE, xbox_profile)
def test_authorization_url_tenant(self): auth_client = MicrosoftClient() self.assertEqual( auth_client._authorization_url, "https://login.microsoftonline.com/test/oauth2/v2.0/authorize", )
def test_token_url_tenant(self): auth_client = MicrosoftClient() self.assertEqual( auth_client._token_url, "https://login.microsoftonline.com/test/oauth2/v2.0/token", )
def test_get_xbox_profile_params(self, mock_requests): expected_headers = { "Content-type": "application/json", "Accept": "application/json", } expected_data = json.dumps({ "RelyingParty": "http://xboxlive.com", "TokenType": "JWT", "Properties": { "UserTokens": [XBOX_TOKEN], "SandboxId": "RETAIL", }, }) auth_client = MicrosoftClient() auth_client.xbox_token = {"Token": XBOX_TOKEN} auth_client.get_xbox_profile() mock_requests.post.assert_called_with( MicrosoftClient._profile_url, data=expected_data, headers=expected_headers, )
def test_fetch_xbox_token_params(self, mock_requests): expected_headers = { "Content-type": "application/json", "Accept": "application/json", } expected_data = json.dumps({ "RelyingParty": "http://auth.xboxlive.com", "TokenType": "JWT", "Properties": { "AuthMethod": "RPS", "SiteName": "user.auth.xboxlive.com", "RpsTicket": "d={}".format(ACCESS_TOKEN), }, }) auth_client = MicrosoftClient() auth_client.token = {"access_token": ACCESS_TOKEN} auth_client.fetch_xbox_token() mock_requests.post.assert_called_with( MicrosoftClient._xbox_token_url, data=expected_data, headers=expected_headers, )
def test_get_xbox_profile_no_token(self): auth_client = MicrosoftClient() xbox_profile = auth_client.get_xbox_profile() self.assertEqual({}, xbox_profile)
def test_authorization_with_proxies(self): auth_client = MicrosoftClient(state=STATE) self.assertEqual(auth_client.proxies, {"all": "http://1.2.3.4:8080"})
def test_redirect_uri(self): auth_client = MicrosoftClient() self.assertEqual(REDIRECT_URI, auth_client.redirect_uri)
def test_state(self): auth_client = MicrosoftClient(state=STATE) self.assertEqual(STATE, auth_client.state)
def test_xbox_scopes(self): expected_scopes = " ".join(MicrosoftClient.SCOPE_XBL) auth_client = MicrosoftClient() self.assertEqual(expected_scopes, auth_client.scope)
def test_scope(self): expected_scopes = " ".join(MicrosoftClient.SCOPE_MICROSOFT) auth_client = MicrosoftClient() self.assertEqual(expected_scopes, auth_client.scope)
def test_valid_scopes_xbox(self): scopes = MicrosoftClient.SCOPE_XBL auth_client = MicrosoftClient() self.assertTrue(auth_client.valid_scopes(scopes))
def test_valid_scopes_invalid(self): scopes = ["fake"] auth_client = MicrosoftClient() self.assertFalse(auth_client.valid_scopes(scopes))
def test_valid_scopes(self): scopes = MicrosoftClient.SCOPE_MICROSOFT auth_client = MicrosoftClient() self.assertTrue(auth_client.valid_scopes(scopes))