fix tests for mypy 0.900 (#641)

This commit is contained in:
Cesar Canassa
2021-06-12 00:05:46 +02:00
committed by GitHub
parent 47f1700a8b
commit 77f9926ce1
33 changed files with 370 additions and 369 deletions

View File

@@ -2,11 +2,11 @@
main: |
from myapp.models import User
user = User(small_int=1, name='user', slug='user', text='user')
reveal_type(user.id) # N: Revealed type is 'builtins.int*'
reveal_type(user.small_int) # N: Revealed type is 'builtins.int*'
reveal_type(user.name) # N: Revealed type is 'builtins.str*'
reveal_type(user.slug) # N: Revealed type is 'builtins.str*'
reveal_type(user.text) # N: Revealed type is 'builtins.str*'
reveal_type(user.id) # N: Revealed type is "builtins.int*"
reveal_type(user.small_int) # N: Revealed type is "builtins.int*"
reveal_type(user.name) # N: Revealed type is "builtins.str*"
reveal_type(user.slug) # N: Revealed type is "builtins.str*"
reveal_type(user.text) # N: Revealed type is "builtins.str*"
installed_apps:
- myapp
files:
@@ -25,9 +25,9 @@
main: |
from myapp.models import Booking
booking = Booking()
reveal_type(booking.id) # N: Revealed type is 'builtins.int*'
reveal_type(booking.time_range) # N: Revealed type is 'Any'
reveal_type(booking.some_decimal) # N: Revealed type is 'decimal.Decimal*'
reveal_type(booking.id) # N: Revealed type is "builtins.int*"
reveal_type(booking.time_range) # N: Revealed type is "Any"
reveal_type(booking.some_decimal) # N: Revealed type is "decimal.Decimal*"
installed_apps:
- myapp
files:
@@ -47,7 +47,7 @@
disable_cache: true
main: |
from myapp.models import User
reveal_type(User().id) # N: Revealed type is 'builtins.int*'
reveal_type(User().id) # N: Revealed type is "builtins.int*"
installed_apps:
- myapp
files:
@@ -62,10 +62,10 @@
disable_cache: true
main: |
from myapp.models import User
reveal_type(User().my_pk) # N: Revealed type is 'builtins.int*'
reveal_type(User().my_pk) # N: Revealed type is "builtins.int*"
reveal_type(User().id)
out: |
main:3: note: Revealed type is 'Any'
main:3: note: Revealed type is "Any"
main:3: error: "User" has no attribute "id"
installed_apps:
- myapp
@@ -83,7 +83,7 @@
MyModel(nulltext="")
MyModel(nulltext=None)
MyModel().nulltext=None
reveal_type(MyModel().nulltext) # N: Revealed type is 'Union[builtins.str, None]'
reveal_type(MyModel().nulltext) # N: Revealed type is "Union[builtins.str, None]"
installed_apps:
- myapp
files:
@@ -100,7 +100,7 @@
MyModel(notnulltext=None) # Should allow None in constructor
MyModel(notnulltext="")
MyModel().notnulltext = None # E: Incompatible types in assignment (expression has type "None", variable has type "Union[str, int, Combinable]")
reveal_type(MyModel().notnulltext) # N: Revealed type is 'builtins.str*'
reveal_type(MyModel().notnulltext) # N: Revealed type is "builtins.str*"
installed_apps:
- myapp
files:
@@ -114,7 +114,7 @@
- case: if_field_called_on_class_return_field_itself
main: |
from myapp.models import MyUser
reveal_type(MyUser.name) # N: Revealed type is 'django.db.models.fields.CharField[Union[builtins.str, builtins.int, django.db.models.expressions.Combinable], builtins.str]'
reveal_type(MyUser.name) # N: Revealed type is "django.db.models.fields.CharField[Union[builtins.str, builtins.int, django.db.models.expressions.Combinable], builtins.str]"
installed_apps:
- myapp
files:
@@ -130,13 +130,13 @@
from django.db import models
class MyClass:
myfield: models.IntegerField[int, int]
reveal_type(MyClass.myfield) # N: Revealed type is 'django.db.models.fields.IntegerField[builtins.int, builtins.int]'
reveal_type(MyClass().myfield) # N: Revealed type is 'django.db.models.fields.IntegerField[builtins.int, builtins.int]'
reveal_type(MyClass.myfield) # N: Revealed type is "django.db.models.fields.IntegerField[builtins.int, builtins.int]"
reveal_type(MyClass().myfield) # N: Revealed type is "django.db.models.fields.IntegerField[builtins.int, builtins.int]"
- case: fields_inside_mixins_used_in_model_subclasses_resolved_as_primitives
main: |
from myapp.models import MyModel, AuthMixin
reveal_type(MyModel().username) # N: Revealed type is 'builtins.str*'
reveal_type(MyModel().username) # N: Revealed type is "builtins.str*"
installed_apps:
- myapp
files:
@@ -159,9 +159,9 @@
class Book(models.Model):
published = cast(models.Field[Year, Year], models.IntegerField())
book = Book()
reveal_type(book.published) # N: Revealed type is 'main.Year*'
reveal_type(book.published) # N: Revealed type is "main.Year*"
book.published = 2006 # E: Incompatible types in assignment (expression has type "int", variable has type "Year")
book.published = Year(2006)
reveal_type(book.published) # N: Revealed type is 'main.Year*'
reveal_type(book.published) # N: Revealed type is "main.Year*"
def accepts_int(arg: int) -> None: ...
accepts_int(book.published)

View File

@@ -6,7 +6,7 @@
Tag(content_object=myuser)
Tag.objects.create(content_object=None)
Tag.objects.create(content_object=myuser)
reveal_type(Tag().content_object) # N: Revealed type is 'Union[Any, None]'
reveal_type(Tag().content_object) # N: Revealed type is "Union[Any, None]"
installed_apps:
- myapp
files:
@@ -27,7 +27,7 @@
Tag(content_object=myuser)
Tag.objects.create(content_object=None)
Tag.objects.create(content_object=myuser)
reveal_type(Tag().content_object) # N: Revealed type is 'Union[Any, None]'
reveal_type(Tag().content_object) # N: Revealed type is "Union[Any, None]"
installed_apps:
- myapp
files:

View File

@@ -1,8 +1,8 @@
- case: nullable_field_with_strict_optional_true
main: |
from myapp.models import MyModel
reveal_type(MyModel().text) # N: Revealed type is 'builtins.str*'
reveal_type(MyModel().text_nullable) # N: Revealed type is 'Union[builtins.str, None]'
reveal_type(MyModel().text) # N: Revealed type is "builtins.str*"
reveal_type(MyModel().text_nullable) # N: Revealed type is "Union[builtins.str, None]"
MyModel().text = None # E: Incompatible types in assignment (expression has type "None", variable has type "Union[str, int, Combinable]")
MyModel().text_nullable = None
installed_apps:
@@ -19,7 +19,7 @@
- case: nullable_array_field
main: |
from myapp.models import MyModel
reveal_type(MyModel().lst) # N: Revealed type is 'Union[builtins.list[builtins.str], None]'
reveal_type(MyModel().lst) # N: Revealed type is "Union[builtins.list[builtins.str], None]"
installed_apps:
- myapp
files:
@@ -35,7 +35,7 @@
- case: nullable_foreign_key
main: |
from myapp.models import Publisher, Book
reveal_type(Book().publisher) # N: Revealed type is 'Union[myapp.models.Publisher, None]'
reveal_type(Book().publisher) # N: Revealed type is "Union[myapp.models.Publisher, None]"
Book().publisher = 11 # E: Incompatible types in assignment (expression has type "int", variable has type "Union[Publisher, Combinable, None]")
installed_apps:
- myapp
@@ -55,8 +55,8 @@
from myapp.models import Inventory
parent = Inventory()
core = Inventory(parent_id=parent.id)
reveal_type(core.parent_id) # N: Revealed type is 'Union[builtins.int, None]'
reveal_type(core.parent) # N: Revealed type is 'Union[myapp.models.Inventory, None]'
reveal_type(core.parent_id) # N: Revealed type is "Union[builtins.int, None]"
reveal_type(core.parent) # N: Revealed type is "Union[myapp.models.Inventory, None]"
Inventory(parent=None)
Inventory(parent_id=None)
installed_apps:

View File

@@ -2,7 +2,7 @@
main: |
from myapp.models import User
user = User(array=[])
reveal_type(user.array) # N: Revealed type is 'builtins.list*[Any]'
reveal_type(user.array) # N: Revealed type is "builtins.list*[Any]"
installed_apps:
- myapp
files:
@@ -19,8 +19,8 @@
main: |
from myapp.models import User
user = User()
reveal_type(user.members) # N: Revealed type is 'builtins.list*[builtins.int]'
reveal_type(user.members_as_text) # N: Revealed type is 'builtins.list*[builtins.str]'
reveal_type(user.members) # N: Revealed type is "builtins.list*[builtins.int]"
reveal_type(user.members_as_text) # N: Revealed type is "builtins.list*[builtins.str]"
installed_apps:
- myapp
files:

View File

@@ -2,9 +2,9 @@
main: |
from myapp.models import Book, Publisher
book = Book()
reveal_type(book.publisher) # N: Revealed type is 'myapp.models.Publisher*'
reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher*"
publisher = Publisher()
reveal_type(publisher.books) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.Book]'
reveal_type(publisher.books) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]"
installed_apps:
- myapp
files:
@@ -22,8 +22,8 @@
main: |
from myapp.models import Book
book = Book()
reveal_type(book.publisher_id) # N: Revealed type is 'builtins.int*'
reveal_type(book.owner_id) # N: Revealed type is 'builtins.int*'
reveal_type(book.publisher_id) # N: Revealed type is "builtins.int*"
reveal_type(book.owner_id) # N: Revealed type is "builtins.int*"
installed_apps:
- django.contrib.auth
- myapp
@@ -42,12 +42,12 @@
main: |
from myapp.models import Book, Publisher
book = Book()
reveal_type(book.publisher) # N: Revealed type is 'myapp.models.Publisher*'
reveal_type(book.publisher2) # N: Revealed type is 'myapp.models.Publisher*'
reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher*"
reveal_type(book.publisher2) # N: Revealed type is "myapp.models.Publisher*"
publisher = Publisher()
reveal_type(publisher.books) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.Book]'
reveal_type(publisher.books2) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.Book]'
reveal_type(publisher.books) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]"
reveal_type(publisher.books2) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]"
installed_apps:
- myapp
files:
@@ -66,7 +66,7 @@
main: |
from myapp2.models import Book
book = Book()
reveal_type(book.publisher) # N: Revealed type is 'myapp.models.Publisher*'
reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher*"
installed_apps:
- myapp
- myapp2
@@ -87,8 +87,8 @@
- case: one_to_one_field_no_related_name
main: |
from myapp.models import User, Profile
reveal_type(User().profile) # N: Revealed type is 'myapp.models.Profile'
reveal_type(Profile().user) # N: Revealed type is 'myapp.models.User*'
reveal_type(User().profile) # N: Revealed type is "myapp.models.Profile"
reveal_type(Profile().user) # N: Revealed type is "myapp.models.User*"
installed_apps:
- myapp
files:
@@ -113,10 +113,10 @@
from django.db import models
class App(models.Model):
def method(self) -> None:
reveal_type(self.views) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.View]'
reveal_type(self.members) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.Member]'
reveal_type(self.sheets) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.Sheet]'
reveal_type(self.profile) # N: Revealed type is 'myapp.models.Profile'
reveal_type(self.views) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.View]"
reveal_type(self.members) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Member]"
reveal_type(self.sheets) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Sheet]"
reveal_type(self.profile) # N: Revealed type is "myapp.models.Profile"
class View(models.Model):
app = models.ForeignKey(to=App, related_name='views', on_delete=models.CASCADE)
class Member(models.Model):
@@ -129,10 +129,10 @@
- case: test_circular_dependency_in_imports_with_string_based
main: |
from myapp.models import View
reveal_type(View().app.views) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.View]'
reveal_type(View().app.views) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.View]"
reveal_type(View().app.unknown)
out: |
main:3: note: Revealed type is 'Any'
main:3: note: Revealed type is "Any"
main:3: error: "App" has no attribute "unknown"
installed_apps:
- myapp
@@ -151,13 +151,13 @@
from django.db import models
class App(models.Model):
def method(self) -> None:
reveal_type(self.views) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.View]'
reveal_type(self.views) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.View]"
- case: models_related_managers_work_with_direct_model_inheritance_and_with_inheritance_from_other_model
main: |
from myapp.models import App
reveal_type(App().views) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.View]'
reveal_type(App().views2) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.View2]'
reveal_type(App().views) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.View]"
reveal_type(App().views2) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.View2]"
installed_apps:
- myapp
files:
@@ -175,7 +175,7 @@
- case: models_imported_inside_init_file_foreign_key
main: |
from myapp2.models import View
reveal_type(View().app.views) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp2.models.View]'
reveal_type(View().app.views) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp2.models.View]"
installed_apps:
- myapp
- myapp2
@@ -200,8 +200,8 @@
- case: models_imported_inside_init_file_one_to_one_field
main: |
from myapp2.models import Profile
reveal_type(Profile().user) # N: Revealed type is 'myapp.models.user.User*'
reveal_type(Profile().user.profile) # N: Revealed type is 'myapp2.models.Profile'
reveal_type(Profile().user) # N: Revealed type is "myapp.models.user.User*"
reveal_type(Profile().user.profile) # N: Revealed type is "myapp2.models.Profile"
installed_apps:
- myapp
- myapp2
@@ -226,8 +226,8 @@
- case: models_triple_circular_reference
main: |
from myapp.models import App
reveal_type(App().owner) # N: Revealed type is 'myapp.models.user.User*'
reveal_type(App().owner.profile) # N: Revealed type is 'myapp.models.profile.Profile'
reveal_type(App().owner) # N: Revealed type is "myapp.models.user.User*"
reveal_type(App().owner.profile) # N: Revealed type is "myapp.models.profile.Profile"
installed_apps:
- myapp
files:
@@ -256,8 +256,8 @@
- case: many_to_many_field_converts_to_queryset_of_model_type
main: |
from myapp.models import App, Member
reveal_type(Member().apps) # N: Revealed type is 'django.db.models.manager.RelatedManager*[myapp.models.App]'
reveal_type(App().members) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.Member]'
reveal_type(Member().apps) # N: Revealed type is "django.db.models.manager.RelatedManager*[myapp.models.App]"
reveal_type(App().members) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Member]"
installed_apps:
- myapp
files:
@@ -273,7 +273,7 @@
- case: many_to_many_works_with_string_if_imported
main: |
from myapp.models import Member
reveal_type(Member().apps) # N: Revealed type is 'django.db.models.manager.RelatedManager*[myapp2.models.App]'
reveal_type(Member().apps) # N: Revealed type is "django.db.models.manager.RelatedManager*[myapp2.models.App]"
installed_apps:
- myapp
- myapp2
@@ -294,7 +294,7 @@
- case: foreign_key_with_self
main: |
from myapp.models import User
reveal_type(User().parent) # N: Revealed type is 'myapp.models.User*'
reveal_type(User().parent) # N: Revealed type is "myapp.models.User*"
installed_apps:
- myapp
files:
@@ -308,7 +308,7 @@
- case: many_to_many_with_self
main: |
from myapp.models import User
reveal_type(User().friends) # N: Revealed type is 'django.db.models.manager.RelatedManager*[myapp.models.User]'
reveal_type(User().friends) # N: Revealed type is "django.db.models.manager.RelatedManager*[myapp.models.User]"
installed_apps:
- myapp
files:
@@ -339,7 +339,7 @@
- case: if_no_related_name_is_passed_create_default_related_managers
main: |
from myapp.models import Publisher
reveal_type(Publisher().book_set) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.Book]'
reveal_type(Publisher().book_set) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]"
installed_apps:
- myapp
files:
@@ -357,14 +357,14 @@
import datetime
from myapp.models import Book, Book2
reveal_type(Book().publisher_id) # N: Revealed type is 'builtins.str*'
reveal_type(Book().publisher_id) # N: Revealed type is "builtins.str*"
Book(publisher_id=1)
Book(publisher_id='hello')
Book(publisher_id=datetime.datetime.now()) # E: Incompatible type for "publisher_id" of "Book" (got "datetime", expected "Union[str, int, Combinable, None]")
Book.objects.create(publisher_id=1)
Book.objects.create(publisher_id='hello')
reveal_type(Book2().publisher_id) # N: Revealed type is 'builtins.int*'
reveal_type(Book2().publisher_id) # N: Revealed type is "builtins.int*"
Book2(publisher_id=1)
Book2(publisher_id=[]) # E: Incompatible type for "publisher_id" of "Book2" (got "List[Any]", expected "Union[float, int, str, Combinable, None]")
Book2.objects.create(publisher_id=1)
@@ -390,7 +390,7 @@
- case: if_model_is_defined_as_name_of_the_class_look_for_it_in_the_same_app
main: |
from myapp.models import Book
reveal_type(Book().publisher) # N: Revealed type is 'myapp.models.publisher.Publisher*'
reveal_type(Book().publisher) # N: Revealed type is "myapp.models.publisher.Publisher*"
installed_apps:
- myapp
files:
@@ -437,14 +437,14 @@
main: |
from myapp.models import Book, Publisher
book = Book()
reveal_type(book.publisher) # N: Revealed type is 'myapp.models.Publisher*'
reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher*"
publisher = Publisher()
reveal_type(publisher.books)
reveal_type(publisher.books2) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.Book]'
reveal_type(publisher.books2) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]"
out: |
main:6: error: "Publisher" has no attribute "books"; maybe "books2"?
main:6: note: Revealed type is 'Any'
main:6: note: Revealed type is "Any"
installed_apps:
- myapp
files:
@@ -464,7 +464,7 @@
main: |
from myapp.models import Book
book = Book()
reveal_type(book.publisher) # N: Revealed type is 'myapp.models.Publisher*'
reveal_type(book.publisher) # N: Revealed type is "myapp.models.Publisher*"
custom_settings: |
INSTALLED_APPS = ('django.contrib.contenttypes', 'myapp')
BOOK_RELATED_MODEL = 'myapp.Publisher'
@@ -484,7 +484,7 @@
- case: foreign_key_with_custom_app_name
main: |
from myapp.models import MyMain
reveal_type(MyMain().user) # N: Revealed type is 'myapp2.models.MyUser*'
reveal_type(MyMain().user) # N: Revealed type is "myapp2.models.MyUser*"
installed_apps:
- myapp
- myapp2.apps.MyApp2Config
@@ -512,7 +512,7 @@
- case: related_field_to_extracted_from_function
main: |
from myapp.models import Profile
reveal_type(Profile().user) # N: Revealed type is 'myapp.models.User*'
reveal_type(Profile().user) # N: Revealed type is "myapp.models.User*"
installed_apps:
- myapp
files:
@@ -531,8 +531,8 @@
- case: related_manager_name_defined_by_pattern
main: |
from myapp.models import Publisher
reveal_type(Publisher().books) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.Book]'
reveal_type(Publisher().articles) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.Article]'
reveal_type(Publisher().books) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]"
reveal_type(Publisher().articles) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Article]"
installed_apps:
- myapp
files:
@@ -555,9 +555,9 @@
- case: test_related_fields_returned_as_descriptors_from_model_class
main: |
from myapp.models import Author, Blog, Publisher, Profile
reveal_type(Author.blogs) # N: Revealed type is 'django.db.models.fields.related_descriptors.ManyToManyDescriptor'
reveal_type(Blog.publisher) # N: Revealed type is 'django.db.models.fields.related_descriptors.ForwardManyToOneDescriptor'
reveal_type(Publisher.profile) # N: Revealed type is 'django.db.models.fields.related_descriptors.ForwardOneToOneDescriptor'
reveal_type(Author.blogs) # N: Revealed type is "django.db.models.fields.related_descriptors.ManyToManyDescriptor"
reveal_type(Blog.publisher) # N: Revealed type is "django.db.models.fields.related_descriptors.ForwardManyToOneDescriptor"
reveal_type(Publisher.profile) # N: Revealed type is "django.db.models.fields.related_descriptors.ForwardOneToOneDescriptor"
installed_apps:
- myapp
files:
@@ -579,12 +579,12 @@
- case: test_foreign_key_from_superclass_inherits_correctly
main: |
from myapp.models import MyUser, Book, Article, LibraryEntity
reveal_type(Book().registered_by_user) # N: Revealed type is 'myapp.models.MyUser*'
reveal_type(Article().registered_by_user) # N: Revealed type is 'myapp.models.MyUser*'
reveal_type(Book().registered_by_user) # N: Revealed type is "myapp.models.MyUser*"
reveal_type(Article().registered_by_user) # N: Revealed type is "myapp.models.MyUser*"
user = MyUser()
reveal_type(user.book_set) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.Book]'
reveal_type(user.article_set) # N: Revealed type is 'django.db.models.manager.RelatedManager[myapp.models.Article]'
reveal_type(user.book_set) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Book]"
reveal_type(user.article_set) # N: Revealed type is "django.db.models.manager.RelatedManager[myapp.models.Article]"
installed_apps:
- myapp
files:
@@ -629,11 +629,11 @@
- case: resolve_primary_keys_for_foreign_keys_with_abstract_self_model
main: |
from myapp.models import User
reveal_type(User().parent) # N: Revealed type is 'myapp.models.User*'
reveal_type(User().parent_id) # N: Revealed type is 'builtins.int*'
reveal_type(User().parent) # N: Revealed type is "myapp.models.User*"
reveal_type(User().parent_id) # N: Revealed type is "builtins.int*"
reveal_type(User().parent2) # N: Revealed type is 'Union[myapp.models.User, None]'
reveal_type(User().parent2_id) # N: Revealed type is 'Union[builtins.int, None]'
reveal_type(User().parent2) # N: Revealed type is "Union[myapp.models.User, None]"
reveal_type(User().parent2_id) # N: Revealed type is "Union[builtins.int, None]"
installed_apps:
- myapp
files:
@@ -653,12 +653,12 @@
- case: related_manager_is_a_subclass_of_default_manager
main: |
from myapp.models import User, Order, Product
reveal_type(User().orders) # N: Revealed type is 'myapp.models.User_Order_RelatedManager1'
reveal_type(User().orders.get()) # N: Revealed type is 'myapp.models.Order*'
reveal_type(User().orders.manager_method()) # N: Revealed type is 'builtins.int'
reveal_type(Order().products) # N: Revealed type is 'myapp.models.Order_Product_RelatedManager1'
reveal_type(Order().products.get()) # N: Revealed type is 'myapp.models.Product*'
reveal_type(Order().products.queryset_method()) # N: Revealed type is 'builtins.int'
reveal_type(User().orders) # N: Revealed type is "myapp.models.User_Order_RelatedManager1"
reveal_type(User().orders.get()) # N: Revealed type is "myapp.models.Order*"
reveal_type(User().orders.manager_method()) # N: Revealed type is "builtins.int"
reveal_type(Order().products) # N: Revealed type is "myapp.models.Order_Product_RelatedManager1"
reveal_type(Order().products.get()) # N: Revealed type is "myapp.models.Product*"
reveal_type(Order().products.queryset_method()) # N: Revealed type is "builtins.int"
# TODO: realted manager support to use the same type for all related managers
if 1 == 2:
manager = User().products