def uninstall_if_needed(setting, value, enter, **kwargs): """ Undo the effects of PostgresConfig.ready() when django.contrib.postgres is "uninstalled" by override_settings(). """ if not enter and setting == 'INSTALLED_APPS' and 'django.contrib.postgres' not in set( value): connection_created.disconnect(register_type_handlers) CharField._unregister_lookup(Unaccent) TextField._unregister_lookup(Unaccent) CharField._unregister_lookup(SearchLookup) TextField._unregister_lookup(SearchLookup) CharField._unregister_lookup(TrigramSimilar) TextField._unregister_lookup(TrigramSimilar) CharField._unregister_lookup(TrigramWordSimilar) TextField._unregister_lookup(TrigramWordSimilar) # Disconnect this receiver until the next time this app is installed # and ready() connects it again to prevent unnecessary processing on # each setting change. setting_changed.disconnect(uninstall_if_needed) MigrationWriter.unregister_serializer(RANGE_TYPES)
def __del__(self): setting_changed.disconnect(self.reload_api_settings)
def __del__(self): setting_changed.disconnect(dispatch_uid=self._dispatch_uid)
from typing import Any import uuid import django.test.signals from django.contrib.auth import authenticate, get_user_model from django.contrib.auth.hashers import MD5PasswordHasher from django.core.signals import setting_changed from django.test import TestCase, override_settings from fd_dj_accounts.auth_backends import AuthUserModelAuthBackend from . import utils # warning: this is critical for being able to mess with 'AUTH_USER_MODEL' in the tests. setting_changed.disconnect(receiver=django.test.signals.user_model_swapped) setting_changed.connect(receiver=utils.auth_user_model_swapped_receiver) class CountingMD5PasswordHasher(MD5PasswordHasher): """Hasher that counts how many times it computes a hash.""" calls = 0 def encode(self, *args, **kwargs): # type: ignore type(self).calls += 1 return super().encode(*args, **kwargs) class AuthUserModelAuthBackendTestMixin: """ Base class for test cases of ``AuthUserModelAuthBackend``.