FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
bpython/bpython/test/test_interpreter.py at 0.15-dev · optionalg/bpython · GitHub
optionalg
/
bpython
Public
forked from
bpython/bpython
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
bpython
/
bpython
/
test
/
test_interpreter.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
94 lines (67 loc) · 2.97 KB
Breadcrumbs
bpython
/
bpython
/
test
/
test_interpreter.py
Copy path
File metadata and controls
94 lines (67 loc) · 2.97 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
try
:
import
unittest2
as
unittest
except
ImportError
:
import
unittest
from
curtsies
.
fmtfuncs
import
bold
,
green
,
magenta
,
cyan
,
red
,
plain
from
bpython
.
curtsiesfrontend
import
interpreter
from
bpython
.
_py3compat
import
py3
from
bpython
.
test
import
mock
class
TestInterpreter
(
unittest
.
TestCase
):
def
test_syntaxerror
(
self
):
i
=
interpreter
.
Interp
()
a
=
[]
def
append_to_a
(
message
):
a
.
append
(
message
)
i
.
write
=
append_to_a
i
.
runsource
(
'1.1.1.1'
)
expected
=
' File '
+
green
(
'"<input>"'
)
+
', line '
+
\
bold
(
magenta
(
'1'
))
+
'
\n
1.1.1.1
\n
^
\n
'
+
\
bold
(
red
(
'SyntaxError'
))
+
': '
+
cyan
(
'invalid syntax'
)
+
'
\n
'
self
.
assertEquals
(
str
(
plain
(
''
).
join
(
a
)),
str
(
expected
))
self
.
assertEquals
(
plain
(
''
).
join
(
a
),
expected
)
def
test_traceback
(
self
):
i
=
interpreter
.
Interp
()
a
=
[]
def
append_to_a
(
message
):
a
.
append
(
message
)
i
.
write
=
append_to_a
def
f
():
return
1
/
0
def
g
():
return
f
()
i
.
runsource
(
'g()'
)
expected
=
'Traceback (most recent call last):
\n
File '
+
\
green
(
'"<input>"'
)
+
', line '
+
bold
(
magenta
(
'1'
))
+
', in '
+
\
cyan
(
'<module>'
)
+
'
\n
'
+
bold
(
red
(
'NameError'
))
+
': '
+
\
cyan
(
"name 'g' is not defined"
)
+
'
\n
'
self
.
assertEquals
(
str
(
plain
(
''
).
join
(
a
)),
str
(
expected
))
self
.
assertEquals
(
plain
(
''
).
join
(
a
),
expected
)
@
unittest
.
skipIf
(
py3
,
"runsource() accepts only unicode in Python 3"
)
def
test_runsource_bytes
(
self
):
i
=
interpreter
.
Interp
(
encoding
=
'latin-1'
)
i
.
runsource
(
"a = b'
\xfe
'"
.
encode
(
'latin-1'
),
encode
=
False
)
self
.
assertIsInstance
(
i
.
locals
[
'a'
],
str
)
self
.
assertEqual
(
i
.
locals
[
'a'
],
b"
\xfe
"
)
i
.
runsource
(
"b = u'
\xfe
'"
.
encode
(
'latin-1'
),
encode
=
False
)
self
.
assertIsInstance
(
i
.
locals
[
'b'
],
unicode
)
self
.
assertEqual
(
i
.
locals
[
'b'
],
"
\xfe
"
)
@
unittest
.
skipUnless
(
py3
,
"Only a syntax error in Python 3"
)
def
test_runsource_bytes_over_128_syntax_error_py3
(
self
):
i
=
interpreter
.
Interp
(
encoding
=
'latin-1'
)
i
.
showsyntaxerror
=
mock
.
Mock
(
return_value
=
None
)
i
.
runsource
(
"a = b'
\xfe
'"
,
encode
=
True
)
i
.
showsyntaxerror
.
assert_called_with
(
mock
.
ANY
)
@
unittest
.
skipIf
(
py3
,
"encode is Python 2 only"
)
def
test_runsource_bytes_over_128_syntax_error_py2
(
self
):
i
=
interpreter
.
Interp
(
encoding
=
'latin-1'
)
i
.
runsource
(
"a = b'
\xfe
'"
,
encode
=
True
)
self
.
assertIsInstance
(
i
.
locals
[
'a'
],
type
(
b''
))
self
.
assertEqual
(
i
.
locals
[
'a'
],
b"
\xfe
"
)
@
unittest
.
skipIf
(
py3
,
"encode is Python 2 only"
)
def
test_runsource_unicode
(
self
):
i
=
interpreter
.
Interp
(
encoding
=
'latin-1'
)
i
.
runsource
(
"a = u'
\xfe
'"
,
encode
=
True
)
self
.
assertIsInstance
(
i
.
locals
[
'a'
],
type
(
u''
))
self
.
assertEqual
(
i
.
locals
[
'a'
],
u"
\xfe
"
)
Back
|
FazBrowse Home
|
New Git URL