add more fields and more tests

This commit is contained in:
Maxim Kurnikov
2018-11-10 19:42:45 +03:00
parent 0ab77f8f05
commit 233e047117
4 changed files with 37 additions and 4 deletions

View File

@@ -2,5 +2,8 @@ from .base import Model as Model
from .fields import (AutoField as AutoField,
IntegerField as IntegerField,
SmallIntegerField as SmallIntegerField,
CharField as CharField,
Field as Field)
Field as Field,
SlugField as SlugField,
TextField as TextField)

View File

@@ -14,6 +14,10 @@ class IntegerField(Field):
def __get__(self, instance, owner) -> int: ...
class SmallIntegerField(IntegerField):
pass
class AutoField(Field):
def __get__(self, instance, owner) -> int: ...
@@ -24,3 +28,10 @@ class CharField(Field):
**kwargs): ...
def __get__(self, instance, owner) -> str: ...
class SlugField(CharField):
pass
class TextField(Field):
def __get__(self, instance, owner) -> str: ...

View File

@@ -4,9 +4,15 @@ from django.db import models
class User(models.Model):
id = models.AutoField(primary_key=True)
small_int = models.SmallIntegerField()
name = models.CharField(max_length=255)
slug = models.SlugField(max_length=255)
text = models.TextField()
user = User()
reveal_type(user.id) # E: Revealed type is 'builtins.int'
reveal_type(user.small_int) # E: Revealed type is 'builtins.int'
reveal_type(user.name) # E: Revealed type is 'builtins.str'
reveal_type(user.slug) # E: Revealed type is 'builtins.str'
reveal_type(user.text) # E: Revealed type is 'builtins.str'
[out]

View File

@@ -1,6 +1,17 @@
[case testArrayField]
import typing
[case testArrayFieldJsonField]
from django.db import models
from django.contrib.postgres.fields import ArrayField
class User(models.Model):
array = ArrayField(base_field=models.Field())
user = User()
reveal_type(user.array) # E: Revealed type is 'builtins.list[Any]'
[out]
[case testArrayFieldBaseFieldParsedIntoGenericAttribute]
from django.db import models
from django.contrib.postgres.fields import ArrayField
@@ -13,3 +24,5 @@ user = User()
reveal_type(user.members) # E: Revealed type is 'builtins.list[builtins.int*]'
reveal_type(user.members_as_text) # E: Revealed type is 'builtins.list[builtins.str*]'
[out]