| -- Type checker test cases dealing with modules and imports on case-insensitive filesystems. |
| |
| [case testCaseSensitivityDir] |
| # flags: --no-namespace-packages |
| from a import B # E: Module "a" has no attribute "B" |
| |
| [file a/__init__.py] |
| [file a/b/__init__.py] |
| |
| [case testCaseSensitivityDirNamespacePackages] |
| # flags: --namespace-packages |
| from a import B # E: Module "a" has no attribute "B" |
| |
| [file a/__init__.py] |
| [file a/b/__init__.py] |
| |
| [case testCaseInsensitivityDir] |
| # flags: --config-file tmp/mypy.ini |
| |
| from a import B # E: Module "a" has no attribute "B" |
| from other import x |
| reveal_type(x) # N: Revealed type is "builtins.int" |
| |
| [file a/__init__.py] |
| [file a/b/__init__.py] |
| [file FuNkY_CaSe/other.py] |
| x = 1 |
| |
| [file mypy.ini] |
| \[mypy] |
| mypy_path = tmp/funky_case |
| |
| |
| [case testCaseInsensitivityDirPyProjectTOML] |
| # flags: --config-file tmp/pyproject.toml |
| |
| from a import B # E: Module "a" has no attribute "B" |
| from other import x |
| reveal_type(x) # N: Revealed type is "builtins.int" |
| |
| [file a/__init__.py] |
| |
| [file a/b/__init__.py] |
| |
| [file FuNkY_CaSe/other.py] |
| x = 1 |
| |
| [file pyproject.toml] |
| \[tool.mypy] |
| mypy_path = "tmp/funky_case" |
| |
| |
| [case testPreferPackageOverFileCase] |
| # flags: --config-file tmp/mypy.ini |
| import a |
| [file funky/a.py] |
| / # Deliberate syntax error, this file should not be parsed. |
| [file FuNkY/a/__init__.py] |
| pass |
| |
| [file mypy.ini] |
| \[mypy] |
| mypy_path = tmp/funky |
| |
| |
| [case testPreferPackageOverFileCasePyProjectTOML] |
| # flags: --config-file tmp/pyproject.toml |
| import a |
| |
| [file funky/a.py] |
| / # Deliberate syntax error, this file should not be parsed. |
| |
| [file FuNkY/a/__init__.py] |
| pass |
| |
| [file pyproject.toml] |
| \[tool.mypy] |
| mypy_path = "tmp/funky" |
| |
| |
| [case testNotPreferPackageOverFileCase] |
| import a |
| [file a.py] |
| 'no'() # E: "str" not callable |
| [file A/__init__.py] |
| / # Deliberate syntax error, this file should not be parsed. |
| |
| [case testNamespacePackagePickFirstOnMypyPathCase] |
| # flags: --namespace-packages --config-file tmp/mypy.ini |
| from foo.bar import x |
| reveal_type(x) # N: Revealed type is "builtins.int" |
| [file XX/foo/bar.py] |
| x = 0 |
| [file yy/foo/bar.py] |
| x = '' |
| [file mypy.ini] |
| \[mypy] |
| mypy_path = tmp/xx, tmp/yy |
| |
| |
| [case testNamespacePackagePickFirstOnMypyPathCasePyProjectTOML] |
| # flags: --namespace-packages --config-file tmp/pyproject.toml |
| from foo.bar import x |
| reveal_type(x) # N: Revealed type is "builtins.int" |
| |
| [file XX/foo/bar.py] |
| x = 0 |
| |
| [file yy/foo/bar.py] |
| x = '' |
| |
| [file pyproject.toml] |
| \[tool.mypy] |
| mypy_path = ["tmp/xx", "tmp/yy"] |
| |
| |
| [case testClassicPackageInsideNamespacePackageCase] |
| # flags: --namespace-packages --config-file tmp/mypy.ini |
| from foo.bar.baz.boo import x |
| reveal_type(x) # N: Revealed type is "builtins.int" |
| [file xx/foo/bar/baz/boo.py] |
| x = '' |
| [file xx/foo/bar/baz/__init__.py] |
| [file yy/foo/bar/baz/boo.py] |
| x = 0 |
| [file yy/foo/bar/__init__.py] |
| |
| [file mypy.ini] |
| \[mypy] |
| mypy_path = TmP/xX, TmP/yY |
| |
| |
| [case testClassicPackageInsideNamespacePackageCasePyProjectTOML] |
| # flags: --namespace-packages --config-file tmp/pyproject.toml |
| from foo.bar.baz.boo import x |
| reveal_type(x) # N: Revealed type is "builtins.int" |
| |
| [file xx/foo/bar/baz/boo.py] |
| x = '' |
| |
| [file xx/foo/bar/baz/__init__.py] |
| |
| [file yy/foo/bar/baz/boo.py] |
| x = 0 |
| |
| [file yy/foo/bar/__init__.py] |
| |
| [file pyproject.toml] |
| \[tool.mypy] |
| mypy_path = ["TmP/xX", "TmP/yY"] |