Skip to content

Commit 58a5a27

Browse files
committed
Added assert type tests
1 parent f7144b1 commit 58a5a27

File tree

8 files changed

+241
-0
lines changed

8 files changed

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

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

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
from django.contrib.gis.forms import (
2+
GeometryField,
3+
GeometryCollectionField,
4+
PointField,
5+
MultiPointField,
6+
LineStringField,
7+
MultiLineStringField,
8+
PolygonField,
9+
MultiPolygonField,
10+
)
11+
from django.forms.widgets import Widget
12+
13+
from typing_extensions import assert_type
14+
15+
16+
assert_type(GeometryField.widget, type[Widget] | Widget)
17+
assert_type(GeometryField().widget, Widget)
18+
19+
assert_type(GeometryCollectionField.widget, type[Widget] | Widget)
20+
assert_type(GeometryCollectionField().widget, Widget)
21+
22+
assert_type(PointField.widget, type[Widget] | Widget)
23+
assert_type(PointField().widget, Widget)
24+
25+
assert_type(MultiPointField.widget, type[Widget] | Widget)
26+
assert_type(MultiPointField().widget, Widget)
27+
28+
assert_type(LineStringField.widget, type[Widget] | Widget)
29+
assert_type(LineStringField().widget, Widget)
30+
31+
assert_type(MultiLineStringField.widget, type[Widget] | Widget)
32+
assert_type(MultiLineStringField().widget, Widget)
33+
34+
assert_type(PolygonField.widget, type[Widget] | Widget)
35+
assert_type(PolygonField().widget, Widget)
36+
37+
assert_type(MultiPolygonField.widget, type[Widget] | Widget)
38+
assert_type(MultiPolygonField().widget, Widget)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from django.contrib.postgres.forms.array import SimpleArrayField, SplitArrayField
2+
from django.forms.fields import Field
3+
from django.forms.widgets import Widget
4+
5+
from typing_extensions import assert_type
6+
7+
8+
base_field: Field
9+
size: 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)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from django.contrib.postgres.forms.hstore import HStoreField
2+
from django.forms.widgets import Widget
3+
4+
from typing_extensions import assert_type
5+
6+
7+
assert_type(HStoreField.widget, type[Widget] | Widget)
8+
assert_type(HStoreField().widget, Widget)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from django.contrib.postgres.forms.ranges import (
2+
IntegerRangeField,
3+
DecimalRangeField,
4+
DateTimeRangeField,
5+
DateRangeField,
6+
)
7+
from django.forms.widgets import Widget
8+
9+
from typing_extensions import assert_type
10+
11+
12+
assert_type(IntegerRangeField.widget, type[Widget] | Widget)
13+
assert_type(IntegerRangeField().widget, Widget)
14+
15+
assert_type(DecimalRangeField.widget, type[Widget] | Widget)
16+
assert_type(DecimalRangeField().widget, Widget)
17+
18+
assert_type(DateTimeRangeField.widget, type[Widget] | Widget)
19+
assert_type(DateTimeRangeField().widget, Widget)
20+
21+
assert_type(DateRangeField.widget, type[Widget] | Widget)
22+
assert_type(DateRangeField().widget, Widget)
+121
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
from django.forms.fields import (
2+
Field,
3+
CharField,
4+
IntegerField,
5+
FloatField,
6+
DecimalField,
7+
DateField,
8+
TimeField,
9+
DateTimeField,
10+
DurationField,
11+
RegexField,
12+
EmailField,
13+
FileField,
14+
ImageField,
15+
URLField,
16+
BooleanField,
17+
NullBooleanField,
18+
ChoiceField,
19+
TypedChoiceField,
20+
MultipleChoiceField,
21+
TypedMultipleChoiceField,
22+
ComboField,
23+
MultiValueField,
24+
FilePathField,
25+
SplitDateTimeField,
26+
GenericIPAddressField,
27+
SlugField,
28+
UUIDField,
29+
JSONField,
30+
)
31+
from django.forms.widgets import Widget
32+
33+
from typing_extensions import assert_type
34+
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: 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: 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: 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)
+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
from django.db.models import Model, QuerySet
2+
from django.forms.models import (
3+
InlineForeignKeyField,
4+
ModelChoiceField,
5+
ModelMultipleChoiceField,
6+
)
7+
from django.forms.widgets import Widget
8+
9+
from typing_extensions import assert_type
10+
11+
12+
class TestModel(Model): ...
13+
14+
15+
testmodel_instance: TestModel
16+
17+
assert_type(InlineForeignKeyField.widget, type[Widget] | Widget)
18+
assert_type(InlineForeignKeyField(testmodel_instance).widget, Widget)
19+
20+
testmodel_queryset: QuerySet[TestModel]
21+
22+
assert_type(ModelChoiceField.widget, type[Widget] | Widget)
23+
assert_type(ModelChoiceField(testmodel_queryset).widget, Widget)
24+
25+
assert_type(ModelMultipleChoiceField.widget, type[Widget] | Widget)
26+
assert_type(ModelMultipleChoiceField(testmodel_queryset).widget, Widget)

0 commit comments

Comments
 (0)