From a1f3712c4334efa2cb461b727b673857c674d0e4 Mon Sep 17 00:00:00 2001 From: Craig <41215134+c-py@users.noreply.github.com> Date: Thu, 9 Sep 2021 22:58:03 +1000 Subject: [PATCH] Add SmallAutoField (#710) * Add SmallAutoField * Test SmallAutoField presents as int --- django-stubs/db/models/__init__.pyi | 1 + django-stubs/db/models/fields/__init__.pyi | 1 + tests/typecheck/fields/test_base.yml | 9 +++++++++ 3 files changed, 11 insertions(+) diff --git a/django-stubs/db/models/__init__.pyi b/django-stubs/db/models/__init__.pyi index c7ee843..978bc7f 100644 --- a/django-stubs/db/models/__init__.pyi +++ b/django-stubs/db/models/__init__.pyi @@ -72,6 +72,7 @@ from .fields import PositiveBigIntegerField as PositiveBigIntegerField from .fields import PositiveIntegerField as PositiveIntegerField from .fields import PositiveSmallIntegerField as PositiveSmallIntegerField from .fields import SlugField as SlugField +from .fields import SmallAutoField as SmallAutoField from .fields import SmallIntegerField as SmallIntegerField from .fields import TextField as TextField from .fields import TimeField as TimeField diff --git a/django-stubs/db/models/fields/__init__.pyi b/django-stubs/db/models/fields/__init__.pyi index d4c74af..22b9122 100644 --- a/django-stubs/db/models/fields/__init__.pyi +++ b/django-stubs/db/models/fields/__init__.pyi @@ -500,3 +500,4 @@ class DurationField(Field[_ST, _GT]): class BigAutoField(AutoField[_ST, _GT]): ... class CommaSeparatedIntegerField(CharField[_ST, _GT]): ... +class SmallAutoField(AutoField[_ST, _GT]): ... diff --git a/tests/typecheck/fields/test_base.yml b/tests/typecheck/fields/test_base.yml index 9d3cf23..2b2f012 100644 --- a/tests/typecheck/fields/test_base.yml +++ b/tests/typecheck/fields/test_base.yml @@ -174,3 +174,12 @@ obj = EncodedMessage(b'\x010') reveal_type(obj.message) # N: Revealed type is "Union[builtins.bytes, builtins.memoryview]" + +- case: test_small_auto_field_class_presents_as_int + main: | + from django.db import models + class MyModel(models.Model): + small = models.SmallAutoField(primary_key=True) + obj = MyModel() + + reveal_type(obj.small) # N: Revealed type is "builtins.int*"