41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
"""authentik e2e testing utilities"""
|
|
|
|
from datetime import timedelta
|
|
from time import mktime
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
from daphne.testing import DaphneProcess
|
|
from django import setup as django_setup
|
|
from django.conf import settings
|
|
from django.utils.timezone import now
|
|
|
|
from authentik.lib.generators import generate_id
|
|
|
|
|
|
class TestDatabaseProcess(DaphneProcess):
|
|
"""Channels does not correctly switch to the test database by default.
|
|
https://github.com/django/channels/issues/2048"""
|
|
|
|
def run(self):
|
|
if not settings.configured: # Fix For raise AppRegistryNotReady("Apps aren't loaded yet.")
|
|
django_setup() # Ensure Django is fully set up before using settings
|
|
if not settings.DATABASES[list(settings.DATABASES.keys())[0]]["NAME"].startswith("test_"):
|
|
for _, db_settings in settings.DATABASES.items():
|
|
db_settings["NAME"] = f"test_{db_settings['NAME']}"
|
|
settings.TEST = True
|
|
from authentik.enterprise.license import LicenseKey
|
|
|
|
with patch(
|
|
"authentik.enterprise.license.LicenseKey.validate",
|
|
MagicMock(
|
|
return_value=LicenseKey(
|
|
aud="",
|
|
exp=int(mktime((now() + timedelta(days=3000)).timetuple())),
|
|
name=generate_id(),
|
|
internal_users=100,
|
|
external_users=100,
|
|
)
|
|
),
|
|
):
|
|
return super().run()
|