Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitec8a32e

Browse files
add failing test for#369
1 parent79d55fa commitec8a32e

File tree

4 files changed

+77
-10
lines changed

4 files changed

+77
-10
lines changed

‎bpython/curtsies.py‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ def main(args=None, locals_=None, banner=None):
4545
interp=None
4646
paste=None
4747
ifexec_args:
48-
assertoptions,"don't pass in exec_args without options"
48+
ifnotoptions:
49+
raiseValueError("don't pass in exec_args without options")
4950
exit_value=0
5051
ifoptions.type:
5152
paste=curtsies.events.PasteEvent()

‎bpython/test/test_args.py‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
importos
2+
importsys
3+
importunittest
4+
frommockimportMock,MagicMock
5+
try:
6+
fromunittestimportskip
7+
exceptImportError:
8+
defskip(f):
9+
returnlambdaself:None
10+
11+
frombpythonimportconfig,repl,cli,autocomplete
12+
13+
classTestFutureImports(unittest.TestCase):
14+
15+
deftest_interactive(self):
16+
pass
17+

‎bpython/test/test_curtsies_painting.py‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ def setup_config():
1818

1919
classTestCurtsiesPainting(FormatStringTest):
2020
defsetUp(self):
21-
self.refresh_requests= []
2221
self.repl=Repl(config=setup_config())
2322
self.repl.rl_history=History()# clear history
2423
self.repl.height,self.repl.width= (5,10)

‎bpython/test/test_curtsies_repl.py‎

Lines changed: 58 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,22 @@
1-
importunittest
2-
importsys
1+
importcode
32
importos
3+
importsys
4+
importtempfile
5+
fromcontextlibimportcontextmanager
6+
fromStringIOimportStringIO
7+
8+
importunittest
9+
try:
10+
fromunittestimportskip
11+
exceptImportError:
12+
defskip(f):
13+
returnlambdaself:None
14+
415
py3= (sys.version_info[0]==3)
516

6-
frombpython.curtsiesfrontendimportrepl
17+
frombpython.curtsiesfrontendimportreplascurtsiesrepl
718
frombpythonimportconfig
19+
frombpythonimportargs
820

921
defsetup_config(conf):
1022
config_struct=config.Struct()
@@ -18,11 +30,7 @@ def setup_config(conf):
1830
classTestCurtsiesRepl(unittest.TestCase):
1931

2032
defsetUp(self):
21-
self.config=setup_config({'editor':'true'})
22-
self.repl=repl.Repl(config=self.config)
23-
os.environ['PAGER']='true'
24-
self.repl.width=50
25-
self.repl.height=20
33+
self.repl=create_repl()
2634

2735
deftest_buffer_finished_will_parse(self):
2836
self.repl.buffer= ['1 + 1']
@@ -43,6 +51,48 @@ def test_external_communication(self):
4351
self.repl.send_current_block_to_external_editor()
4452
self.repl.send_session_to_external_editor()
4553

54+
@contextmanager# from http://stackoverflow.com/a/17981937/398212 - thanks @rkennedy
55+
defcaptured_output():
56+
new_out,new_err=StringIO(),StringIO()
57+
old_out,old_err=sys.stdout,sys.stderr
58+
try:
59+
sys.stdout,sys.stderr=new_out,new_err
60+
yieldsys.stdout,sys.stderr
61+
finally:
62+
sys.stdout,sys.stderr=old_out,old_err
63+
64+
defcreate_repl(**kwargs):
65+
config=setup_config({'editor':'true'})
66+
repl=curtsiesrepl.Repl(config=config,**kwargs)
67+
os.environ['PAGER']='true'
68+
repl.width=50
69+
repl.height=20
70+
returnrepl
71+
72+
classTestFutureImports(unittest.TestCase):
73+
74+
deftest_repl(self):
75+
repl=create_repl()
76+
withcaptured_output()as (out,err):
77+
repl.push('from __future__ import division')
78+
repl.push('1 / 2')
79+
self.assertEqual(out.getvalue(),'0.5\n')
80+
81+
@skip('Failing - this is issue #369')
82+
deftest_interactive(self):
83+
interp=code.InteractiveInterpreter(locals={})
84+
withcaptured_output()as (out,err):
85+
withtempfile.NamedTemporaryFile(suffix='.py')asf:
86+
f.write('from __future__ import division\n')
87+
f.write('print 1/2\n')
88+
f.flush()
89+
args.exec_code(interp, [f.name])
90+
91+
repl=create_repl(interp=interp)
92+
repl.push('1 / 2')
93+
94+
self.assertEqual(out.getvalue(),'0.5\n0.5\n')
95+
4696

4797
if__name__=='__main__':
4898
unittest.main()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2026 Movatter.jp