
* remove pyright Signed-off-by: Jens Langhammer <jens@goauthentik.io> * remove pylint Signed-off-by: Jens Langhammer <jens@goauthentik.io> * replace pylint with ruff Signed-off-by: Jens Langhammer <jens@goauthentik.io> * ruff fix Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * fix UP038 Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix DJ012 Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix default arg Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix UP031 Signed-off-by: Jens Langhammer <jens@goauthentik.io> * rename stage type to view Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix DJ008 Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix remaining upgrade Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix PLR2004 Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix B904 Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix PLW2901 Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix remaining issues Signed-off-by: Jens Langhammer <jens@goauthentik.io> * prevent ruff from breaking the code Signed-off-by: Jens Langhammer <jens@goauthentik.io> * stages/prompt: refactor field building Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> * fix tests Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fix lint Signed-off-by: Jens Langhammer <jens@goauthentik.io> * fully remove isort Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io> Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space> Co-authored-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
"""authentik managed models tests"""
|
|
|
|
from collections.abc import Callable
|
|
|
|
from django.apps import apps
|
|
from django.test import TestCase
|
|
|
|
from authentik.blueprints.v1.importer import is_model_allowed
|
|
from authentik.lib.models import SerializerModel
|
|
from authentik.providers.oauth2.models import RefreshToken
|
|
|
|
|
|
class TestModels(TestCase):
|
|
"""Test Models"""
|
|
|
|
|
|
def serializer_tester_factory(test_model: type[SerializerModel]) -> Callable:
|
|
"""Test serializer"""
|
|
|
|
def tester(self: TestModels):
|
|
if test_model._meta.abstract: # pragma: no cover
|
|
return
|
|
model_class = test_model()
|
|
self.assertTrue(isinstance(model_class, SerializerModel))
|
|
self.assertIsNotNone(model_class.serializer)
|
|
if model_class.serializer.Meta().model == RefreshToken:
|
|
return
|
|
self.assertEqual(model_class.serializer.Meta().model, test_model)
|
|
|
|
return tester
|
|
|
|
|
|
for app in apps.get_app_configs():
|
|
if not app.label.startswith("authentik"):
|
|
continue
|
|
for model in app.get_models():
|
|
if not is_model_allowed(model):
|
|
continue
|
|
setattr(TestModels, f"test_{app.label}_{model.__name__}", serializer_tester_factory(model))
|