Skip to content

Commit 6c0e4a0

Browse files
committed
Added assert type tests
1 parent f7144b1 commit 6c0e4a0

File tree

8 files changed

+230
-0
lines changed

8 files changed

+230
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from django.contrib.auth.forms import ReadOnlyPasswordHashField, UsernameField
2+
from django.forms.widgets import Widget
3+
from typing_extensions import assert_type
4+
5+
assert_type(ReadOnlyPasswordHashField.widget, type[Widget] | Widget)
6+
assert_type(ReadOnlyPasswordHashField().widget, Widget)
7+
8+
assert_type(UsernameField.widget, type[Widget] | Widget)
9+
assert_type(UsernameField().widget, Widget)

tests/assert_type/contrib/gis/forms/__init__.py

Whitespace-only changes.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
from django.contrib.gis.forms import (
2+
GeometryCollectionField,
3+
GeometryField,
4+
LineStringField,
5+
MultiLineStringField,
6+
MultiPointField,
7+
MultiPolygonField,
8+
PointField,
9+
PolygonField,
10+
)
11+
from django.forms.widgets import Widget
12+
from typing_extensions import assert_type
13+
14+
assert_type(GeometryField.widget, type[Widget] | Widget)
15+
assert_type(GeometryField().widget, Widget)
16+
17+
assert_type(GeometryCollectionField.widget, type[Widget] | Widget)
18+
assert_type(GeometryCollectionField().widget, Widget)
19+
20+
assert_type(PointField.widget, type[Widget] | Widget)
21+
assert_type(PointField().widget, Widget)
22+
23+
assert_type(MultiPointField.widget, type[Widget] | Widget)
24+
assert_type(MultiPointField().widget, Widget)
25+
26+
assert_type(LineStringField.widget, type[Widget] | Widget)
27+
assert_type(LineStringField().widget, Widget)
28+
29+
assert_type(MultiLineStringField.widget, type[Widget] | Widget)
30+
assert_type(MultiLineStringField().widget, Widget)
31+
32+
assert_type(PolygonField.widget, type[Widget] | Widget)
33+
assert_type(PolygonField().widget, Widget)
34+
35+
assert_type(MultiPolygonField.widget, type[Widget] | Widget)
36+
assert_type(MultiPolygonField().widget, Widget)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from typing import cast
2+
3+
from django.contrib.postgres.forms.array import SimpleArrayField, SplitArrayField
4+
from django.forms.fields import Field
5+
from django.forms.widgets import Widget
6+
from typing_extensions import assert_type
7+
8+
base_field = cast(Field, ...)
9+
size = cast(int, ...)
10+
11+
assert_type(SimpleArrayField.widget, type[Widget] | Widget)
12+
assert_type(SimpleArrayField(base_field).widget, Widget)
13+
14+
assert_type(SplitArrayField.widget, type[Widget] | Widget)
15+
assert_type(SplitArrayField(base_field, size).widget, Widget)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from django.contrib.postgres.forms.hstore import HStoreField
2+
from django.forms.widgets import Widget
3+
from typing_extensions import assert_type
4+
5+
assert_type(HStoreField.widget, type[Widget] | Widget)
6+
assert_type(HStoreField().widget, Widget)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from django.contrib.postgres.forms.ranges import (
2+
DateRangeField,
3+
DateTimeRangeField,
4+
DecimalRangeField,
5+
IntegerRangeField,
6+
)
7+
from django.forms.widgets import Widget
8+
from typing_extensions import assert_type
9+
10+
assert_type(IntegerRangeField.widget, type[Widget] | Widget)
11+
assert_type(IntegerRangeField().widget, Widget)
12+
13+
assert_type(DecimalRangeField.widget, type[Widget] | Widget)
14+
assert_type(DecimalRangeField().widget, Widget)
15+
16+
assert_type(DateTimeRangeField.widget, type[Widget] | Widget)
17+
assert_type(DateTimeRangeField().widget, Widget)
18+
19+
assert_type(DateRangeField.widget, type[Widget] | Widget)
20+
assert_type(DateRangeField().widget, Widget)
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
from typing import cast
2+
3+
from django.forms.fields import (
4+
BooleanField,
5+
CharField,
6+
ChoiceField,
7+
ComboField,
8+
DateField,
9+
DateTimeField,
10+
DecimalField,
11+
DurationField,
12+
EmailField,
13+
Field,
14+
FileField,
15+
FilePathField,
16+
FloatField,
17+
GenericIPAddressField,
18+
ImageField,
19+
IntegerField,
20+
JSONField,
21+
MultipleChoiceField,
22+
MultiValueField,
23+
NullBooleanField,
24+
RegexField,
25+
SlugField,
26+
SplitDateTimeField,
27+
TimeField,
28+
TypedChoiceField,
29+
TypedMultipleChoiceField,
30+
URLField,
31+
UUIDField,
32+
)
33+
from django.forms.widgets import Widget
34+
from typing_extensions import assert_type
35+
36+
assert_type(CharField.widget, type[Widget] | Widget)
37+
assert_type(CharField().widget, Widget)
38+
39+
assert_type(IntegerField.widget, type[Widget] | Widget)
40+
assert_type(IntegerField().widget, Widget)
41+
42+
assert_type(FloatField.widget, type[Widget] | Widget)
43+
assert_type(FloatField().widget, Widget)
44+
45+
assert_type(DecimalField.widget, type[Widget] | Widget)
46+
assert_type(DecimalField().widget, Widget)
47+
48+
assert_type(DateField.widget, type[Widget] | Widget)
49+
assert_type(DateField().widget, Widget)
50+
51+
assert_type(TimeField.widget, type[Widget] | Widget)
52+
assert_type(TimeField().widget, Widget)
53+
54+
assert_type(DateTimeField.widget, type[Widget] | Widget)
55+
assert_type(DateTimeField().widget, Widget)
56+
57+
assert_type(DurationField.widget, type[Widget] | Widget)
58+
assert_type(DurationField().widget, Widget)
59+
60+
regex = cast(str, ...)
61+
62+
assert_type(RegexField.widget, type[Widget] | Widget)
63+
assert_type(RegexField(regex).widget, Widget)
64+
65+
assert_type(EmailField.widget, type[Widget] | Widget)
66+
assert_type(EmailField().widget, Widget)
67+
68+
assert_type(FileField.widget, type[Widget] | Widget)
69+
assert_type(FileField().widget, Widget)
70+
71+
assert_type(ImageField.widget, type[Widget] | Widget)
72+
assert_type(ImageField().widget, Widget)
73+
74+
assert_type(URLField.widget, type[Widget] | Widget)
75+
assert_type(URLField().widget, Widget)
76+
77+
assert_type(BooleanField.widget, type[Widget] | Widget)
78+
assert_type(BooleanField().widget, Widget)
79+
80+
assert_type(NullBooleanField.widget, type[Widget] | Widget)
81+
assert_type(NullBooleanField().widget, Widget)
82+
83+
assert_type(ChoiceField.widget, type[Widget] | Widget)
84+
assert_type(ChoiceField().widget, Widget)
85+
86+
assert_type(TypedChoiceField.widget, type[Widget] | Widget)
87+
assert_type(TypedChoiceField().widget, Widget)
88+
89+
assert_type(MultipleChoiceField.widget, type[Widget] | Widget)
90+
assert_type(MultipleChoiceField().widget, Widget)
91+
92+
assert_type(TypedMultipleChoiceField.widget, type[Widget] | Widget)
93+
assert_type(TypedMultipleChoiceField().widget, Widget)
94+
95+
fields = cast(list[Field], ...)
96+
97+
assert_type(ComboField.widget, type[Widget] | Widget)
98+
assert_type(ComboField(fields).widget, Widget)
99+
100+
assert_type(MultiValueField.widget, type[Widget] | Widget)
101+
assert_type(MultiValueField(fields).widget, Widget)
102+
103+
path = cast(str, ...)
104+
105+
assert_type(FilePathField.widget, type[Widget] | Widget)
106+
assert_type(FilePathField(path).widget, Widget)
107+
108+
assert_type(SplitDateTimeField.widget, type[Widget] | Widget)
109+
assert_type(SplitDateTimeField().widget, Widget)
110+
111+
assert_type(GenericIPAddressField.widget, type[Widget] | Widget)
112+
assert_type(GenericIPAddressField().widget, Widget)
113+
114+
assert_type(SlugField.widget, type[Widget] | Widget)
115+
assert_type(SlugField().widget, Widget)
116+
117+
assert_type(UUIDField.widget, type[Widget] | Widget)
118+
assert_type(UUIDField().widget, Widget)
119+
120+
assert_type(JSONField.widget, type[Widget] | Widget)
121+
assert_type(JSONField().widget, Widget)
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
from typing import cast
2+
3+
from django.db.models import Model, QuerySet
4+
from django.forms.models import InlineForeignKeyField, ModelChoiceField, ModelMultipleChoiceField
5+
from django.forms.widgets import Widget
6+
from typing_extensions import assert_type
7+
8+
9+
class TestModel(Model): ...
10+
11+
12+
testmodel_instance = cast(TestModel, ...)
13+
14+
assert_type(InlineForeignKeyField.widget, type[Widget] | Widget)
15+
assert_type(InlineForeignKeyField(testmodel_instance).widget, Widget)
16+
17+
testmodel_queryset = cast(QuerySet[TestModel], ...)
18+
19+
assert_type(ModelChoiceField.widget, type[Widget] | Widget)
20+
assert_type(ModelChoiceField(testmodel_queryset).widget, Widget)
21+
22+
assert_type(ModelMultipleChoiceField.widget, type[Widget] | Widget)
23+
assert_type(ModelMultipleChoiceField(testmodel_queryset).widget, Widget)

0 commit comments

Comments
 (0)