Coverage for taskflow_api/settings.py: 100%
26 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-18 16:35 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-18 16:35 +0000
1from pathlib import Path
2from decouple import config, Csv
3import os
5# Build paths inside the project like this: BASE_DIR / 'subdir'.
6BASE_DIR = Path(__file__).resolve().parent.parent
9# Quick-start development settings - unsuitable for production
10# See https://docs.djangoproject.com/en/5.2/howto/deployment/checklist/
13# Application definition
15INSTALLED_APPS = [
16 "django.contrib.admin",
17 "django.contrib.auth",
18 "django.contrib.contenttypes",
19 "django.contrib.sessions",
20 "django.contrib.messages",
21 "django.contrib.staticfiles",
22 "rest_framework",
23 "drf_yasg",
24 "corsheaders",
25 "tasks",
26]
28MIDDLEWARE = [
29 "django.middleware.security.SecurityMiddleware",
30 "django.contrib.sessions.middleware.SessionMiddleware",
31 "django.middleware.common.CommonMiddleware",
32 "django.middleware.csrf.CsrfViewMiddleware",
33 "django.contrib.auth.middleware.AuthenticationMiddleware",
34 "django.contrib.messages.middleware.MessageMiddleware",
35 "django.middleware.clickjacking.XFrameOptionsMiddleware",
36 "corsheaders.middleware.CorsMiddleware",
37]
39ROOT_URLCONF = "taskflow_api.urls"
41TEMPLATES = [
42 {
43 "BACKEND": "django.template.backends.django.DjangoTemplates",
44 "DIRS": [],
45 "APP_DIRS": True,
46 "OPTIONS": {
47 "context_processors": [
48 "django.template.context_processors.request",
49 "django.contrib.auth.context_processors.auth",
50 "django.contrib.messages.context_processors.messages",
51 ],
52 },
53 },
54]
56WSGI_APPLICATION = "taskflow_api.wsgi.application"
59# Password validation
60# https://docs.djangoproject.com/en/5.2/ref/settings/#auth-password-validators
62AUTH_PASSWORD_VALIDATORS = [
63 {
64 "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
65 },
66 {
67 "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
68 },
69 {
70 "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
71 },
72 {
73 "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
74 },
75]
78# Internationalization
79# https://docs.djangoproject.com/en/5.2/topics/i18n/
81LANGUAGE_CODE = "en-us"
83TIME_ZONE = "UTC"
85USE_I18N = True
87USE_TZ = True
90# Static files (CSS, JavaScript, Images)
91# https://docs.djangoproject.com/en/5.2/howto/static-files/
93STATIC_URL = "static/"
94STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
96# Default primary key field type
97# https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field
99DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
102# MANUALLY ADDED
104CORS_ALLOW_ALL_ORIGINS = True
107DEBUG = config("DEBUG", default=False, cast=bool)
108SECRET_KEY = config("SECRET_KEY", default="unsafe-dev-key")
110ALLOWED_HOSTS = config("DJANGO_ALLOWED_HOSTS", cast=Csv(), default="localhost")
112DATABASES = {
113 "default": {
114 "ENGINE": "django.db.backends.postgresql",
115 "NAME": config("POSTGRES_DB"),
116 "USER": config("POSTGRES_USER"),
117 "PASSWORD": config("POSTGRES_PASSWORD"),
118 "HOST": config("POSTGRES_HOST", default="localhost"),
119 "PORT": config("POSTGRES_PORT", default="5432"),
120 }
121}
123CELERY_BROKER_URL = config(
124 "CELERY_BROKER_URL", default="amqp://guest:guest@localhost:5672//"
125)
127CELERY_ACCEPT_CONTENT = ["json"]
128CELERY_TASK_SERIALIZER = "json"
131SWAGGER_USE_COMPAT_RENDERERS = False