File: test_module_not_found_error.py

package info (click to toggle)
python-friendly-traceback 0.7.62%2Bgit20240811.d7dbff6-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,264 kB
  • sloc: python: 21,500; makefile: 4
file content (112 lines) | stat: -rw-r--r-- 3,627 bytes parent folder | download
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import sys
import friendly_traceback
import tkinter

def test_Standard_library_module():
    try:
        import Tkinter
    except ModuleNotFoundError as e:
        message = str(e)
        friendly_traceback.explain_traceback(redirect="capture")
    result = friendly_traceback.get_output()
    
    assert "No module named 'Tkinter'" in result
    if friendly_traceback.get_lang() == "en":
        assert "Did you mean `tkinter`" in result
    if friendly_traceback._writing_docs:
        return result, message


def test_Not_a_package():

    try:
        import os.xxx
    except ModuleNotFoundError as e:
        friendly_traceback.explain_traceback(redirect="capture")
        message = str(e)
    result = friendly_traceback.get_output()
    
    assert "No module named" in result and "'os.xxx'" in result
    if friendly_traceback.get_lang() == "en":
        assert "`xxx` cannot be imported" in result

    if friendly_traceback._writing_docs:
        return result, message

def test_Not_a_package_similar_name():
    try:
        import os.pathh
    except ModuleNotFoundError as e:
        message = str(e)
        friendly_traceback.explain_traceback(redirect="capture")
    result = friendly_traceback.get_output()
    
    assert "No module named" in result and "'os.pathh'" in result
    if friendly_traceback.get_lang() == "en":
        assert "Did you mean `import os.path`" in result
    if friendly_traceback._writing_docs:
        return result, message

def test_Object_not_module():
    try:
        import os.open
    except ModuleNotFoundError as e:
        message = str(e)
        friendly_traceback.explain_traceback(redirect="capture")
    result = friendly_traceback.get_output()

    assert "No module named" in result and " 'os.open'" in result
    if friendly_traceback.get_lang() == "en":
        assert "Did you mean `from os import open`?" in result
    if friendly_traceback._writing_docs:
        return result, message

def test_Similar_object_not_module():
    try:
        import os.opend
    except ModuleNotFoundError as e:
        message = str(e)
        friendly_traceback.explain_traceback(redirect="capture")
    result = friendly_traceback.get_output()

    assert "No module named" in result and " 'os.opend'" in result
    if friendly_traceback.get_lang() == "en":
        assert "Did you mean `from os import open`?" in result
        assert "`open` is a name similar to `opend`" in result
    if friendly_traceback._writing_docs:
        return result, message

def test_Need_to_install_module():
    try:
        import alphabet
    except ModuleNotFoundError as e:
        message = str(e)
        friendly_traceback.explain_traceback(redirect="capture")
    result = friendly_traceback.get_output()

    assert "No module named 'alphabet'" in result
    if friendly_traceback.get_lang() == "en":
        assert "Perhaps you need to install it" in result
    if friendly_traceback._writing_docs:
        return result, message



if sys.platform.startswith("win"):
    def test_no_curses():
        try:
            import curses
        except ModuleNotFoundError as e:
            message = str(e)
            friendly_traceback.explain_traceback(redirect="capture")
        result = friendly_traceback.get_output()
        assert "No module named '_curses'" in result
        if friendly_traceback.get_lang() == "en":
            assert "The curses module is rarely installed with Python on Windows." in result

        if friendly_traceback._writing_docs:
            return result, message


if __name__ == "__main__":
    print(test_Standard_library_module()[0])