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
ba365da9
Commit
ba365da9
authored
May 18, 2017
by
Louie Lu
Committed by
terryjreedy
May 17, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bpo-30303: IDLE: Add _utest argument to textview (#1499)
parent
ab4413a7
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
57 additions
and
11 deletions
+57
-11
Lib/idlelib/idle_test/test_textview.py
Lib/idlelib/idle_test/test_textview.py
+41
-1
Lib/idlelib/textview.py
Lib/idlelib/textview.py
+16
-10
No files found.
Lib/idlelib/idle_test/test_textview.py
View file @
ba365da9
...
@@ -13,7 +13,7 @@ requires('gui')
...
@@ -13,7 +13,7 @@ requires('gui')
import
unittest
import
unittest
import
os
import
os
from
tkinter
import
Tk
from
tkinter
import
Tk
,
Button
from
idlelib.idle_test.mock_idle
import
Func
from
idlelib.idle_test.mock_idle
import
Func
from
idlelib.idle_test.mock_tk
import
Mbox_func
from
idlelib.idle_test.mock_tk
import
Mbox_func
...
@@ -96,5 +96,45 @@ class ViewFunctionTest(unittest.TestCase):
...
@@ -96,5 +96,45 @@ class ViewFunctionTest(unittest.TestCase):
self
.
assertIsNone
(
view
)
self
.
assertIsNone
(
view
)
class
ButtonClickTextViewTest
(
unittest
.
TestCase
):
def
setUp
(
self
):
self
.
view
=
None
self
.
called
=
False
def
tearDown
(
self
):
if
self
.
view
:
self
.
view
.
destroy
()
def
test_view_text_bind_with_button
(
self
):
def
_command
():
self
.
called
=
True
self
.
view
=
tv
.
view_text
(
root
,
'TITLE_TEXT'
,
'COMMAND'
,
_utest
=
True
)
button
=
Button
(
root
,
text
=
'BUTTON'
,
command
=
_command
)
button
.
invoke
()
self
.
addCleanup
(
button
.
destroy
)
self
.
assertEqual
(
self
.
called
,
True
)
self
.
assertEqual
(
self
.
view
.
title
(),
'TITLE_TEXT'
)
self
.
assertEqual
(
self
.
view
.
textView
.
get
(
'1.0'
,
'1.end'
),
'COMMAND'
)
def
test_view_file_bind_with_button
(
self
):
def
_command
():
self
.
called
=
True
self
.
view
=
tv
.
view_file
(
root
,
'TITLE_FILE'
,
__file__
,
_utest
=
True
)
button
=
Button
(
root
,
text
=
'BUTTON'
,
command
=
_command
)
button
.
invoke
()
self
.
addCleanup
(
button
.
destroy
)
self
.
assertEqual
(
self
.
called
,
True
)
self
.
assertEqual
(
self
.
view
.
title
(),
'TITLE_FILE'
)
with
open
(
__file__
)
as
f
:
self
.
assertEqual
(
self
.
view
.
textView
.
get
(
'1.0'
,
'1.end'
),
f
.
readline
().
strip
())
f
.
readline
()
self
.
assertEqual
(
self
.
view
.
textView
.
get
(
'3.0'
,
'3.end'
),
f
.
readline
().
strip
())
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
unittest
.
main
(
verbosity
=
2
)
unittest
.
main
(
verbosity
=
2
)
Lib/idlelib/textview.py
View file @
ba365da9
...
@@ -9,14 +9,15 @@ from tkinter.messagebox import showerror
...
@@ -9,14 +9,15 @@ from tkinter.messagebox import showerror
class
TextViewer
(
Toplevel
):
class
TextViewer
(
Toplevel
):
"A simple text viewer dialog for IDLE."
"A simple text viewer dialog for IDLE."
def
__init__
(
self
,
parent
,
title
,
text
,
modal
=
True
,
_htest
=
False
):
def
__init__
(
self
,
parent
,
title
,
text
,
modal
=
True
,
"""Show the given text in a scrollable window with a 'close' button
_htest
=
False
,
_utest
=
False
):
"""Show the given text in a scrollable window with a 'close' button.
If modal option set to False, user can interact with other windows,
If modal is left True, users cannot interact with other windows
otherwise they will be unable to interact with other windows until
until the textview window is closed.
the textview window is closed.
_htest - bool; change box location when running htest.
_htest - bool; change box location when running htest.
_utest - bool; don't wait_window when running unittest.
"""
"""
Toplevel
.
__init__
(
self
,
parent
)
Toplevel
.
__init__
(
self
,
parent
)
self
.
configure
(
borderwidth
=
5
)
self
.
configure
(
borderwidth
=
5
)
...
@@ -42,9 +43,11 @@ class TextViewer(Toplevel):
...
@@ -42,9 +43,11 @@ class TextViewer(Toplevel):
if
modal
:
if
modal
:
self
.
transient
(
parent
)
self
.
transient
(
parent
)
self
.
grab_set
()
self
.
grab_set
()
self
.
wait_window
()
if
not
_utest
:
self
.
wait_window
()
def
CreateWidgets
(
self
):
def
CreateWidgets
(
self
):
"Create Frame with Text (with vertical Scrollbar) and Button."
frameText
=
Frame
(
self
,
relief
=
SUNKEN
,
height
=
700
)
frameText
=
Frame
(
self
,
relief
=
SUNKEN
,
height
=
700
)
frameButtons
=
Frame
(
self
)
frameButtons
=
Frame
(
self
)
self
.
buttonOk
=
Button
(
frameButtons
,
text
=
'Close'
,
self
.
buttonOk
=
Button
(
frameButtons
,
text
=
'Close'
,
...
@@ -65,10 +68,12 @@ class TextViewer(Toplevel):
...
@@ -65,10 +68,12 @@ class TextViewer(Toplevel):
self
.
destroy
()
self
.
destroy
()
def
view_text
(
parent
,
title
,
text
,
modal
=
True
):
def
view_text
(
parent
,
title
,
text
,
modal
=
True
,
_utest
=
False
):
return
TextViewer
(
parent
,
title
,
text
,
modal
)
"Display text in a TextViewer."
return
TextViewer
(
parent
,
title
,
text
,
modal
,
_utest
=
_utest
)
def
view_file
(
parent
,
title
,
filename
,
encoding
=
None
,
modal
=
True
):
def
view_file
(
parent
,
title
,
filename
,
encoding
=
None
,
modal
=
True
,
_utest
=
False
):
"Display file in a TextViever or show error message."
try
:
try
:
with
open
(
filename
,
'r'
,
encoding
=
encoding
)
as
file
:
with
open
(
filename
,
'r'
,
encoding
=
encoding
)
as
file
:
contents
=
file
.
read
()
contents
=
file
.
read
()
...
@@ -81,7 +86,8 @@ def view_file(parent, title, filename, encoding=None, modal=True):
...
@@ -81,7 +86,8 @@ def view_file(parent, title, filename, encoding=None, modal=True):
message
=
str
(
err
),
message
=
str
(
err
),
parent
=
parent
)
parent
=
parent
)
else
:
else
:
return
view_text
(
parent
,
title
,
contents
,
modal
)
return
view_text
(
parent
,
title
,
contents
,
modal
,
_utest
=
_utest
)
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
import
unittest
import
unittest
...
...
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