authentik.sources.oauth.tests.test_tasks

Test OAuth Source tasks

 1"""Test OAuth Source tasks"""
 2
 3from django.test import TestCase
 4from requests_mock import Mocker
 5
 6from authentik.sources.oauth.models import OAuthSource
 7from authentik.sources.oauth.tasks import update_well_known_jwks
 8
 9
10class TestOAuthSourceTasks(TestCase):
11    """Test OAuth Source tasks"""
12
13    def setUp(self) -> None:
14        self.source = OAuthSource.objects.create(
15            name="test",
16            slug="test",
17            provider_type="openidconnect",
18            authorization_url="",
19            profile_url="",
20            consumer_key="",
21        )
22
23    @Mocker()
24    def test_well_known_jwks(self, mock: Mocker):
25        """Test well_known update"""
26        self.source.oidc_well_known_url = "http://foo/.well-known/openid-configuration"
27        self.source.save()
28        mock.get(
29            self.source.oidc_well_known_url,
30            json={
31                "authorization_endpoint": "foo",
32                "token_endpoint": "foo",
33                "userinfo_endpoint": "foo",
34                "jwks_uri": "http://foo/jwks",
35            },
36        )
37        mock.get("http://foo/jwks", json={"foo": "bar"})
38        update_well_known_jwks.send()
39        self.source.refresh_from_db()
40        self.assertEqual(self.source.authorization_url, "foo")
41        self.assertEqual(self.source.access_token_url, "foo")
42        self.assertEqual(self.source.profile_url, "foo")
43        self.assertEqual(self.source.oidc_jwks_url, "http://foo/jwks")
44        self.assertEqual(
45            self.source.oidc_jwks,
46            {
47                "foo": "bar",
48            },
49        )
class TestOAuthSourceTasks(django.test.testcases.TestCase):
11class TestOAuthSourceTasks(TestCase):
12    """Test OAuth Source tasks"""
13
14    def setUp(self) -> None:
15        self.source = OAuthSource.objects.create(
16            name="test",
17            slug="test",
18            provider_type="openidconnect",
19            authorization_url="",
20            profile_url="",
21            consumer_key="",
22        )
23
24    @Mocker()
25    def test_well_known_jwks(self, mock: Mocker):
26        """Test well_known update"""
27        self.source.oidc_well_known_url = "http://foo/.well-known/openid-configuration"
28        self.source.save()
29        mock.get(
30            self.source.oidc_well_known_url,
31            json={
32                "authorization_endpoint": "foo",
33                "token_endpoint": "foo",
34                "userinfo_endpoint": "foo",
35                "jwks_uri": "http://foo/jwks",
36            },
37        )
38        mock.get("http://foo/jwks", json={"foo": "bar"})
39        update_well_known_jwks.send()
40        self.source.refresh_from_db()
41        self.assertEqual(self.source.authorization_url, "foo")
42        self.assertEqual(self.source.access_token_url, "foo")
43        self.assertEqual(self.source.profile_url, "foo")
44        self.assertEqual(self.source.oidc_jwks_url, "http://foo/jwks")
45        self.assertEqual(
46            self.source.oidc_jwks,
47            {
48                "foo": "bar",
49            },
50        )

Test OAuth Source tasks

def setUp(self) -> None:
14    def setUp(self) -> None:
15        self.source = OAuthSource.objects.create(
16            name="test",
17            slug="test",
18            provider_type="openidconnect",
19            authorization_url="",
20            profile_url="",
21            consumer_key="",
22        )

Hook method for setting up the test fixture before exercising it.

@Mocker()
def test_well_known_jwks(self, mock: requests_mock.mocker.Mocker):
24    @Mocker()
25    def test_well_known_jwks(self, mock: Mocker):
26        """Test well_known update"""
27        self.source.oidc_well_known_url = "http://foo/.well-known/openid-configuration"
28        self.source.save()
29        mock.get(
30            self.source.oidc_well_known_url,
31            json={
32                "authorization_endpoint": "foo",
33                "token_endpoint": "foo",
34                "userinfo_endpoint": "foo",
35                "jwks_uri": "http://foo/jwks",
36            },
37        )
38        mock.get("http://foo/jwks", json={"foo": "bar"})
39        update_well_known_jwks.send()
40        self.source.refresh_from_db()
41        self.assertEqual(self.source.authorization_url, "foo")
42        self.assertEqual(self.source.access_token_url, "foo")
43        self.assertEqual(self.source.profile_url, "foo")
44        self.assertEqual(self.source.oidc_jwks_url, "http://foo/jwks")
45        self.assertEqual(
46            self.source.oidc_jwks,
47            {
48                "foo": "bar",
49            },
50        )

Test well_known update