|
11 | 11 | """
|
12 | 12 |
|
13 | 13 | import os
|
| 14 | +import sys |
14 | 15 | from pathlib import Path
|
15 | 16 |
|
| 17 | +import environ |
| 18 | + |
16 | 19 | # Build paths inside the project like this: BASE_DIR / 'subdir'.
|
17 | 20 | BASE_DIR = Path(__file__).resolve().parent.parent
|
18 | 21 |
|
| 22 | +# Take environment variables from .env file |
| 23 | +environ.Env.read_env(os.path.join(BASE_DIR, ".env")) |
| 24 | + |
19 | 25 | # Quick-start development settings - unsuitable for production
|
20 | 26 | # See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/
|
21 | 27 |
|
|
98 | 104 | }
|
99 | 105 | }
|
100 | 106 |
|
| 107 | +if "test" in sys.argv or "test_coverage" in sys.argv: # Covers regular testing and django-coverage |
| 108 | + DATABASES["default"]["ENGINE"] = "django.db.backends.sqlite3" |
| 109 | + |
101 | 110 | # Password validation
|
102 | 111 | # https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validators
|
103 | 112 |
|
|
154 | 163 | # https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field
|
155 | 164 |
|
156 | 165 | DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
| 166 | + |
| 167 | +LOGGING_FOLDER_DEFAULT = os.path.abspath(os.path.join("/logging/")) |
| 168 | + |
| 169 | +# Check if the application is under testing |
| 170 | +if "test" in sys.argv: |
| 171 | + DEBUG = False |
| 172 | + |
| 173 | +if DEBUG: |
| 174 | + LOGGING = { |
| 175 | + "version": 1, |
| 176 | + "disable_existing_loggers": False, |
| 177 | + "handlers": { |
| 178 | + "console": { |
| 179 | + "class": "logging.StreamHandler", |
| 180 | + }, |
| 181 | + }, |
| 182 | + "root": { |
| 183 | + "handlers": ["console"], |
| 184 | + "level": "DEBUG", |
| 185 | + }, |
| 186 | + } |
| 187 | +else: |
| 188 | + LOGGING = { |
| 189 | + "version": 1, |
| 190 | + "disable_existing_loggers": False, |
| 191 | + "handlers": { |
| 192 | + "console": { |
| 193 | + "class": "logging.StreamHandler", |
| 194 | + }, |
| 195 | + "file": { |
| 196 | + "level": os.environ.get("LOGGING_HANDLERS_LEVEL", "WARNING"), |
| 197 | + "class": "logging.FileHandler", |
| 198 | + "filename": os.path.join( |
| 199 | + LOGGING_FOLDER_DEFAULT, os.environ.get("LOGGING_FILE", "debug.log") |
| 200 | + ), |
| 201 | + "formatter": "verbose", |
| 202 | + }, |
| 203 | + }, |
| 204 | + "root": { |
| 205 | + "handlers": ["console", "file"], |
| 206 | + "level": os.environ.get("LOGGING_LOGGERS_LEVEL", "WARNING"), |
| 207 | + }, |
| 208 | + "loggers": { |
| 209 | + "django": { |
| 210 | + "handlers": ["file"], |
| 211 | + "level": os.environ.get("LOGGING_LOGGERS_DJANGO_LEVEL", "WARNING"), |
| 212 | + "propagate": True, |
| 213 | + }, |
| 214 | + }, |
| 215 | + "formatters": { |
| 216 | + "verbose": { |
| 217 | + "format": "{asctime} {levelname} - {name} {module}.py (line: {lineno:d}). - {message}", |
| 218 | + "style": "{", |
| 219 | + }, |
| 220 | + }, |
| 221 | + } |
0 commit comments