Skip to content

Commit b449edd

Browse files
authored
Merge pull request #78 from fusionbox/betterforms-3.0
Add support for Django 4.2, 5.0, 5.1, 5.2, and 6.0; drop support for …
2 parents a3528c8 + 3d581c9 commit b449edd

6 files changed

Lines changed: 79 additions & 94 deletions

File tree

.github/workflows/ci.yml

Lines changed: 42 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -8,72 +8,51 @@ jobs:
88
fail-fast: false
99
matrix:
1010
include:
11-
# Django 1.11
12-
- django-version: "1.11.0"
13-
python-version: "3.5"
14-
- django-version: "1.11.0"
15-
python-version: "3.6"
16-
- django-version: "1.11.0"
17-
python-version: "3.7"
18-
# Django 2.0
19-
- django-version: "2.0.0"
20-
python-version: "3.5"
21-
- django-version: "2.0.0"
22-
python-version: "3.6"
23-
- django-version: "2.0.0"
24-
python-version: "3.7"
25-
# Django 2.1
26-
- django-version: "2.1.0"
27-
python-version: "3.5"
28-
- django-version: "2.1.0"
29-
python-version: "3.6"
30-
- django-version: "2.1.0"
31-
python-version: "3.7"
32-
# Django 2.2
33-
- django-version: "2.2.0"
34-
python-version: "3.5"
35-
- django-version: "2.2.0"
36-
python-version: "3.6"
37-
- django-version: "2.2.0"
38-
python-version: "3.7"
39-
- django-version: "2.2.0"
11+
# Django 4.2
12+
- django-version: "4.2"
4013
python-version: "3.8"
41-
- django-version: "2.2.0"
14+
- django-version: "4.2"
4215
python-version: "3.9"
43-
# Django 3.0
44-
- django-version: "3.0.0"
45-
python-version: "3.6"
46-
- django-version: "3.0.0"
47-
python-version: "3.7"
48-
- django-version: "3.0.0"
49-
python-version: "3.8"
50-
- django-version: "3.0.0"
51-
python-version: "3.9"
52-
# Django 3.1
53-
- django-version: "3.1.0"
54-
python-version: "3.6"
55-
- django-version: "3.1.0"
56-
python-version: "3.7"
57-
- django-version: "3.1.0"
58-
python-version: "3.8"
59-
- django-version: "3.1.0"
60-
python-version: "3.9"
61-
# Django 3.2
62-
- django-version: "3.2.0"
63-
python-version: "3.6"
64-
- django-version: "3.2.0"
65-
python-version: "3.7"
66-
- django-version: "3.2.0"
67-
python-version: "3.8"
68-
- django-version: "3.2.0"
69-
python-version: "3.9"
70-
# Django 4.0
71-
- django-version: "4.0.0"
72-
python-version: "3.8"
73-
- django-version: "4.0.0"
74-
python-version: "3.9"
75-
- django-version: "4.0.0"
16+
- django-version: "4.2"
17+
python-version: "3.10"
18+
- django-version: "4.2"
19+
python-version: "3.11"
20+
- django-version: "4.2"
21+
python-version: "3.12"
22+
# Django 5.0
23+
- django-version: "5.0"
24+
python-version: "3.10"
25+
- django-version: "5.0"
26+
python-version: "3.11"
27+
- django-version: "5.0"
28+
python-version: "3.12"
29+
# Django 5.1
30+
- django-version: "5.1"
31+
python-version: "3.10"
32+
- django-version: "5.1"
33+
python-version: "3.11"
34+
- django-version: "5.1"
35+
python-version: "3.12"
36+
- django-version: "5.1"
37+
python-version: "3.13"
38+
# Django 5.2
39+
- django-version: "5.2"
7640
python-version: "3.10"
41+
- django-version: "5.2"
42+
python-version: "3.11"
43+
- django-version: "5.2"
44+
python-version: "3.12"
45+
- django-version: "5.2"
46+
python-version: "3.13"
47+
- django-version: "5.2"
48+
python-version: "3.14"
49+
# Django 6.0
50+
- django-version: "6.0"
51+
python-version: "3.12"
52+
- django-version: "6.0"
53+
python-version: "3.13"
54+
- django-version: "6.0"
55+
python-version: "3.14"
7756

7857
steps:
7958
- uses: actions/checkout@v3

CHANGES.rst

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
2.0.1 (unreleased)
1+
3.0.0 (unreleased)
22
------------------
33

4-
- Nothing changed yet.
4+
- Dropped support for Python 3.5, 3.6, and 3.7.
5+
- Dropped support for Django 1.11, 2.0, 2.1, 2.2, 3.0, 3.1, 3.2, and 4.0.
6+
- Added support for Django 4.2, 5.0, 5.1, 5.2, and 6.0.
7+
- Added support for Python 3.11, 3.12, 3.13, and 3.14.
58

69

710
2.0.0 (2022-08-11)

betterforms/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
__version__ = __import__('pkg_resources').get_distribution('django-betterforms').version
1+
from importlib.metadata import version
2+
3+
__version__ = version('django-betterforms')

betterforms/tests.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -367,8 +367,8 @@ class TestForm(BetterForm):
367367
test = """
368368
<div class="required error a formField">
369369
<label class="required" for="id_a">A</label>
370-
<input id="id_a" name="a" required type="text" />
371-
<ul class="errorlist"><li>this is an error message</li></ul>
370+
{field_a}
371+
{errors_a}
372372
</div>
373373
<div class="b formField">
374374
<label for="id_b">B</label>
@@ -378,7 +378,7 @@ class TestForm(BetterForm):
378378
<label class="required" for="id_c">C</label>
379379
<input id="id_c" name="c" required type="text" />
380380
</div>
381-
"""
381+
""".format(field_a=form['a'], errors_a=form['a'].errors)
382382

383383
self.assertHTMLEqual(
384384
render_to_string('betterforms/form_as_fieldsets.html', env),
@@ -421,8 +421,8 @@ def test_include_tag_rendering(self):
421421
<fieldset class="formFieldset first">
422422
<div class="required error a formField">
423423
<label class="required" for="id_a">A</label>
424-
<input id="id_a" name="a" required type="text" />
425-
<ul class="errorlist"><li>this is an error message</li></ul>
424+
{field_a}
425+
{errors_a}
426426
</div>
427427
<div class="required b formField">
428428
<label class="required" for="id_b">B</label>
@@ -435,7 +435,7 @@ def test_include_tag_rendering(self):
435435
<input id="id_c" name="c" required type="text" />
436436
</div>
437437
</fieldset>
438-
"""
438+
""".format(field_a=form['a'], errors_a=form['a'].errors)
439439

440440
self.assertHTMLEqual(
441441
render_to_string('betterforms/form_as_fieldsets.html', env),
@@ -516,9 +516,9 @@ def test_form_as_p(self):
516516
test = """
517517
<fieldset class="formFieldset first">
518518
<p class="required error">
519-
<ul class="errorlist"><li>this is an error</li></ul>
519+
{errors_a}
520520
<label class="required" for="id_a">A</label>
521-
<input id="id_a" name="a" required type="text" />
521+
{field_a}
522522
</p>
523523
<p class="required">
524524
<label class="required" for="id_b">B</label>
@@ -531,7 +531,7 @@ def test_form_as_p(self):
531531
<input id="id_c" name="c" required type="text" />
532532
</p>
533533
</fieldset>
534-
"""
534+
""".format(field_a=form['a'], errors_a=form['a'].errors)
535535
self.maxDiff=None
536536

537537
self.assertHTMLEqual(

setup.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ def read(fname):
2121
author_email='programmers@fusionbox.com',
2222
packages=[package for package in find_packages()
2323
if package.startswith('betterforms')],
24-
install_requires=['Django>=1.11'],
24+
install_requires=['Django>=4.2'],
2525
zip_safe=False,
2626
include_package_data=True,
2727
classifiers=[
@@ -31,12 +31,13 @@ def read(fname):
3131
'License :: OSI Approved :: BSD License',
3232
'Programming Language :: Python',
3333
'Programming Language :: Python :: 3',
34-
'Programming Language :: Python :: 3.5',
35-
'Programming Language :: Python :: 3.6',
36-
'Programming Language :: Python :: 3.7',
3734
'Programming Language :: Python :: 3.8',
3835
'Programming Language :: Python :: 3.9',
3936
'Programming Language :: Python :: 3.10',
37+
'Programming Language :: Python :: 3.11',
38+
'Programming Language :: Python :: 3.12',
39+
'Programming Language :: Python :: 3.13',
40+
'Programming Language :: Python :: 3.14',
4041
'Topic :: Internet :: WWW/HTTP',
4142
],
4243
)

tox.ini

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
[tox]
22
envlist =
3-
py{35,36,37}-dj{111,20,21}
4-
py{35,36,37,38,39}-dj22
5-
py{36,37,38,39}-dj{30,31,32}
6-
py{38,39,310}-dj40
3+
py{38,39,310,311,312}-dj42
4+
py{310,311,312}-dj50
5+
py{310,311,312,313}-dj51
6+
py{310,311,312,313,314}-dj52
7+
py{312,313,314}-dj60
8+
79

810
[testenv]
911
python =
10-
py35: python3.5
11-
py36: python3.6
12-
py37: python3.7
1312
py38: python3.8
1413
py39: python3.9
1514
py310: python3.10
15+
py311: python3.11
16+
py312: python3.12
17+
py313: python3.13
18+
py314: python3.14
1619
commands = make {posargs:test}
1720
deps =
1821
-r tests/requirements.txt
19-
dj111: Django>=1.11,<1.12
20-
dj20: Django>=2.0,<2.1
21-
dj21: Django>=2.1,<2.2
22-
dj22: Django>=2.2,<2.3
23-
dj30: Django>=3.0,<3.1
24-
dj31: Django>=3.1,<3.2
25-
dj32: Django>=3.2,<3.3
26-
dj40: Django>=4.0,<4.1
22+
dj42: Django>=4.2,<4.3
23+
dj50: Django>=5.0,<5.1
24+
dj51: Django>=5.1,<5.2
25+
dj52: Django>=5.2,<5.3
26+
dj60: Django>=6.0,<6.1
2727

2828
whitelist_externals = make

0 commit comments

Comments
 (0)