2023-01-05 18:31:48 +01:00
|
|
|
[project]
|
|
|
|
name = "charasheet"
|
|
|
|
version = "42"
|
|
|
|
dependencies = [
|
|
|
|
"django>=4.1,<5.0",
|
|
|
|
"django-cleanup>=6.0",
|
|
|
|
"django-environ>=0.9.0",
|
|
|
|
"django-htmx>=1.12.2",
|
|
|
|
"django-linear-migrations>=2.2.0",
|
|
|
|
"django-extensions>=3.1.5",
|
|
|
|
"whitenoise>=6.2",
|
|
|
|
"selenium>=4.5.0",
|
|
|
|
"Markdown>=3.2",
|
|
|
|
"django-registration>=3.3",
|
|
|
|
"django-anymail[mailgun]>=8.6",
|
|
|
|
"django-bootstrap5>=22.1",
|
|
|
|
"requests>=2.28.1",
|
|
|
|
"gunicorn>=20.1.0",
|
|
|
|
"Pillow>=9.3.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[project.optional-dependencies]
|
|
|
|
dev = [
|
|
|
|
"django-debug-toolbar>=3.2",
|
|
|
|
"pytest>=6.0",
|
|
|
|
"pytest-cov>=3.0.0",
|
|
|
|
"pytest-django>=4.1.0",
|
|
|
|
"pytest-html>=3.1.1",
|
|
|
|
"pytest-selenium>=4.0.0",
|
|
|
|
"pre-commit>=2.1",
|
|
|
|
"model-bakery>=1.3.1",
|
|
|
|
"freezegun>=1.1.0",
|
|
|
|
"bpython>=0.22.1",
|
|
|
|
"invoke>=1.7.3",
|
|
|
|
"hypothesis>=6.56.4",
|
|
|
|
"django-browser-reload>=1.6.0",
|
|
|
|
"black>=22.12.0",
|
|
|
|
]
|
|
|
|
|
2022-10-28 22:16:23 +02:00
|
|
|
###############################################################################
|
|
|
|
# pytest
|
|
|
|
###############################################################################
|
|
|
|
[tool.pytest.ini_options]
|
|
|
|
addopts = """
|
|
|
|
--html=test_reports/pytest_result/pytest.html --color=yes --durations 20
|
|
|
|
--no-cov-on-fail --strict-markers
|
2022-11-10 19:23:47 +01:00
|
|
|
--driver=Firefox
|
2022-10-28 22:16:23 +02:00
|
|
|
-W error
|
2022-11-10 19:23:47 +01:00
|
|
|
-W "ignore:capabilities and desired_capabilities have been deprecated:DeprecationWarning:pytest_selenium.pytest_selenium"
|
|
|
|
-W "ignore:service_log_path has been deprecated:DeprecationWarning:pytest_selenium.pytest_selenium"
|
2022-10-28 22:16:23 +02:00
|
|
|
"""
|
|
|
|
markers = []
|
|
|
|
minversion = "6.0"
|
|
|
|
DJANGO_SETTINGS_MODULE = "charasheet.settings"
|
|
|
|
junit_family = "xunit1"
|
|
|
|
norecursedirs = [
|
|
|
|
".*",
|
|
|
|
"docker",
|
|
|
|
"documentation",
|
|
|
|
"static",
|
|
|
|
"public",
|
|
|
|
]
|
|
|
|
testpaths = [
|
|
|
|
"src",
|
|
|
|
]
|
|
|
|
python_files = [
|
|
|
|
"test_*.py",
|
|
|
|
"tests.py",
|
|
|
|
]
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
# flake8 / flakeheaven
|
|
|
|
###############################################################################
|
|
|
|
[tool.flakeheaven]
|
|
|
|
max_complexity = 10
|
|
|
|
format = "grouped"
|
|
|
|
|
|
|
|
# Base rules
|
|
|
|
#############################
|
|
|
|
[tool.flakeheaven.plugins]
|
|
|
|
"*" = [
|
|
|
|
"+*",
|
|
|
|
"-E501", # long lines
|
|
|
|
"-E203", # conflict with black on PEP8 interpretation
|
|
|
|
"-W503", # deprecated rule: https://www.flake8rules.com/rules/W503.html
|
|
|
|
]
|
|
|
|
flake8-builtins = [
|
|
|
|
"+*",
|
|
|
|
"-A003", # class attribute is shadowing a python builtin
|
|
|
|
]
|
|
|
|
flake8-docstrings = [
|
|
|
|
"+*",
|
|
|
|
"-D1??", # missing docstring
|
|
|
|
]
|
|
|
|
flake8-bandit = [
|
|
|
|
"+*",
|
|
|
|
"-S308", # Use of mark_safe() may expose cross-site scripting vulnerabilities and should be reviewed.
|
|
|
|
"-S703", # Potential XSS on mark_safe function.
|
|
|
|
]
|
|
|
|
|
|
|
|
# Exceptions
|
|
|
|
#############################
|
|
|
|
[tool.flakeheaven.exceptions."**/tests/*"]
|
|
|
|
flake8-bandit = [
|
|
|
|
"+*",
|
|
|
|
"-S101", # Use of assert detected.
|
|
|
|
"-S106", # Possible hardcoded password.
|
|
|
|
"-S311", # Standard pseudo-random generators are not suitable for security/cryptographic purposes.
|
|
|
|
]
|