Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
562495ab
Commit
562495ab
authored
Jun 05, 2014
by
Terry Jan Reedy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issue #18910: Add unittest for textView. Patch by Phil Webster.
parent
6e66cb03
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
116 additions
and
3 deletions
+116
-3
Lib/idlelib/idle_test/mock_idle.py
Lib/idlelib/idle_test/mock_idle.py
+9
-1
Lib/idlelib/idle_test/test_textview.py
Lib/idlelib/idle_test/test_textview.py
+98
-0
Lib/idlelib/textView.py
Lib/idlelib/textView.py
+7
-2
Misc/NEWS
Misc/NEWS
+2
-0
No files found.
Lib/idlelib/idle_test/mock_idle.py
View file @
562495ab
...
...
@@ -8,14 +8,22 @@ from idlelib.idle_test.mock_tk import Text
class
Func
(
object
):
'''Mock function captures args and returns result set by test.
Attributes:
self.called - records call even if no args, kwds passed.
self.result - set by init, returned by call.
self.args - captures positional arguments.
self.kwds - captures keyword arguments.
Most common use will probably be to mock methods.
mock_tk.Var and Mbox_func are special case
s of this.
Mock_tk.Var and Mbox_func are special variant
s of this.
'''
def
__init__
(
self
,
result
=
None
):
self
.
called
=
False
self
.
result
=
result
self
.
args
=
None
self
.
kwds
=
None
def
__call__
(
self
,
*
args
,
**
kwds
):
self
.
called
=
True
self
.
args
=
args
self
.
kwds
=
kwds
return
self
.
result
...
...
Lib/idlelib/idle_test/test_textview.py
0 → 100644
View file @
562495ab
'''Test the functions and main class method of textView.py.'''
import
unittest
import
os
from
test.test_support
import
requires
from
Tkinter
import
Tk
,
Text
,
TclError
from
idlelib
import
textView
as
tv
from
idlelib.idle_test.mock_idle
import
Func
from
idlelib.idle_test.mock_tk
import
Mbox
orig_mbox
=
tv
.
tkMessageBox
class
textviewClassTest
(
unittest
.
TestCase
):
@
classmethod
def
setUpClass
(
cls
):
requires
(
'gui'
)
cls
.
root
=
Tk
()
cls
.
TV
=
TV
=
tv
.
TextViewer
TV
.
transient
=
Func
()
TV
.
grab_set
=
Func
()
TV
.
wait_window
=
Func
()
@
classmethod
def
tearDownClass
(
cls
):
cls
.
root
.
destroy
()
TV
=
cls
.
TV
del
cls
.
root
,
cls
.
TV
del
TV
.
transient
,
TV
.
grab_set
,
TV
.
wait_window
def
setUp
(
self
):
TV
=
self
.
TV
TV
.
transient
.
__init__
()
TV
.
grab_set
.
__init__
()
TV
.
wait_window
.
__init__
()
def
test_init_modal
(
self
):
TV
=
self
.
TV
view
=
TV
(
self
.
root
,
'Title'
,
'test text'
)
self
.
assertTrue
(
TV
.
transient
.
called
)
self
.
assertTrue
(
TV
.
grab_set
.
called
)
self
.
assertTrue
(
TV
.
wait_window
.
called
)
view
.
Ok
()
def
test_init_nonmodal
(
self
):
TV
=
self
.
TV
view
=
TV
(
self
.
root
,
'Title'
,
'test text'
,
modal
=
False
)
self
.
assertFalse
(
TV
.
transient
.
called
)
self
.
assertFalse
(
TV
.
grab_set
.
called
)
self
.
assertFalse
(
TV
.
wait_window
.
called
)
view
.
Ok
()
def
test_ok
(
self
):
view
=
self
.
TV
(
self
.
root
,
'Title'
,
'test text'
,
modal
=
False
)
view
.
destroy
=
Func
()
view
.
Ok
()
self
.
assertTrue
(
view
.
destroy
.
called
)
del
view
.
destroy
# unmask real function
view
.
destroy
class
textviewTest
(
unittest
.
TestCase
):
@
classmethod
def
setUpClass
(
cls
):
requires
(
'gui'
)
cls
.
root
=
Tk
()
tv
.
tkMessageBox
=
Mbox
@
classmethod
def
tearDownClass
(
cls
):
cls
.
root
.
destroy
()
del
cls
.
root
tv
.
tkMessageBox
=
orig_mbox
def
test_view_text
(
self
):
# If modal True, tkinter will error with 'can't invoke "event" command'
view
=
tv
.
view_text
(
self
.
root
,
'Title'
,
'test text'
,
modal
=
False
)
self
.
assertIsInstance
(
view
,
tv
.
TextViewer
)
def
test_view_file
(
self
):
test_dir
=
os
.
path
.
dirname
(
__file__
)
testfile
=
os
.
path
.
join
(
test_dir
,
'test_textview.py'
)
view
=
tv
.
view_file
(
self
.
root
,
'Title'
,
testfile
,
modal
=
False
)
self
.
assertIsInstance
(
view
,
tv
.
TextViewer
)
self
.
assertIn
(
'Test'
,
view
.
textView
.
get
(
'1.0'
,
'1.end'
))
view
.
Ok
()
# Mock messagebox will be used and view_file will not return anything
testfile
=
os
.
path
.
join
(
test_dir
,
'../notthere.py'
)
view
=
tv
.
view_file
(
self
.
root
,
'Title'
,
testfile
,
modal
=
False
)
self
.
assertIsNone
(
view
)
if
__name__
==
'__main__'
:
unittest
.
main
(
verbosity
=
2
,
exit
=
False
)
from
idlelib.idle_test.htest
import
run
run
(
TextViewer
)
Lib/idlelib/textView.py
View file @
562495ab
...
...
@@ -12,7 +12,11 @@ class TextViewer(Toplevel):
def
__init__
(
self
,
parent
,
title
,
text
,
modal
=
True
,
_htest
=
False
):
"""Show the given text in a scrollable window with a 'close' button
_htest - bool, change box location when running htest
If modal option set to False, user can interact with other windows,
otherwise they will be unable to interact with other windows until
the textview window is closed.
_htest - bool; change box location when running htest.
"""
Toplevel
.
__init__
(
self
,
parent
)
self
.
configure
(
borderwidth
=
5
)
...
...
@@ -72,7 +76,6 @@ def view_file(parent, title, filename, encoding=None, modal=True):
else
:
textFile
=
open
(
filename
,
'r'
)
except
IOError
:
import
tkMessageBox
tkMessageBox
.
showerror
(
title
=
'File Load Error'
,
message
=
'Unable to load file %r .'
%
filename
,
parent
=
parent
)
...
...
@@ -81,5 +84,7 @@ def view_file(parent, title, filename, encoding=None, modal=True):
if
__name__
==
'__main__'
:
import
unittest
unittest
.
main
(
'idlelib.idle_test.test_textview'
,
verbosity
=
2
,
exit
=
False
)
from
idlelib.idle_test.htest
import
run
run
(
TextViewer
)
Misc/NEWS
View file @
562495ab
...
...
@@ -46,6 +46,8 @@ Library
IDLE
----
- Issue #18910: Add unittest for textView. Patch by Phil Webster.
- Issue #18292: Add unittest for AutoExpand. Patch by Saihadhav Heblikar.
- Issue #18409: Add unittest for AutoComplete. Patch by Phil Webster.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment