mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2025-09-20 19:02:37 +03:00
Uograde CC 240905
This commit is contained in:
commit
9258405566
15
.github/contributors.json
vendored
15
.github/contributors.json
vendored
|
@ -1613,5 +1613,20 @@
|
||||||
"name": "Kevin Mills",
|
"name": "Kevin Mills",
|
||||||
"github_login": "millsks",
|
"github_login": "millsks",
|
||||||
"twitter_username": ""
|
"twitter_username": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "milvagox",
|
||||||
|
"github_login": "milvagox",
|
||||||
|
"twitter_username": "milvagox"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Johnny Metz",
|
||||||
|
"github_login": "johnnymetz",
|
||||||
|
"twitter_username": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Will",
|
||||||
|
"github_login": "novucs",
|
||||||
|
"twitter_username": ""
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
|
@ -110,6 +110,6 @@ jobs:
|
||||||
run: pip install -r requirements.txt
|
run: pip install -r requirements.txt
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: "20"
|
node-version: "22"
|
||||||
- name: Bare Metal ${{ matrix.script.name }}
|
- name: Bare Metal ${{ matrix.script.name }}
|
||||||
run: sh tests/test_bare.sh ${{ matrix.script.args }}
|
run: sh tests/test_bare.sh ${{ matrix.script.args }}
|
||||||
|
|
2
.github/workflows/pre-commit-autoupdate.yml
vendored
2
.github/workflows/pre-commit-autoupdate.yml
vendored
|
@ -37,7 +37,7 @@ jobs:
|
||||||
run: pre-commit autoupdate
|
run: pre-commit autoupdate
|
||||||
|
|
||||||
- name: Create Pull Request
|
- name: Create Pull Request
|
||||||
uses: peter-evans/create-pull-request@v6
|
uses: peter-evans/create-pull-request@v7
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
branch: update/pre-commit-autoupdate
|
branch: update/pre-commit-autoupdate
|
||||||
|
|
139
CHANGELOG.md
139
CHANGELOG.md
|
@ -3,6 +3,145 @@ All enhancements and patches to Cookiecutter Django will be documented in this f
|
||||||
|
|
||||||
<!-- GENERATOR_PLACEHOLDER -->
|
<!-- GENERATOR_PLACEHOLDER -->
|
||||||
|
|
||||||
|
## 2024.09.04
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update django-model-utils to 5.0.0 ([#5343](https://github.com/cookiecutter/cookiecutter-django/pull/5343))
|
||||||
|
|
||||||
|
## 2024.09.03
|
||||||
|
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Pin watchdog to 4.0.2 ([#5335](https://github.com/cookiecutter/cookiecutter-django/pull/5335))
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update django to 5.0.9 ([#5341](https://github.com/cookiecutter/cookiecutter-django/pull/5341))
|
||||||
|
|
||||||
|
- Update sphinx-autobuild to 2024.9.3 ([#5340](https://github.com/cookiecutter/cookiecutter-django/pull/5340))
|
||||||
|
|
||||||
|
## 2024.09.02
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Auto-update pre-commit hooks ([#5334](https://github.com/cookiecutter/cookiecutter-django/pull/5334))
|
||||||
|
|
||||||
|
- Update django-allauth to 64.2.0 ([#5337](https://github.com/cookiecutter/cookiecutter-django/pull/5337))
|
||||||
|
|
||||||
|
- Update pytest-django to 4.9.0 ([#5338](https://github.com/cookiecutter/cookiecutter-django/pull/5338))
|
||||||
|
|
||||||
|
## 2024.08.30
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update django-webpack-loader to 3.1.1 ([#5336](https://github.com/cookiecutter/cookiecutter-django/pull/5336))
|
||||||
|
|
||||||
|
## 2024.08.29
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update ruff to 0.6.3 ([#5333](https://github.com/cookiecutter/cookiecutter-django/pull/5333))
|
||||||
|
|
||||||
|
- Update djlint to 1.35.2 ([#5332](https://github.com/cookiecutter/cookiecutter-django/pull/5332))
|
||||||
|
|
||||||
|
- Update djlint pre-commit hook to v1.34.2 ([#5331](https://github.com/cookiecutter/cookiecutter-django/pull/5331))
|
||||||
|
|
||||||
|
## 2024.08.28
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update watchfiles to 0.24.0 ([#5330](https://github.com/cookiecutter/cookiecutter-django/pull/5330))
|
||||||
|
|
||||||
|
- Update djlint to 1.34.2 ([#5329](https://github.com/cookiecutter/cookiecutter-django/pull/5329))
|
||||||
|
|
||||||
|
## 2024.08.26
|
||||||
|
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Check DB migrations in GitHub CI ([#5322](https://github.com/cookiecutter/cookiecutter-django/pull/5322))
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update mypy to 1.11.2 ([#5320](https://github.com/cookiecutter/cookiecutter-django/pull/5320))
|
||||||
|
|
||||||
|
## 2024.08.23
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update werkzeug to 3.0.4 ([#5313](https://github.com/cookiecutter/cookiecutter-django/pull/5313))
|
||||||
|
|
||||||
|
- Update ruff to 0.6.2 ([#5316](https://github.com/cookiecutter/cookiecutter-django/pull/5316))
|
||||||
|
|
||||||
|
## 2024.08.22
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update django-celery-beat to 2.7.0 ([#5315](https://github.com/cookiecutter/cookiecutter-django/pull/5315))
|
||||||
|
|
||||||
|
## 2024.08.21
|
||||||
|
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Add type hint for UserFactory ([#5312](https://github.com/cookiecutter/cookiecutter-django/pull/5312))
|
||||||
|
|
||||||
|
## 2024.08.20
|
||||||
|
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Add missing extra_body block in allauth entrance.html ([#5308](https://github.com/cookiecutter/cookiecutter-django/pull/5308))
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Bump sass-loader from 14.2.1 to 16.0.1 ([#5309](https://github.com/cookiecutter/cookiecutter-django/pull/5309))
|
||||||
|
|
||||||
|
- Bump node from 20 to 22 ([#5039](https://github.com/cookiecutter/cookiecutter-django/pull/5039))
|
||||||
|
|
||||||
|
- Bump webpack-merge from 5.10.0 to 6.0.1 ([#5187](https://github.com/cookiecutter/cookiecutter-django/pull/5187))
|
||||||
|
|
||||||
|
- Bump css-loader from 6.11.0 to 7.1.2 ([#5089](https://github.com/cookiecutter/cookiecutter-django/pull/5089))
|
||||||
|
|
||||||
|
- Bump traefik from 2.11.2 to 3.1.2 ([#5282](https://github.com/cookiecutter/cookiecutter-django/pull/5282))
|
||||||
|
|
||||||
|
## 2024.08.19
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update factory-boy to 3.3.1 ([#5307](https://github.com/cookiecutter/cookiecutter-django/pull/5307))
|
||||||
|
|
||||||
|
## 2024.08.17
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update ruff to 0.6.1 ([#5303](https://github.com/cookiecutter/cookiecutter-django/pull/5303))
|
||||||
|
|
||||||
|
## 2024.08.16
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update django-allauth to 64.1.0 ([#5302](https://github.com/cookiecutter/cookiecutter-django/pull/5302))
|
||||||
|
|
||||||
|
## 2024.08.15
|
||||||
|
|
||||||
|
|
||||||
|
### Updated
|
||||||
|
|
||||||
|
- Update ruff to 0.6.0 ([#5300](https://github.com/cookiecutter/cookiecutter-django/pull/5300))
|
||||||
|
|
||||||
## 2024.08.13
|
## 2024.08.13
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1195,6 +1195,13 @@ Listed in alphabetical order.
|
||||||
</td>
|
</td>
|
||||||
<td>cass_john</td>
|
<td>cass_john</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Johnny Metz</td>
|
||||||
|
<td>
|
||||||
|
<a href="https://github.com/johnnymetz">johnnymetz</a>
|
||||||
|
</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Jonathan Thompson</td>
|
<td>Jonathan Thompson</td>
|
||||||
<td>
|
<td>
|
||||||
|
@ -1608,6 +1615,13 @@ Listed in alphabetical order.
|
||||||
</td>
|
</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>milvagox</td>
|
||||||
|
<td>
|
||||||
|
<a href="https://github.com/milvagox">milvagox</a>
|
||||||
|
</td>
|
||||||
|
<td>milvagox</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Min ho Kim</td>
|
<td>Min ho Kim</td>
|
||||||
<td>
|
<td>
|
||||||
|
@ -2210,6 +2224,13 @@ Listed in alphabetical order.
|
||||||
</td>
|
</td>
|
||||||
<td>westurner</td>
|
<td>westurner</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Will</td>
|
||||||
|
<td>
|
||||||
|
<a href="https://github.com/novucs">novucs</a>
|
||||||
|
</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Will Farley</td>
|
<td>Will Farley</td>
|
||||||
<td>
|
<td>
|
||||||
|
|
|
@ -4,9 +4,9 @@ binaryornot==0.4.4
|
||||||
|
|
||||||
# Code quality
|
# Code quality
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
ruff==0.5.7
|
ruff==0.6.3
|
||||||
django-upgrade==1.20.0
|
django-upgrade==1.21.0
|
||||||
djlint==1.34.1
|
djlint==1.35.2
|
||||||
pre-commit==3.8.0
|
pre-commit==3.8.0
|
||||||
|
|
||||||
# Testing
|
# Testing
|
||||||
|
@ -20,7 +20,7 @@ pyyaml==6.0.2
|
||||||
|
|
||||||
# Scripting
|
# Scripting
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
PyGithub==2.3.0
|
PyGithub==2.4.0
|
||||||
gitpython==3.1.43
|
gitpython==3.1.43
|
||||||
jinja2==3.1.4
|
jinja2==3.1.4
|
||||||
requests==2.32.3
|
requests==2.32.3
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -5,7 +5,7 @@ except ImportError:
|
||||||
from distutils.core import setup
|
from distutils.core import setup
|
||||||
|
|
||||||
# We use calendar versioning
|
# We use calendar versioning
|
||||||
version = "2024.08.13"
|
version = "2024.09.04"
|
||||||
|
|
||||||
with open("README.md") as readme_file:
|
with open("README.md") as readme_file:
|
||||||
long_description = readme_file.read()
|
long_description = readme_file.read()
|
||||||
|
|
|
@ -24,7 +24,7 @@ docker compose -f docker-compose.local.yml run django mypy my_awesome_project
|
||||||
docker compose -f docker-compose.local.yml run django pytest
|
docker compose -f docker-compose.local.yml run django pytest
|
||||||
|
|
||||||
# return non-zero status code if there are migrations that have not been created
|
# return non-zero status code if there are migrations that have not been created
|
||||||
docker compose -f docker-compose.local.yml run django python manage.py makemigrations --dry-run --check || { echo "ERROR: there were changes in the models, but migration listed above have not been created and are not saved in version control"; exit 1; }
|
docker compose -f docker-compose.local.yml run django python manage.py makemigrations --check || { echo "ERROR: there were changes in the models, but migration listed above have not been created and are not saved in version control"; exit 1; }
|
||||||
|
|
||||||
# Test support for translations
|
# Test support for translations
|
||||||
docker compose -f docker-compose.local.yml run django python manage.py makemessages --all
|
docker compose -f docker-compose.local.yml run django python manage.py makemessages --all
|
||||||
|
|
|
@ -74,6 +74,9 @@ jobs:
|
||||||
- name: Build the docs
|
- name: Build the docs
|
||||||
run: docker compose -f docker-compose.docs.yml build docs
|
run: docker compose -f docker-compose.docs.yml build docs
|
||||||
|
|
||||||
|
- name: Check DB Migrations
|
||||||
|
run: docker compose -f docker-compose.local.yml run --rm django python manage.py makemigrations --check
|
||||||
|
|
||||||
- name: Run DB Migrations
|
- name: Run DB Migrations
|
||||||
run: docker compose -f docker-compose.local.yml run --rm django python manage.py migrate
|
run: docker compose -f docker-compose.local.yml run --rm django python manage.py migrate
|
||||||
|
|
||||||
|
@ -98,6 +101,12 @@ jobs:
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
pip install -r requirements/local.txt
|
pip install -r requirements/local.txt
|
||||||
|
|
||||||
|
- name: Check DB Migrations
|
||||||
|
run: python manage.py makemigrations --check
|
||||||
|
|
||||||
|
- name: Run DB Migrations
|
||||||
|
run: python manage.py migrate
|
||||||
|
|
||||||
- name: Test with pytest
|
- name: Test with pytest
|
||||||
run: pytest
|
run: pytest
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
|
@ -39,7 +39,7 @@ repos:
|
||||||
|
|
||||||
# Run the Ruff linter.
|
# Run the Ruff linter.
|
||||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
rev: v0.5.7
|
rev: v0.6.3
|
||||||
hooks:
|
hooks:
|
||||||
# Linter
|
# Linter
|
||||||
- id: ruff
|
- id: ruff
|
||||||
|
@ -48,7 +48,7 @@ repos:
|
||||||
- id: ruff-format
|
- id: ruff-format
|
||||||
|
|
||||||
- repo: https://github.com/Riverside-Healthcare/djLint
|
- repo: https://github.com/Riverside-Healthcare/djLint
|
||||||
rev: v1.34.1
|
rev: v1.35.2
|
||||||
hooks:
|
hooks:
|
||||||
- id: djlint-reformat-django
|
- id: djlint-reformat-django
|
||||||
files: "templates"
|
files: "templates"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM docker.io/node:20-bookworm-slim
|
FROM docker.io/node:22-bookworm-slim
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM docker.io/traefik:2.11.2
|
FROM docker.io/traefik:3.1.2
|
||||||
RUN mkdir -p /etc/traefik/acme \
|
RUN mkdir -p /etc/traefik/acme \
|
||||||
&& touch /etc/traefik/acme/acme.json \
|
&& touch /etc/traefik/acme/acme.json \
|
||||||
&& chmod 600 /etc/traefik/acme/acme.json
|
&& chmod 600 /etc/traefik/acme/acme.json
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
"babel-loader": "^9.1.2",
|
"babel-loader": "^9.1.2",
|
||||||
"bootstrap": "^5.2.3",
|
"bootstrap": "^5.2.3",
|
||||||
"browser-sync": "^3.0.2",
|
"browser-sync": "^3.0.2",
|
||||||
"css-loader": "^6.5.1",
|
"css-loader": "^7.1.2",
|
||||||
"gulp-concat": "^2.6.1",
|
"gulp-concat": "^2.6.1",
|
||||||
"concurrently": "^8.0.1",
|
"concurrently": "^8.0.1",
|
||||||
"cssnano": "^7.0.0",
|
"cssnano": "^7.0.0",
|
||||||
|
@ -27,15 +27,15 @@
|
||||||
"postcss-loader": "^8.0.0",
|
"postcss-loader": "^8.0.0",
|
||||||
"postcss-preset-env": "^9.0.0",
|
"postcss-preset-env": "^9.0.0",
|
||||||
"sass": "^1.43.4",
|
"sass": "^1.43.4",
|
||||||
"sass-loader": "^14.0.0",
|
"sass-loader": "^16.0.1",
|
||||||
"webpack": "^5.65.0",
|
"webpack": "^5.65.0",
|
||||||
"webpack-bundle-tracker": "^3.0.1",
|
"webpack-bundle-tracker": "^3.0.1",
|
||||||
"webpack-cli": "^5.0.1",
|
"webpack-cli": "^5.0.1",
|
||||||
"webpack-dev-server": "^5.0.2",
|
"webpack-dev-server": "^5.0.2",
|
||||||
"webpack-merge": "^5.8.0"
|
"webpack-merge": "^6.0.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "20"
|
"node": "22"
|
||||||
},
|
},
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
"last 2 versions"
|
"last 2 versions"
|
||||||
|
|
|
@ -59,31 +59,11 @@ indent_size = 2
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
|
target-version = "py312"
|
||||||
# Exclude a variety of commonly ignored directories.
|
# Exclude a variety of commonly ignored directories.
|
||||||
exclude = [
|
extend-exclude = [
|
||||||
".bzr",
|
|
||||||
".direnv",
|
|
||||||
".eggs",
|
|
||||||
".git",
|
|
||||||
".git-rewrite",
|
|
||||||
".hg",
|
|
||||||
".mypy_cache",
|
|
||||||
".nox",
|
|
||||||
".pants.d",
|
|
||||||
".pytype",
|
|
||||||
".ruff_cache",
|
|
||||||
".svn",
|
|
||||||
".tox",
|
|
||||||
".venv",
|
|
||||||
"__pypackages__",
|
|
||||||
"_build",
|
|
||||||
"buck-out",
|
|
||||||
"build",
|
|
||||||
"dist",
|
|
||||||
"node_modules",
|
|
||||||
"venv",
|
|
||||||
"*/migrations/*.py",
|
"*/migrations/*.py",
|
||||||
"staticfiles/*"
|
"staticfiles/*",
|
||||||
]
|
]
|
||||||
# Same as Django: https://github.com/cookiecutter/cookiecutter-django/issues/4792.
|
# Same as Django: https://github.com/cookiecutter/cookiecutter-django/issues/4792.
|
||||||
line-length = 88
|
line-length = 88
|
||||||
|
@ -145,33 +125,22 @@ select = [
|
||||||
"PERF",
|
"PERF",
|
||||||
# "FURB",
|
# "FURB",
|
||||||
# "LOG",
|
# "LOG",
|
||||||
"RUF"
|
"RUF",
|
||||||
]
|
]
|
||||||
ignore = [
|
ignore = [
|
||||||
"S101", # Use of assert detected https://docs.astral.sh/ruff/rules/assert/
|
"S101", # Use of assert detected https://docs.astral.sh/ruff/rules/assert/
|
||||||
"RUF012", # Mutable class attributes should be annotated with `typing.ClassVar`
|
"RUF012", # Mutable class attributes should be annotated with `typing.ClassVar`
|
||||||
"SIM102", # sometimes it's better to nest
|
"SIM102", # sometimes it's better to nest
|
||||||
"UP038" # Checks for uses of isinstance/issubclass that take a tuple
|
"UP038", # Checks for uses of isinstance/issubclass that take a tuple
|
||||||
# of types for comparison.
|
# of types for comparison.
|
||||||
# Deactivated because it can make the code slow:
|
# Deactivated because it can make the code slow:
|
||||||
# https://github.com/astral-sh/ruff/issues/7871
|
# https://github.com/astral-sh/ruff/issues/7871
|
||||||
]
|
]
|
||||||
# Allow fix for all enabled rules (when `--fix`) is provided.
|
|
||||||
fixable = ["ALL"]
|
|
||||||
unfixable = []
|
|
||||||
# The fixes in extend-unsafe-fixes will require
|
# The fixes in extend-unsafe-fixes will require
|
||||||
# provide the `--unsafe-fixes` flag when fixing.
|
# provide the `--unsafe-fixes` flag when fixing.
|
||||||
extend-unsafe-fixes = [
|
extend-unsafe-fixes = [
|
||||||
"UP038"
|
"UP038",
|
||||||
]
|
]
|
||||||
# Allow unused variables when underscore-prefixed.
|
|
||||||
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
|
||||||
|
|
||||||
[tool.ruff.format]
|
|
||||||
quote-style = "double"
|
|
||||||
indent-style = "space"
|
|
||||||
skip-magic-trailing-comma = false
|
|
||||||
line-ending = "auto"
|
|
||||||
|
|
||||||
[tool.ruff.lint.isort]
|
[tool.ruff.lint.isort]
|
||||||
force-single-line = true
|
force-single-line = true
|
||||||
|
|
|
@ -17,7 +17,7 @@ hiredis==3.0.0 # https://github.com/redis/hiredis-py
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- if cookiecutter.use_celery == "y" %}
|
{%- if cookiecutter.use_celery == "y" %}
|
||||||
celery==5.4.0 # pyup: < 6.0 # https://github.com/celery/celery
|
celery==5.4.0 # pyup: < 6.0 # https://github.com/celery/celery
|
||||||
django-celery-beat==2.6.0 # https://github.com/celery/django-celery-beat
|
django-celery-beat==2.7.0 # https://github.com/celery/django-celery-beat
|
||||||
{%- if cookiecutter.use_docker == 'y' %}
|
{%- if cookiecutter.use_docker == 'y' %}
|
||||||
flower==2.0.1 # https://github.com/mher/flower
|
flower==2.0.1 # https://github.com/mher/flower
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
@ -29,10 +29,10 @@ uvicorn-worker==0.2.0 # https://github.com/Kludex/uvicorn-worker
|
||||||
|
|
||||||
# Django
|
# Django
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
django==5.0.8 # pyup: < 5.1 # https://www.djangoproject.com/
|
django==5.0.9 # pyup: < 5.1 # https://www.djangoproject.com/
|
||||||
django-environ==0.11.2 # https://github.com/joke2k/django-environ
|
django-environ==0.11.2 # https://github.com/joke2k/django-environ
|
||||||
django-model-utils==4.5.1 # https://github.com/jazzband/django-model-utils
|
django-model-utils==5.0.0 # https://github.com/jazzband/django-model-utils
|
||||||
django-allauth[mfa]==64.0.0 # https://github.com/pennersr/django-allauth
|
django-allauth[mfa]==64.2.0 # https://github.com/pennersr/django-allauth
|
||||||
django-crispy-forms==2.3 # https://github.com/django-crispy-forms/django-crispy-forms
|
django-crispy-forms==2.3 # https://github.com/django-crispy-forms/django-crispy-forms
|
||||||
crispy-bootstrap5==2024.2 # https://github.com/django-crispy-forms/crispy-bootstrap5
|
crispy-bootstrap5==2024.2 # https://github.com/django-crispy-forms/crispy-bootstrap5
|
||||||
{%- if cookiecutter.frontend_pipeline == 'Django Compressor' %}
|
{%- if cookiecutter.frontend_pipeline == 'Django Compressor' %}
|
||||||
|
@ -47,7 +47,7 @@ django-cors-headers==4.4.0 # https://github.com/adamchainz/django-cors-headers
|
||||||
drf-spectacular==0.27.2 # https://github.com/tfranzel/drf-spectacular
|
drf-spectacular==0.27.2 # https://github.com/tfranzel/drf-spectacular
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- if cookiecutter.frontend_pipeline == 'Webpack' %}
|
{%- if cookiecutter.frontend_pipeline == 'Webpack' %}
|
||||||
django-webpack-loader==3.1.0 # https://github.com/django-webpack/django-webpack-loader
|
django-webpack-loader==3.1.1 # https://github.com/django-webpack/django-webpack-loader
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
# Project
|
# Project
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
-r production.txt
|
-r production.txt
|
||||||
|
|
||||||
Werkzeug[watchdog]==3.0.3 # https://github.com/pallets/werkzeug
|
watchdog==4.0.2 # https://github.com/gorakhargosh/watchdog
|
||||||
|
Werkzeug[watchdog]==3.0.4 # https://github.com/pallets/werkzeug
|
||||||
ipdb==0.13.13 # https://github.com/gotcha/ipdb
|
ipdb==0.13.13 # https://github.com/gotcha/ipdb
|
||||||
{%- if cookiecutter.use_docker == 'y' %}
|
{%- if cookiecutter.use_docker == 'y' %}
|
||||||
psycopg[c]==3.2.1 # https://github.com/psycopg/psycopg
|
psycopg[c]==3.2.1 # https://github.com/psycopg/psycopg
|
||||||
|
@ -8,12 +9,12 @@ psycopg[c]==3.2.1 # https://github.com/psycopg/psycopg
|
||||||
psycopg[binary]==3.2.1 # https://github.com/psycopg/psycopg
|
psycopg[binary]==3.2.1 # https://github.com/psycopg/psycopg
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- if cookiecutter.use_async == 'y' or cookiecutter.use_celery == 'y' %}
|
{%- if cookiecutter.use_async == 'y' or cookiecutter.use_celery == 'y' %}
|
||||||
watchfiles==0.21.0 # https://github.com/samuelcolvin/watchfiles
|
watchfiles==0.24.0 # https://github.com/samuelcolvin/watchfiles
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
# Testing
|
# Testing
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
mypy==1.11.1 # https://github.com/python/mypy
|
mypy==1.11.2 # https://github.com/python/mypy
|
||||||
django-stubs[compatible-mypy]==5.0.4 # https://github.com/typeddjango/django-stubs
|
django-stubs[compatible-mypy]==5.0.4 # https://github.com/typeddjango/django-stubs
|
||||||
pytest==8.3.2 # https://github.com/pytest-dev/pytest
|
pytest==8.3.2 # https://github.com/pytest-dev/pytest
|
||||||
pytest-sugar==1.0.0 # https://github.com/Frozenball/pytest-sugar
|
pytest-sugar==1.0.0 # https://github.com/Frozenball/pytest-sugar
|
||||||
|
@ -24,21 +25,21 @@ djangorestframework-stubs==3.15.0 # https://github.com/typeddjango/djangorestfr
|
||||||
# Documentation
|
# Documentation
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
sphinx==7.4.7 # https://github.com/sphinx-doc/sphinx
|
sphinx==7.4.7 # https://github.com/sphinx-doc/sphinx
|
||||||
sphinx-autobuild==2024.4.16 # https://github.com/GaretJax/sphinx-autobuild
|
sphinx-autobuild==2024.9.3 # https://github.com/GaretJax/sphinx-autobuild
|
||||||
sphinx-rtd-theme==2.0.0 # https://pypi.org/project/sphinx-rtd-theme/
|
sphinx-rtd-theme==2.0.0 # https://pypi.org/project/sphinx-rtd-theme/
|
||||||
|
|
||||||
# Code quality
|
# Code quality
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
ruff==0.5.7 # https://github.com/astral-sh/ruff
|
ruff==0.6.3 # https://github.com/astral-sh/ruff
|
||||||
coverage==7.6.1 # https://github.com/nedbat/coveragepy
|
coverage==7.6.1 # https://github.com/nedbat/coveragepy
|
||||||
djlint==1.34.1 # https://github.com/Riverside-Healthcare/djLint
|
djlint==1.35.2 # https://github.com/Riverside-Healthcare/djLint
|
||||||
pre-commit==3.8.0 # https://github.com/pre-commit/pre-commit
|
pre-commit==3.8.0 # https://github.com/pre-commit/pre-commit
|
||||||
|
|
||||||
# Django
|
# Django
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
factory-boy==3.3.0 # https://github.com/FactoryBoy/factory_boy
|
factory-boy==3.3.1 # https://github.com/FactoryBoy/factory_boy
|
||||||
|
|
||||||
django-debug-toolbar==4.4.6 # https://github.com/jazzband/django-debug-toolbar
|
django-debug-toolbar==4.4.6 # https://github.com/jazzband/django-debug-toolbar
|
||||||
django-extensions==3.2.3 # https://github.com/django-extensions/django-extensions
|
django-extensions==3.2.3 # https://github.com/django-extensions/django-extensions
|
||||||
django-coverage-plugin==3.1.0 # https://github.com/nedbat/django_coverage_plugin
|
django-coverage-plugin==3.1.0 # https://github.com/nedbat/django_coverage_plugin
|
||||||
pytest-django==4.8.0 # https://github.com/pytest-dev/pytest-django
|
pytest-django==4.9.0 # https://github.com/pytest-dev/pytest-django
|
||||||
|
|
|
@ -9,6 +9,6 @@ def _media_storage(settings, tmpdir) -> None:
|
||||||
settings.MEDIA_ROOT = tmpdir.strpath
|
settings.MEDIA_ROOT = tmpdir.strpath
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture
|
||||||
def user(db) -> User:
|
def user(db) -> User:
|
||||||
return UserFactory()
|
return UserFactory()
|
||||||
|
|
|
@ -24,6 +24,8 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
{% block extra_body %}
|
||||||
|
{% endblock extra_body %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock body %}{% endraw %}
|
{% endblock body %}{% endraw %}
|
||||||
|
|
|
@ -7,7 +7,7 @@ from factory import post_generation
|
||||||
from factory.django import DjangoModelFactory
|
from factory.django import DjangoModelFactory
|
||||||
|
|
||||||
|
|
||||||
class UserFactory(DjangoModelFactory):
|
class UserFactory(DjangoModelFactory[User]):
|
||||||
{%- if cookiecutter.username_type == "username" %}
|
{%- if cookiecutter.username_type == "username" %}
|
||||||
username = Faker("user_name")
|
username = Faker("user_name")
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
|
@ -46,7 +46,7 @@ class TestUserAdmin:
|
||||||
response = admin_client.get(url)
|
response = admin_client.get(url)
|
||||||
assert response.status_code == HTTPStatus.OK
|
assert response.status_code == HTTPStatus.OK
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture
|
||||||
def _force_allauth(self, settings):
|
def _force_allauth(self, settings):
|
||||||
settings.DJANGO_ADMIN_FORCE_ALLAUTH = True
|
settings.DJANGO_ADMIN_FORCE_ALLAUTH = True
|
||||||
# Reload the admin module to apply the setting change
|
# Reload the admin module to apply the setting change
|
||||||
|
@ -55,7 +55,7 @@ class TestUserAdmin:
|
||||||
with contextlib.suppress(admin.sites.AlreadyRegistered): # type: ignore[attr-defined]
|
with contextlib.suppress(admin.sites.AlreadyRegistered): # type: ignore[attr-defined]
|
||||||
reload(users_admin)
|
reload(users_admin)
|
||||||
|
|
||||||
@pytest.mark.django_db()
|
@pytest.mark.django_db
|
||||||
@pytest.mark.usefixtures("_force_allauth")
|
@pytest.mark.usefixtures("_force_allauth")
|
||||||
def test_allauth_login(self, rf, settings):
|
def test_allauth_login(self, rf, settings):
|
||||||
request = rf.get("/fake-url")
|
request = rf.get("/fake-url")
|
||||||
|
|
|
@ -6,7 +6,7 @@ from {{ cookiecutter.project_slug }}.users.models import User
|
||||||
|
|
||||||
|
|
||||||
class TestUserViewSet:
|
class TestUserViewSet:
|
||||||
@pytest.fixture()
|
@pytest.fixture
|
||||||
def api_rf(self) -> APIRequestFactory:
|
def api_rf(self) -> APIRequestFactory:
|
||||||
return APIRequestFactory()
|
return APIRequestFactory()
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ from django.core.management import call_command
|
||||||
from {{ cookiecutter.project_slug }}.users.models import User
|
from {{ cookiecutter.project_slug }}.users.models import User
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db()
|
@pytest.mark.django_db
|
||||||
class TestUserManager:
|
class TestUserManager:
|
||||||
def test_create_user(self):
|
def test_create_user(self):
|
||||||
user = User.objects.create_user(
|
user = User.objects.create_user(
|
||||||
|
@ -43,7 +43,7 @@ class TestUserManager:
|
||||||
assert user.username is None
|
assert user.username is None
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db()
|
@pytest.mark.django_db
|
||||||
def test_createsuperuser_command():
|
def test_createsuperuser_command():
|
||||||
"""Ensure createsuperuser command works with our custom manager."""
|
"""Ensure createsuperuser command works with our custom manager."""
|
||||||
out = StringIO()
|
out = StringIO()
|
||||||
|
|
|
@ -10,7 +10,7 @@ def test_swagger_accessible_by_admin(admin_client):
|
||||||
assert response.status_code == HTTPStatus.OK
|
assert response.status_code == HTTPStatus.OK
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db()
|
@pytest.mark.django_db
|
||||||
def test_swagger_ui_not_accessible_by_normal_user(client):
|
def test_swagger_ui_not_accessible_by_normal_user(client):
|
||||||
url = reverse("api-docs")
|
url = reverse("api-docs")
|
||||||
response = client.get(url)
|
response = client.get(url)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user