5
5
6
6
import py .path
7
7
8
- import _pytest ._code
9
8
import pytest
9
+ from _pytest ._code import Code
10
+ from _pytest ._code import ExceptionInfo
11
+ from _pytest ._code import Frame
10
12
from _pytest ._code import getfslineno
13
+ from _pytest ._code .code import ReprFuncArgs
11
14
12
15
13
16
def test_ne () -> None :
14
- code1 = _pytest . _code . Code (compile ('foo = "bar"' , "" , "exec" ))
17
+ code1 = Code (compile ('foo = "bar"' , "" , "exec" ))
15
18
assert code1 == code1
16
- code2 = _pytest . _code . Code (compile ('foo = "baz"' , "" , "exec" ))
19
+ code2 = Code (compile ('foo = "baz"' , "" , "exec" ))
17
20
assert code2 != code1
18
21
19
22
20
23
def test_code_gives_back_name_for_not_existing_file () -> None :
21
24
name = "abc-123"
22
25
co_code = compile ("pass\n " , name , "exec" )
23
26
assert co_code .co_filename == name
24
- code = _pytest . _code . Code (co_code )
27
+ code = Code (co_code )
25
28
assert str (code .path ) == name
26
29
assert code .fullsource is None
27
30
@@ -30,21 +33,21 @@ def test_code_with_class() -> None:
30
33
class A :
31
34
pass
32
35
33
- pytest .raises (TypeError , _pytest . _code . Code , A )
36
+ pytest .raises (TypeError , Code , A )
34
37
35
38
36
39
def x () -> None :
37
40
raise NotImplementedError ()
38
41
39
42
40
43
def test_code_fullsource () -> None :
41
- code = _pytest . _code . Code (x )
44
+ code = Code (x )
42
45
full = code .fullsource
43
46
assert "test_code_fullsource()" in str (full )
44
47
45
48
46
49
def test_code_source () -> None :
47
- code = _pytest . _code . Code (x )
50
+ code = Code (x )
48
51
src = code .source ()
49
52
expected = """def x() -> None:
50
53
raise NotImplementedError()"""
@@ -55,7 +58,7 @@ def test_frame_getsourcelineno_myself() -> None:
55
58
def func () -> FrameType :
56
59
return sys ._getframe (0 )
57
60
58
- f = _pytest . _code . Frame (func ())
61
+ f = Frame (func ())
59
62
source , lineno = f .code .fullsource , f .lineno
60
63
assert source is not None
61
64
assert source [lineno ].startswith (" return sys._getframe(0)" )
@@ -65,13 +68,13 @@ def test_getstatement_empty_fullsource() -> None:
65
68
def func () -> FrameType :
66
69
return sys ._getframe (0 )
67
70
68
- f = _pytest . _code . Frame (func ())
71
+ f = Frame (func ())
69
72
with mock .patch .object (f .code .__class__ , "fullsource" , None ):
70
73
assert f .statement == ""
71
74
72
75
73
76
def test_code_from_func () -> None :
74
- co = _pytest . _code . Code (test_frame_getsourcelineno_myself )
77
+ co = Code (test_frame_getsourcelineno_myself )
75
78
assert co .firstlineno
76
79
assert co .path
77
80
@@ -90,51 +93,51 @@ def test_code_getargs() -> None:
90
93
def f1 (x ):
91
94
raise NotImplementedError ()
92
95
93
- c1 = _pytest . _code . Code (f1 )
96
+ c1 = Code (f1 )
94
97
assert c1 .getargs (var = True ) == ("x" ,)
95
98
96
99
def f2 (x , * y ):
97
100
raise NotImplementedError ()
98
101
99
- c2 = _pytest . _code . Code (f2 )
102
+ c2 = Code (f2 )
100
103
assert c2 .getargs (var = True ) == ("x" , "y" )
101
104
102
105
def f3 (x , ** z ):
103
106
raise NotImplementedError ()
104
107
105
- c3 = _pytest . _code . Code (f3 )
108
+ c3 = Code (f3 )
106
109
assert c3 .getargs (var = True ) == ("x" , "z" )
107
110
108
111
def f4 (x , * y , ** z ):
109
112
raise NotImplementedError ()
110
113
111
- c4 = _pytest . _code . Code (f4 )
114
+ c4 = Code (f4 )
112
115
assert c4 .getargs (var = True ) == ("x" , "y" , "z" )
113
116
114
117
115
118
def test_frame_getargs () -> None :
116
119
def f1 (x ) -> FrameType :
117
120
return sys ._getframe (0 )
118
121
119
- fr1 = _pytest . _code . Frame (f1 ("a" ))
122
+ fr1 = Frame (f1 ("a" ))
120
123
assert fr1 .getargs (var = True ) == [("x" , "a" )]
121
124
122
125
def f2 (x , * y ) -> FrameType :
123
126
return sys ._getframe (0 )
124
127
125
- fr2 = _pytest . _code . Frame (f2 ("a" , "b" , "c" ))
128
+ fr2 = Frame (f2 ("a" , "b" , "c" ))
126
129
assert fr2 .getargs (var = True ) == [("x" , "a" ), ("y" , ("b" , "c" ))]
127
130
128
131
def f3 (x , ** z ) -> FrameType :
129
132
return sys ._getframe (0 )
130
133
131
- fr3 = _pytest . _code . Frame (f3 ("a" , b = "c" ))
134
+ fr3 = Frame (f3 ("a" , b = "c" ))
132
135
assert fr3 .getargs (var = True ) == [("x" , "a" ), ("z" , {"b" : "c" })]
133
136
134
137
def f4 (x , * y , ** z ) -> FrameType :
135
138
return sys ._getframe (0 )
136
139
137
- fr4 = _pytest . _code . Frame (f4 ("a" , "b" , c = "d" ))
140
+ fr4 = Frame (f4 ("a" , "b" , c = "d" ))
138
141
assert fr4 .getargs (var = True ) == [("x" , "a" ), ("y" , ("b" ,)), ("z" , {"c" : "d" })]
139
142
140
143
@@ -146,12 +149,12 @@ def test_bad_getsource(self) -> None:
146
149
else :
147
150
assert False
148
151
except AssertionError :
149
- exci = _pytest . _code . ExceptionInfo .from_current ()
152
+ exci = ExceptionInfo .from_current ()
150
153
assert exci .getrepr ()
151
154
152
155
def test_from_current_with_missing (self ) -> None :
153
156
with pytest .raises (AssertionError , match = "no current exception" ):
154
- _pytest . _code . ExceptionInfo .from_current ()
157
+ ExceptionInfo .from_current ()
155
158
156
159
157
160
class TestTracebackEntry :
@@ -162,7 +165,7 @@ def test_getsource(self) -> None:
162
165
else :
163
166
assert False
164
167
except AssertionError :
165
- exci = _pytest . _code . ExceptionInfo .from_current ()
168
+ exci = ExceptionInfo .from_current ()
166
169
entry = exci .traceback [0 ]
167
170
source = entry .getsource ()
168
171
assert source is not None
@@ -172,8 +175,6 @@ def test_getsource(self) -> None:
172
175
173
176
class TestReprFuncArgs :
174
177
def test_not_raise_exception_with_mixed_encoding (self , tw_mock ) -> None :
175
- from _pytest ._code .code import ReprFuncArgs
176
-
177
178
args = [("unicode_string" , "São Paulo" ), ("utf8_string" , b"S\xc3 \xa3 o Paulo" )]
178
179
179
180
r = ReprFuncArgs (args )
0 commit comments