from django.core.checks import Error, register try: from django.urls import reverse, NoReverseMatch except ImportError: # Django < 2.0 # pragma: no cover from django.core.urlresolvers import reverse, NoReverseMatch from .constants import FETCH_URL_NAME, PASSWORD, SALT @register() def constants_check(app_configs, **kwargs): check_messages = [] message = "{} must be defined in your environment for " \ "django-encrypted-filefield to work." if not SALT: check_messages.append(Error(message.format("DEFF_SALT"))) if not PASSWORD: check_messages.append(Error(message.format("DEFF_PASSWORD"))) return check_messages @register() def fetch_url_check(app_configs, **kwargs): if not FETCH_URL_NAME: return [] # We've got bigger problems try: reverse(FETCH_URL_NAME, kwargs={"path": "anything"}) except NoReverseMatch: return [Error( "django-encrypted-filefield requires that you define a url for " "the fetching the files." )] return []