| -- 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"] |