1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
- case: test_setting_circular_import
main: |
from myapp import lib
mypy_config: |
[mypy.plugins.django-stubs]
django_settings_module = myapp.settings
files:
- path: myapp/__init__.py
- path: myapp/settings.py
content: |
from myapp.lib import function_returning_int, const_with_circular_import, const_unresolvable_circular
IMMEDIATE_VALUE = 123
CIRCULAR_WITH_HINT: int = function_returning_int()
CIRCULAR_WITHOUT_HINT_FUNCTION = function_returning_int()
CIRCULAR_WITHOUT_HINT_CONST = const_with_circular_import
UNRESOLVABLE_CIRCULAR = const_unresolvable_circular
- path: myapp/lib.py
content: |
from typing import TYPE_CHECKING
from typing_extensions import reveal_type
import django.conf
settings = django.conf.settings
def test() -> None:
reveal_type(settings.IMMEDIATE_VALUE) # N: Revealed type is "builtins.int"
reveal_type(settings.CIRCULAR_WITH_HINT) # N: Revealed type is "builtins.int"
reveal_type(settings.CIRCULAR_WITHOUT_HINT_FUNCTION) # N: Revealed type is "builtins.int"
reveal_type(settings.CIRCULAR_WITHOUT_HINT_CONST) # N: Revealed type is "builtins.int"
reveal_type(settings.UNRESOLVABLE_CIRCULAR) # N: Revealed type is "Any"
def function_returning_int() -> int:
return 42
if TYPE_CHECKING:
const_with_circular_import = settings.IMMEDIATE_VALUE
const_unresolvable_circular = settings.UNRESOLVABLE_CIRCULAR # E: Cannot determine type of "UNRESOLVABLE_CIRCULAR" [has-type]
else:
const_with_circular_import = 0
const_unresolvable_circular = ...
- case: test_setting_login_urls
main: |
from typing_extensions import reveal_type
from django.conf import settings
reveal_type(settings.LOGIN_URL) # N: Revealed type is "builtins.str | django.utils.functional._StrPromise"
reveal_type(settings.LOGIN_REDIRECT_URL) # N: Revealed type is "builtins.str | django.utils.functional._StrPromise"
reveal_type(settings.LOGOUT_REDIRECT_URL) # N: Revealed type is "builtins.str | django.utils.functional._StrPromise | None"
|