blob: 423cbcc49289e846a6d5c4be2381ea3492c08af5 [file] [log] [blame]
[case testReportBasic]
# flags: --xml-report out
def f(): pass
def g() -> None: pass
[outfile out/index.xml]
<?xml-stylesheet type="text/xsl" href="mypy-html.xslt"?><mypy-report-index name="index"><file module="__main__" name="main" total="4" any="1" empty="2" imprecise="0" precise="1" unanalyzed="0"/></mypy-report-index>
[case testLinePrecisionBasic]
# flags: --lineprecision-report out
def f(): pass
def g() -> None:
a = 1
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 5 2 0 1 2 0
[case testLinePrecisionImpreciseType]
# flags: --lineprecision-report out
def f(x: list) -> None: pass
[builtins fixtures/list.pyi]
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 2 0 1 0 1 0
[case testLinePrecisionUnanalyzed]
# flags: --lineprecision-report out
import sys
MYPY = False
if not MYPY:
a = 1
def f(x: int) -> None:
if isinstance(x, str):
b = 1
c = 1
[builtins fixtures/isinstance.pyi]
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 10 5 0 0 2 3
[case testLinePrecisionEmptyLines]
# flags: --lineprecision-report out
def f() -> None:
"""docstring
long
"""
x = 0
# comment
y = 0 # comment (non-empty)
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 10 3 0 0 7 0
[case testLinePrecisionImportFrom]
# flags: --lineprecision-report out --ignore-missing-imports
from m import f
from m import g
from bad import foo
from bad import ( # treated as a single line
foo2,
foo3,
)
[file m.py]
def f(): pass
def g() -> None: pass
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 8 2 0 2 4 0
m 2 1 0 1 0 0
[case testLinePrecisionImport]
# flags: --lineprecision-report out --ignore-missing-imports
import m
import bad
import m, bad
[file m.py]
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 4 1 0 2 1 0
m 0 0 0 0 0 0
[case testLinePrecisionStarImport]
# flags: --lineprecision-report out --ignore-missing-imports
from m import *
from bad import *
[file m.py]
def f(): pass
def g() -> None: pass
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 3 1 0 1 1 0
m 2 1 0 1 0 0
[case testLinePrecisionRelativeImport]
# flags: --lineprecision-report out --ignore-missing-imports
import a
[file a/__init__.py]
from .m import f
from .bad import g
[file a/m.py]
def f(): pass
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 2 1 0 0 1 0
a 2 1 0 1 0 0
a.m 1 0 0 1 0 0
[case testLinePrecisionPassStatement]
# flags: --lineprecision-report out
def f() -> None:
pass
def g():
pass
class C:
pass
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 7 4 0 2 1 0
[case testLinePrecisionBreakAndContinueStatement]
# flags: --lineprecision-report out
import a
import b
[file a.py]
def f() -> int:
while f():
break
return f()
def g():
while g():
break
[file b.py]
def f() -> int:
while f():
continue
return f()
def g():
while g():
continue
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 3 2 0 0 1 0
a 7 4 0 3 0 0
b 7 4 0 3 0 0
[case testLinePrecisionLiterals]
# flags: --lineprecision-report out
import str_lit
import bytes_lit
import int_lit
import float_lit
import true_lit
import false_lit
import none_lit
import complex_lit
import dots_lit
[file str_lit.py]
def f() -> object:
return ''
def g():
return ''
[file bytes_lit.py]
def f() -> object:
return b''
def g():
return b''
[file int_lit.py]
def f() -> object:
return 1
def g():
return 1
[file float_lit.py]
def f() -> object:
return 1.1
def g():
return 1.1
[file true_lit.py]
def f() -> object:
return True
def g():
return True
[file false_lit.py]
def f() -> object:
return False
def g():
return False
[file none_lit.py]
def f() -> object:
return None
def g():
return None
[file complex_lit.py]
def f() -> object:
return None
def g():
return None
[file dots_lit.py]
def f() -> object:
return ...
def g():
return ...
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
----------------------------------------------------------------
__main__ 10 9 0 0 1 0
bytes_lit 4 2 0 2 0 0
complex_lit 4 2 0 2 0 0
dots_lit 4 2 0 2 0 0
false_lit 4 2 0 2 0 0
float_lit 4 2 0 2 0 0
int_lit 4 2 0 2 0 0
none_lit 4 2 0 2 0 0
str_lit 4 2 0 2 0 0
true_lit 4 2 0 2 0 0
[case testLinePrecisionIfStatement]
# flags: --lineprecision-report out
if int():
x = 1
else: # This is treated as empty
x = 2
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 5 3 0 0 2 0
[case testLinePrecisionCallAnyArg]
# flags: --lineprecision-report out
from m import f
def g() -> None:
f(1) # Precise
f(1, 2) # Any
[file m.py]
from typing import Any
def f(x: int, y: Any = 0) -> None:
pass
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 5 3 0 1 1 0
m 3 2 0 1 0 0
[case testLinePrecisionCallImpreciseArg]
# flags: --lineprecision-report out
from m import f
def g() -> None:
f(1) # Precise
f(1, [2]) # Imprecise
[file m.py]
from typing import List, Any
def f(x: int, y: List[Any] = []) -> None:
pass
[builtins fixtures/list.pyi]
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 5 3 1 0 1 0
m 3 2 1 0 0 0
[case testLinePrecisionCallAnyArgWithKeywords]
# flags: --lineprecision-report out
from m import f
def g() -> None:
f(x=1) # Precise
f(x=1, z=1) # Precise
f(z=1, x=1) # Precise
f(y=1) # Any
f(y=1, x=1) # Any
[file m.py]
from typing import Any
def f(x: int = 0, y: Any = 0, z: int = 0) -> None:
pass
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 8 5 0 2 1 0
m 3 2 0 1 0 0
[case testLinePrecisionCallAnyMethodArg]
# flags: --lineprecision-report out
from m import C
def g(c: C) -> None:
c.f(1) # Precise
c.f(1, 2) # Any
[file m.py]
from typing import Any
class C:
def f(self, x: int, y: Any = 0) -> None:
pass
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 5 3 0 1 1 0
m 4 3 0 1 0 0
[case testLinePrecisionCallAnyConstructorArg]
# flags: --lineprecision-report out
from m import C
def g() -> None:
C(1) # Precise
C(1, 2) # Any
[file m.py]
from typing import Any
class C:
def __init__(self, x: int, y: Any = 0) -> None:
pass
[outfile out/lineprecision.txt]
Name Lines Precise Imprecise Any Empty Unanalyzed
-------------------------------------------------------------
__main__ 5 3 0 1 1 0
m 4 3 0 1 0 0