Improve testing
This commit is contained in:
		
							
								
								
									
										1
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							| @@ -7,6 +7,7 @@ | ||||
|     "appendonly", | ||||
|     "appname", | ||||
|     "asgiref", | ||||
|     "autouse", | ||||
|     "Behaviour", | ||||
|     "cacd", | ||||
|     "cellspacing", | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| from __future__ import annotations | ||||
|  | ||||
| import logging | ||||
| import os | ||||
| from pathlib import Path | ||||
| from typing import Literal | ||||
| @@ -8,6 +9,8 @@ from django.contrib import messages | ||||
| from dotenv import load_dotenv | ||||
| from platformdirs import user_data_dir | ||||
|  | ||||
| logger: logging.Logger = logging.getLogger(__name__) | ||||
|  | ||||
| # Parse a .env file and then load all the variables found as environment variables. | ||||
| load_dotenv(verbose=True) | ||||
|  | ||||
|   | ||||
							
								
								
									
										40
									
								
								core/tests/conftest.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								core/tests/conftest.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| from __future__ import annotations | ||||
|  | ||||
| import logging | ||||
| from typing import TYPE_CHECKING | ||||
|  | ||||
| import pytest | ||||
|  | ||||
| if TYPE_CHECKING: | ||||
|     from django.conf import LazySettings | ||||
|  | ||||
| logger: logging.Logger = logging.getLogger(__name__) | ||||
|  | ||||
|  | ||||
| @pytest.fixture(autouse=True) | ||||
| def _media_root( | ||||
|     settings: LazySettings, | ||||
|     tmpdir_factory: pytest.TempPathFactory, | ||||
| ) -> None: | ||||
|     """Forces django to save media files into temp folder.""" | ||||
|     settings.MEDIA_ROOT = tmpdir_factory.mktemp("media", numbered=True) | ||||
|     logger.info("Testing: Media root is set to %s", settings.MEDIA_ROOT) | ||||
|  | ||||
|  | ||||
| @pytest.fixture(autouse=True) | ||||
| def _password_hashers(settings: LazySettings) -> None: | ||||
|     """Forces django to use fast password hashers for tests.""" | ||||
|     settings.PASSWORD_HASHERS = [ | ||||
|         "django.contrib.auth.hashers.MD5PasswordHasher", | ||||
|     ] | ||||
|     logger.info("Testing: Password hashers are set to %s", settings.PASSWORD_HASHERS) | ||||
|  | ||||
|  | ||||
| @pytest.fixture(autouse=True) | ||||
| def _debug(settings: LazySettings) -> None: | ||||
|     """Sets proper DEBUG and TEMPLATE debug mode for coverage.""" | ||||
|     settings.DEBUG = False | ||||
|     for template in settings.TEMPLATES: | ||||
|         template["OPTIONS"]["debug"] = True | ||||
|  | ||||
|     logger.info("Testing: DEBUG is set to %s", settings.DEBUG) | ||||
| @@ -97,6 +97,12 @@ DJANGO_SETTINGS_MODULE = "core.settings" | ||||
| # Only run tests in files that match this pattern. | ||||
| python_files = ["*_test.py"] | ||||
|  | ||||
| # Enable logging in the console. | ||||
| log_cli = true | ||||
| log_cli_level = "INFO" | ||||
| log_cli_format = "%(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)" | ||||
| log_cli_date_format = "%Y-%m-%d %H:%M:%S" | ||||
|  | ||||
| [tool.mypy] | ||||
| plugins = ["mypy_django_plugin.main"] | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user