-- Tests for reports
--
-- This file follows syntax of cmdline.test.

[case testConfigErrorUnknownReport]
# cmd: mypy -c pass
[file mypy.ini]
\[mypy]
bad_report = .
[out]
mypy.ini: [mypy]: Unrecognized report type: bad_report
== Return code: 0

[case testCoberturaParser]
# cmd: mypy --cobertura-xml-report build pkg
[file pkg/__init__.py]
[file pkg/a.py]
from typing import Dict

def foo() -> Dict:
  z = {'hello': 'world'}
  return z
[file pkg/subpkg/__init__.py]
[file pkg/subpkg/a.py]
def bar() -> str:
  return 'world'
def untyped_function():
  return 42
[outfile build/cobertura.xml]
<coverage timestamp="$TIMESTAMP" version="$VERSION" line-rate="0.7500" branch-rate="0">
  <sources>
    <source>$PWD</source>
  </sources>
  <packages>
    <package complexity="1.0" name="pkg" branch-rate="0" line-rate="1.0000">
      <classes>
        <class complexity="1.0" filename="pkg/__init__.py" name="__init__.py" branch-rate="0" line-rate="1.0">
          <methods/>
          <lines/>
        </class>
        <class complexity="1.0" filename="pkg/a.py" name="a.py" branch-rate="0" line-rate="1.0000">
          <methods/>
          <lines>
            <line branch="false" hits="1" number="1" precision="precise"/>
            <line branch="true" hits="1" number="3" precision="imprecise" condition-coverage="50% (1/2)"/>
            <line branch="false" hits="1" number="4" precision="precise"/>
            <line branch="false" hits="1" number="5" precision="precise"/>
          </lines>
        </class>
      </classes>
    </package>
    <package complexity="1.0" name="pkg.subpkg" branch-rate="0" line-rate="0.5000">
      <classes>
        <class complexity="1.0" filename="pkg/subpkg/__init__.py" name="__init__.py" branch-rate="0" line-rate="1.0">
          <methods/>
          <lines/>
        </class>
        <class complexity="1.0" filename="pkg/subpkg/a.py" name="a.py" branch-rate="0" line-rate="0.5000">
          <methods/>
          <lines>
            <line branch="false" hits="1" number="1" precision="precise"/>
            <line branch="false" hits="1" number="2" precision="precise"/>
            <line branch="false" hits="0" number="3" precision="any"/>
            <line branch="false" hits="0" number="4" precision="any"/>
          </lines>
        </class>
      </classes>
    </package>
  </packages>
</coverage>


[case testAnyExprReportDivisionByZero]
# cmd: mypy --any-exprs-report=out -c 'pass'

[case testClassDefIsNotTreatedAsEmpty]
# cmd: mypy --html-report report n.py
[file n.py]
class A(object):
	pass  # line indented with tab; hex 1f here: ()

[file report/mypy-html.css]
[file report/index.html]
[outfile report/html/n.py.html]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../mypy-html.css">
</head>
<body>
<h2>n</h2>
<table>
<caption>n.py</caption>
<tbody><tr>
<td class="table-lines"><pre><span id="L1" class="lineno"><a class="lineno" href="#L1">1</a></span>
<span id="L2" class="lineno"><a class="lineno" href="#L2">2</a></span>
</pre></td>
<td class="table-code"><pre><span class="line-precise" title="No Anys on this line!">class A(object):</span>
<span class="line-precise" title="No Anys on this line!">	pass  # line indented with tab; hex 1f here: (?)</span>
</pre></td>
</tr></tbody>
</table>
</body>
</html>

[case testNoCrashRecursiveAliasInReport]
# cmd: mypy --any-exprs-report report n.py

[file n.py]
from typing import Union, List, Any, TypeVar

Nested = List[Union[Any, Nested]]
T = TypeVar("T")
NestedGen = List[Union[T, NestedGen[T]]]

x: Nested
y: NestedGen[int]
z: NestedGen[Any]

[file report/any-exprs.txt]
[outfile report/types-of-anys.txt]
 Name   Unannotated   Explicit   Unimported   Omitted Generics   Error   Special Form   Implementation Artifact
-----------------------------------------------------------------------------------------------------------------
    n             0          4            0                  8       0              0                         0
-----------------------------------------------------------------------------------------------------------------
Total             0          4            0                  8       0              0                         0

[case testTypeVarTreatedAsEmptyLine]
# cmd: mypy --html-report report n.py

[file n.py]
from typing import TypeVar

T = TypeVar('T')

[file report/mypy-html.css]
[file report/index.html]
[outfile report/html/n.py.html]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../mypy-html.css">
</head>
<body>
<h2>n</h2>
<table>
<caption>n.py</caption>
<tbody><tr>
<td class="table-lines"><pre><span id="L1" class="lineno"><a class="lineno" href="#L1">1</a></span>
<span id="L2" class="lineno"><a class="lineno" href="#L2">2</a></span>
<span id="L3" class="lineno"><a class="lineno" href="#L3">3</a></span>
</pre></td>
<td class="table-code"><pre><span class="line-precise" title="No Anys on this line!">from typing import TypeVar</span>
<span class="line-empty" title="No Anys on this line!"></span>
<span class="line-empty" title="No Anys on this line!">T = TypeVar('T')</span>
</pre></td>
</tr></tbody>
</table>
</body>
</html>

[case testUnreachableCodeMarkedAsAny]
# cmd: mypy --html-report report n.py

[file any.py]
from typing import Any
def any_f(x: Any) -> None:
    pass

[file n.py]
from any import any_f
def bar(x):
    # type: (str) -> None
    any_f(x)
    assert False
    any_f(x)

[file report/mypy-html.css]
[file report/index.html]
[outfile report/html/n.py.html]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../mypy-html.css">
</head>
<body>
<h2>n</h2>
<table>
<caption>n.py</caption>
<tbody><tr>
<td class="table-lines"><pre><span id="L1" class="lineno"><a class="lineno" href="#L1">1</a></span>
<span id="L2" class="lineno"><a class="lineno" href="#L2">2</a></span>
<span id="L3" class="lineno"><a class="lineno" href="#L3">3</a></span>
<span id="L4" class="lineno"><a class="lineno" href="#L4">4</a></span>
<span id="L5" class="lineno"><a class="lineno" href="#L5">5</a></span>
<span id="L6" class="lineno"><a class="lineno" href="#L6">6</a></span>
</pre></td>
<td class="table-code"><pre><span class="line-precise" title="No Anys on this line!">from any import any_f</span>
<span class="line-precise" title="No Anys on this line!">def bar(x):</span>
<span class="line-empty" title="No Anys on this line!">    # type: (str) -&gt; None</span>
<span class="line-any" title="Any Types on this line:
Explicit (x1)">    any_f(x)</span>
<span class="line-precise" title="No Anys on this line!">    assert False</span>
<span class="line-unanalyzed" title="No Anys on this line!">    any_f(x)</span>
</pre></td>
</tr></tbody>
</table>
</body>
</html>

[case testHtmlReportMemberExprNoUnanalyzed]
# cmd: mypy --html-report report n.py

[file n.py]
import sys

old_stdout = sys.stdout

[file report/mypy-html.css]
[file report/index.html]
[outfile report/html/n.py.html]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../mypy-html.css">
</head>
<body>
<h2>n</h2>
<table>
<caption>n.py</caption>
<tbody><tr>
<td class="table-lines"><pre><span id="L1" class="lineno"><a class="lineno" href="#L1">1</a></span>
<span id="L2" class="lineno"><a class="lineno" href="#L2">2</a></span>
<span id="L3" class="lineno"><a class="lineno" href="#L3">3</a></span>
</pre></td>
<td class="table-code"><pre><span class="line-precise" title="No Anys on this line!">import sys</span>
<span class="line-empty" title="No Anys on this line!"></span>
<span class="line-precise" title="No Anys on this line!">old_stdout = sys.stdout</span>
</pre></td>
</tr></tbody>
</table>
</body>
</html>

[case testAnyExprReportIncludesDeadCode]
# cmd: mypy --any-exprs-report report i.py j.py

[file i.py]
def bar(x):
    # type: (str) -> None
    print(x)
    assert False
    print(x)  # dead code!

[file j.py]
def bar(x):
    # type: (str) -> None
    print(x)
    assert False

[file report/types-of-anys.txt]
[outfile report/any-exprs.txt]
 Name   Anys   Exprs   Coverage
---------------------------------
    i      1       6     83.33%
    j      0       5    100.00%
---------------------------------
Total      1      11     90.91%

[case testAnyExprReportHigherKindedTypesAreNotAny]
# cmd: mypy --any-exprs-report report i.py

[file i.py]
from enum import Enum
from mypy_extensions import TypedDict
from typing import NewType, NamedTuple, TypeVar

from typing import TypeVar

T = TypeVar('T')  # no error

def f(t: T) -> T:
    return t

Point = NamedTuple('Point', [('x', int), ('y', int)])  # no error

def origin() -> Point:
    return Point(x=0, y=0)

NT = NewType('NT', int)  # no error

def nt() -> NT:
    return NT(1)

E = Enum('E', '1, 2, 3')  # no error

def k(s: E) -> None: pass

Movie = TypedDict('Movie', {'name': str, 'year': int})

def g(m: Movie) -> Movie:
    return m

[file report/types-of-anys.txt]
[outfile report/any-exprs.txt]
 Name   Anys   Exprs   Coverage
---------------------------------
    i      0      14    100.00%
---------------------------------
Total      0      14    100.00%


[case testAnyExpressionsReportTypesOfAny]
# cmd: mypy --python-version=3.6 --any-exprs-report report n.py

[file n.py]
from typing import Any, List
from nonexistent import C  # type: ignore

def any_f(x: Any) -> None:  # Explicit
    pass

def a(x) -> None:  # Unannotated
    any_f(x)

x: Any = 2  # Explicit
y: C = None  # Unimported

def b() -> List:  # Omitted Generics
    return [1, 2, 3]

g = 1
z = g.does_not_exist()  # type: ignore  # Error


[file report/any-exprs.txt]
[outfile report/types-of-anys.txt]
 Name   Unannotated   Explicit   Unimported   Omitted Generics   Error   Special Form   Implementation Artifact
-----------------------------------------------------------------------------------------------------------------
    n             2          4            2                  1       3              0                         0
-----------------------------------------------------------------------------------------------------------------
Total             2          4            2                  1       3              0                         0

[case testAnyExpressionsReportUnqualifiedError]
# cmd: mypy --any-exprs-report report n.py

[file n.py]
z = does_not_exist()  # type: ignore  # Error

[file report/any-exprs.txt]
[outfile report/types-of-anys.txt]
 Name   Unannotated   Explicit   Unimported   Omitted Generics   Error   Special Form   Implementation Artifact
-----------------------------------------------------------------------------------------------------------------
    n             0          0            0                  0       3              0                         0
-----------------------------------------------------------------------------------------------------------------
Total             0          0            0                  0       3              0                         0

[case testAnyExpressionsReportUntypedDef]
# cmd: mypy --any-exprs-report report n.py

[file n.py]
def foo():
    x = 0
    f = 0

[file report/any-exprs.txt]
[outfile report/types-of-anys.txt]
 Name   Unannotated   Explicit   Unimported   Omitted Generics   Error   Special Form   Implementation Artifact
-----------------------------------------------------------------------------------------------------------------
    n             0          0            0                  0       0              0                         0
-----------------------------------------------------------------------------------------------------------------
Total             0          0            0                  0       0              0                         0
[case testTrickyCoverage]
# cmd: mypy --linecoverage-report=report n.py
[file n.py]
def blah(x): return x

@blah

def f(x: int) -> None: pass

class Foo:
    @blah
    #hi
    def f(self, x: int) -> None:
        pass

@blah
class Z(object):
    pass

[case testCoverageIgnoresCache]
-- Performs two runs to verify that cached information does not prevent
-- modules from being included in reports.
# cmd: mypy --linecount-report report a.py
[file a.py]
empty = False
[out]
[out2]
[outfile report/linecount.txt]
      1       1      0      0 total
      1       1      0      0 a

[case testAnyExprReportIgnoresSpecialForms]
# cmd: mypy --any-exprs-report report i.py j.py k.py l.py

[file i.py]
async def some_function() -> None:
    pass

[file j.py]
from typing import Any

async def some_function() -> Any:
    pass

[file k.py]
from typing import NamedTuple

def a() -> None:
    _FuzzyMatch(0, 0)

_FuzzyMatch = NamedTuple('_FuzzyMatch', [
    ('match_length', int),
    ('start_pos', int),
])

def b() -> None:
    _FuzzyMatch(0, 0)

[file l.py]
async def some_function(x) -> None:
    pass

[file report/any-exprs.txt]
[outfile report/types-of-anys.txt]
 Name   Unannotated   Explicit   Unimported   Omitted Generics   Error   Special Form   Implementation Artifact
-----------------------------------------------------------------------------------------------------------------
    i             0          0            0                  0       0              0                         0
    j             0          1            0                  0       0              0                         0
    k             0          0            0                  0       0              0                         0
    l             1          0            0                  0       0              0                         0
-----------------------------------------------------------------------------------------------------------------
Total             1          1            0                  0       0              0                         0

[case testSpecialAnyHtmlReport]
# cmd: mypy --html-report report n.py
[file n.py]
from typing import Callable

SourceToDisplay = Callable[[int], int]
DisplayToSource = Callable[[int], int]

[file report/mypy-html.css]
[file report/index.html]
[outfile report/html/n.py.html]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../mypy-html.css">
</head>
<body>
<h2>n</h2>
<table>
<caption>n.py</caption>
<tbody><tr>
<td class="table-lines"><pre><span id="L1" class="lineno"><a class="lineno" href="#L1">1</a></span>
<span id="L2" class="lineno"><a class="lineno" href="#L2">2</a></span>
<span id="L3" class="lineno"><a class="lineno" href="#L3">3</a></span>
<span id="L4" class="lineno"><a class="lineno" href="#L4">4</a></span>
</pre></td>
<td class="table-code"><pre><span class="line-precise" title="No Anys on this line!">from typing import Callable</span>
<span class="line-empty" title="No Anys on this line!"></span>
<span class="line-precise" title="No Anys on this line!">SourceToDisplay = Callable[[int], int]</span>
<span class="line-precise" title="No Anys on this line!">DisplayToSource = Callable[[int], int]</span>
</pre></td>
</tr></tbody>
</table>
</body>
</html>

[case testHtmlReportOnNamespacePackagesWithExplicitBases]
# cmd: mypy --html-report report -p folder
[file folder/subfolder/something.py]
class Something:
    pass
[file folder/main.py]
from .subfolder.something import Something
print(Something())
[file folder/__init__.py]
[file mypy.ini]
\[mypy]
explicit_package_bases = True
namespace_packages = True

[file report/mypy-html.css]
[file report/index.html]
[outfile report/html/folder/subfolder/something.py.html]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../mypy-html.css">
</head>
<body>
<h2>folder.subfolder.something</h2>
<table>
<caption>folder/subfolder/something.py</caption>
<tbody><tr>
<td class="table-lines"><pre><span id="L1" class="lineno"><a class="lineno" href="#L1">1</a></span>
<span id="L2" class="lineno"><a class="lineno" href="#L2">2</a></span>
</pre></td>
<td class="table-code"><pre><span class="line-precise" title="No Anys on this line!">class Something:</span>
<span class="line-precise" title="No Anys on this line!">    pass</span>
</pre></td>
</tr></tbody>
</table>
</body>
</html>
