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())
예제 #2
0
    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)
예제 #6
0
    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)
예제 #8
0
    def test_authorization_url_tenant(self):
        auth_client = MicrosoftClient()

        self.assertEqual(
            auth_client._authorization_url,
            "https://login.microsoftonline.com/test/oauth2/v2.0/authorize",
        )
예제 #9
0
    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)
예제 #13
0
 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))