diff options
author | Terry Jan Reedy <tjreedy@udel.edu> | 2016-05-17 22:48:22 -0400 |
---|---|---|
committer | Terry Jan Reedy <tjreedy@udel.edu> | 2016-05-17 22:48:22 -0400 |
commit | 092473eef9873af210642497b148aa623c546e72 (patch) | |
tree | 55ca0554e19c145a236d0ef219c32c2f1a0e9f8a /Lib/idlelib/Percolator.py | |
parent | cec95813b269d2442b56e0487a55616f85c7ed52 (diff) | |
download | cpython-git-092473eef9873af210642497b148aa623c546e72.tar.gz |
Issue #21939: Test IDLE percolator. Original patch by Saimadhav Heblikar.
Diffstat (limited to 'Lib/idlelib/Percolator.py')
-rw-r--r-- | Lib/idlelib/Percolator.py | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/Lib/idlelib/Percolator.py b/Lib/idlelib/Percolator.py index 9e9331940f..b8be2aa746 100644 --- a/Lib/idlelib/Percolator.py +++ b/Lib/idlelib/Percolator.py @@ -1,6 +1,7 @@ from idlelib.WidgetRedirector import WidgetRedirector from idlelib.Delegator import Delegator + class Percolator: def __init__(self, text): @@ -16,8 +17,10 @@ class Percolator: while self.top is not self.bottom: self.removefilter(self.top) self.top = None - self.bottom.setdelegate(None); self.bottom = None - self.redir.close(); self.redir = None + self.bottom.setdelegate(None) + self.bottom = None + self.redir.close() + self.redir = None self.text = None def insert(self, index, chars, tags=None): @@ -51,54 +54,52 @@ class Percolator: f.setdelegate(filter.delegate) filter.setdelegate(None) -def _percolator(parent): + +def _percolator(parent): # htest # import tkinter as tk import re + class Tracer(Delegator): def __init__(self, name): self.name = name Delegator.__init__(self, None) + def insert(self, *args): print(self.name, ": insert", args) self.delegate.insert(*args) + def delete(self, *args): print(self.name, ": delete", args) self.delegate.delete(*args) - root = tk.Tk() - root.title("Test Percolator") + + box = tk.Toplevel(parent) + box.title("Test Percolator") width, height, x, y = list(map(int, re.split('[x+]', parent.geometry()))) - root.geometry("+%d+%d"%(x, y + 150)) - text = tk.Text(root) + box.geometry("+%d+%d" % (x, y + 150)) + text = tk.Text(box) p = Percolator(text) + pin = p.insertfilter + pout = p.removefilter t1 = Tracer("t1") t2 = Tracer("t2") def toggle1(): - if var1.get() == 0: - var1.set(1) - p.insertfilter(t1) - elif var1.get() == 1: - var1.set(0) - p.removefilter(t1) - + (pin if var1.get() else pout)(t1) def toggle2(): - if var2.get() == 0: - var2.set(1) - p.insertfilter(t2) - elif var2.get() == 1: - var2.set(0) - p.removefilter(t2) + (pin if var2.get() else pout)(t2) text.pack() var1 = tk.IntVar() - cb1 = tk.Checkbutton(root, text="Tracer1", command=toggle1, variable=var1) + cb1 = tk.Checkbutton(box, text="Tracer1", command=toggle1, variable=var1) cb1.pack() var2 = tk.IntVar() - cb2 = tk.Checkbutton(root, text="Tracer2", command=toggle2, variable=var2) + cb2 = tk.Checkbutton(box, text="Tracer2", command=toggle2, variable=var2) cb2.pack() - root.mainloop() - if __name__ == "__main__": + import unittest + unittest.main('idlelib.idle_test.test_percolator', verbosity=2, + exit=False) + from idlelib.idle_test.htest import run run(_percolator) |