Skip to content

Commit fc6406a

Browse files
committed
Add test with disallow_any_generics=True
1 parent 5b72d7e commit fc6406a

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

tests/typecheck/managers/test_managers.yml

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,9 +403,9 @@
403403
404404
405405
class MyModel(models.Model):
406-
407406
objects = MyModelManager()
408407
408+
409409
- case: override_manager_create2
410410
main: |
411411
from myapp.models import MyModel
@@ -582,3 +582,38 @@
582582
583583
class MySubModel(MyModel):
584584
objects = MySubManager()
585+
586+
- case: subclass_manager_without_type_parameters_disallow_any_generics
587+
main: |
588+
from myapp.models import MySubModel
589+
reveal_type(MySubModel.objects)
590+
reveal_type(MySubModel.objects.get())
591+
installed_apps:
592+
- myapp
593+
mypy_config: |
594+
[mypy-myapp.models]
595+
disallow_any_generics = true
596+
out: |
597+
main:2: note: Revealed type is "myapp.models.MySubManager[myapp.models.MySubModel]"
598+
main:3: note: Revealed type is "Any"
599+
myapp/models:9: error: Missing type parameters for generic type "MyManager"
600+
files:
601+
- path: myapp/__init__.py
602+
- path: myapp/models.py
603+
content: |
604+
from typing import TypeVar
605+
from django.db import models
606+
607+
T = TypeVar("T", bound="MyModel")
608+
609+
class MyManager(models.Manager[T]):
610+
pass
611+
612+
class MySubManager(MyManager):
613+
pass
614+
615+
class MyModel(models.Model):
616+
pass
617+
618+
class MySubModel(MyModel):
619+
objects = MySubManager()

0 commit comments

Comments
 (0)