add two new as_manager tests

This commit is contained in:
Maxim Kurnikov
2020-01-05 17:55:16 +03:00
parent e5b61dc499
commit a01d58462e

View File

@@ -20,6 +20,34 @@
objects = MyQuerySet.as_manager() objects = MyQuerySet.as_manager()
- case: two_invocations_parametrized_with_different_models
main: |
from myapp.models import User, Blog
reveal_type(User.objects) # N: Revealed type is 'myapp.models.MyQuerySet_AsManager_User'
reveal_type(User.objects.get()) # N: Revealed type is 'myapp.models.User*'
reveal_type(User.objects.queryset_method) # N: Revealed type is 'def () -> builtins.int'
reveal_type(User.objects.queryset_method()) # N: Revealed type is 'builtins.int'
reveal_type(Blog.objects) # N: Revealed type is 'myapp.models.MyQuerySet_AsManager_Blog'
reveal_type(Blog.objects.get()) # N: Revealed type is 'myapp.models.Blog*'
reveal_type(Blog.objects.queryset_method) # N: Revealed type is 'def () -> builtins.int'
reveal_type(Blog.objects.queryset_method()) # N: Revealed type is 'builtins.int'
installed_apps:
- myapp
files:
- path: myapp/__init__.py
- path: myapp/models.py
content: |
from django.db import models
class MyQuerySet(models.QuerySet):
def queryset_method(self) -> int:
pass
class User(models.Model):
objects = MyQuerySet.as_manager()
class Blog(models.Model):
objects = MyQuerySet.as_manager()
- case: as_manager_outside_model_parametrized_with_any - case: as_manager_outside_model_parametrized_with_any
main: | main: |
from myapp.models import NotModel, outside_objects from myapp.models import NotModel, outside_objects
@@ -40,3 +68,28 @@
outside_objects = MyQuerySet.as_manager() outside_objects = MyQuerySet.as_manager()
class NotModel: class NotModel:
objects = MyQuerySet.as_manager() objects = MyQuerySet.as_manager()
- case: test_as_manager_without_name_to_bind_in_different_files
main: |
from myapp.models import MyQuerySet
reveal_type(MyQuerySet.as_manager()) # N: Revealed type is 'Any'
reveal_type(MyQuerySet.as_manager().get()) # N: Revealed type is 'Any'
reveal_type(MyQuerySet.as_manager().mymethod()) # N: Revealed type is 'Any'
from myapp import helpers
installed_apps:
- myapp
files:
- path: myapp/__init__.py
- path: myapp/models.py
content: |
from django.db import models
class MyQuerySet(models.QuerySet):
def mymethod(self) -> int:
pass
class MyModel(models.Model):
objects = MyQuerySet.as_manager()
- path: myapp/helpers.py
content: |
from myapp.models import MyQuerySet
MyQuerySet.as_manager()