File: test_confidence.py

package info (click to toggle)
vulture 2.14-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 464 kB
  • sloc: python: 3,254; makefile: 12
file content (85 lines) | stat: -rw-r--r-- 1,650 bytes parent folder | download | duplicates (3)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
from vulture import core

dc = core.DEFAULT_CONFIDENCE


def check_min_confidence(code, min_confidence, expected):
    v = core.Vulture(verbose=True)
    v.scan(code)
    detected = {
        item.name: item.confidence
        for item in v.get_unused_code(min_confidence=min_confidence)
    }
    assert detected == expected


def test_confidence_import():
    code = """\
import foo
"""
    check_min_confidence(code, 50, {"foo": 90})
    check_min_confidence(code, 100, {})


def test_confidence_unreachable():
    code = """\
def foo():
    return
    bar()

foo()
"""
    check_min_confidence(code, 50, {"return": 100})
    check_min_confidence(code, 100, {"return": 100})


def test_function_arg():
    code = """\
def foo(a):
    b = 3

foo(5)
"""
    check_min_confidence(code, 50, {"a": 100, "b": dc})
    check_min_confidence(code, dc, {"a": 100, "b": dc})
    check_min_confidence(code, 100, {"a": 100})


def test_confidence_class():
    code = """\
class Foo:
    pass
"""
    check_min_confidence(code, 50, {"Foo": dc})
    check_min_confidence(code, 100, {})


def test_confidence_attr():
    code = "A.b = 'something'"
    check_min_confidence(code, 50, {"b": dc})
    check_min_confidence(code, 100, {})


def test_confidence_props():
    code = """\
class Foo:
    @property
    def some_prop():
        pass

Foo()
"""
    check_min_confidence(code, 50, {"some_prop": dc})
    check_min_confidence(code, 100, {})


def test_confidence_async_def():
    code = """\
async def foo():
    if bar():
        pass
    else:
        print("Else")
"""
    check_min_confidence(code, 50, {"foo": dc})
    check_min_confidence(code, 75, {})