authentik.core.tests.test_api_utils

Test API Utils

 1"""Test API Utils"""
 2
 3from rest_framework.exceptions import ValidationError
 4from rest_framework.serializers import (
 5    HyperlinkedModelSerializer,
 6)
 7from rest_framework.serializers import (
 8    ModelSerializer as BaseModelSerializer,
 9)
10from rest_framework.test import APITestCase
11
12from authentik.core.api.utils import ModelSerializer as CustomModelSerializer
13from authentik.core.api.utils import is_dict
14from authentik.lib.utils.reflection import all_subclasses
15
16
17class TestAPIUtils(APITestCase):
18    """Test API Utils"""
19
20    def test_is_dict(self):
21        """Test is_dict"""
22        self.assertIsNone(is_dict({}))
23        with self.assertRaises(ValidationError):
24            is_dict("foo")
25
26    def test_all_serializers_descend_from_custom(self):
27        """Test that every serializer we define descends from our own ModelSerializer"""
28        # Weirdly, there's only one serializer in `rest_framework` which descends from
29        # ModelSerializer: HyperlinkedModelSerializer
30        expected = {CustomModelSerializer, HyperlinkedModelSerializer}
31        actual = set(all_subclasses(BaseModelSerializer)) - set(
32            all_subclasses(CustomModelSerializer)
33        )
34
35        self.assertEqual(expected, actual)
class TestAPIUtils(rest_framework.test.APITestCase):
18class TestAPIUtils(APITestCase):
19    """Test API Utils"""
20
21    def test_is_dict(self):
22        """Test is_dict"""
23        self.assertIsNone(is_dict({}))
24        with self.assertRaises(ValidationError):
25            is_dict("foo")
26
27    def test_all_serializers_descend_from_custom(self):
28        """Test that every serializer we define descends from our own ModelSerializer"""
29        # Weirdly, there's only one serializer in `rest_framework` which descends from
30        # ModelSerializer: HyperlinkedModelSerializer
31        expected = {CustomModelSerializer, HyperlinkedModelSerializer}
32        actual = set(all_subclasses(BaseModelSerializer)) - set(
33            all_subclasses(CustomModelSerializer)
34        )
35
36        self.assertEqual(expected, actual)

Test API Utils

def test_is_dict(self):
21    def test_is_dict(self):
22        """Test is_dict"""
23        self.assertIsNone(is_dict({}))
24        with self.assertRaises(ValidationError):
25            is_dict("foo")

Test is_dict

def test_all_serializers_descend_from_custom(self):
27    def test_all_serializers_descend_from_custom(self):
28        """Test that every serializer we define descends from our own ModelSerializer"""
29        # Weirdly, there's only one serializer in `rest_framework` which descends from
30        # ModelSerializer: HyperlinkedModelSerializer
31        expected = {CustomModelSerializer, HyperlinkedModelSerializer}
32        actual = set(all_subclasses(BaseModelSerializer)) - set(
33            all_subclasses(CustomModelSerializer)
34        )
35
36        self.assertEqual(expected, actual)

Test that every serializer we define descends from our own ModelSerializer