Hackfut Security File Manager
Current Path:
/opt/alt/python27/lib64/python2.7/site-packages/guppy/heapy/test
opt
/
alt
/
python27
/
lib64
/
python2.7
/
site-packages
/
guppy
/
heapy
/
test
/
📁
..
📄
__init__.py
(47 B)
📄
__init__.pyc
(163 B)
📄
__init__.pyo
(163 B)
📄
support.py
(7.19 KB)
📄
support.pyc
(9.99 KB)
📄
support.pyo
(9.99 KB)
📄
test_Classifiers.py
(25.85 KB)
📄
test_Classifiers.pyc
(34.42 KB)
📄
test_Classifiers.pyo
(34.42 KB)
📄
test_ER.py
(9.19 KB)
📄
test_ER.pyc
(13.33 KB)
📄
test_ER.pyo
(13.27 KB)
📄
test_OutputHandling.py
(1.14 KB)
📄
test_OutputHandling.pyc
(3.05 KB)
📄
test_OutputHandling.pyo
(3.05 KB)
📄
test_Part.py
(4 KB)
📄
test_Part.pyc
(6.41 KB)
📄
test_Part.pyo
(6.41 KB)
📄
test_Path.py
(25.42 KB)
📄
test_Path.pyc
(33.06 KB)
📄
test_Path.pyo
(33.06 KB)
📄
test_RefPat.py
(16.01 KB)
📄
test_RefPat.pyc
(16.56 KB)
📄
test_RefPat.pyo
(16.56 KB)
📄
test_RetaGraph.py
(89 B)
📄
test_RetaGraph.pyc
(324 B)
📄
test_RetaGraph.pyo
(324 B)
📄
test_Spec.py
(358 B)
📄
test_Spec.pyc
(1.07 KB)
📄
test_Spec.pyo
(1.07 KB)
📄
test_UniSet.py
(1.01 KB)
📄
test_UniSet.pyc
(2.32 KB)
📄
test_UniSet.pyo
(2.32 KB)
📄
test_View.py
(5.98 KB)
📄
test_View.pyc
(9.28 KB)
📄
test_View.pyo
(9.28 KB)
📄
test_all.py
(562 B)
📄
test_all.pyc
(980 B)
📄
test_all.pyo
(980 B)
📄
test_dependencies.py
(262 B)
📄
test_dependencies.pyc
(524 B)
📄
test_dependencies.pyo
(524 B)
📄
test_heapyc.py
(12.38 KB)
📄
test_heapyc.pyc
(17.87 KB)
📄
test_heapyc.pyo
(15.67 KB)
📄
test_menuleak.py
(2.87 KB)
📄
test_menuleak.pyc
(3.75 KB)
📄
test_menuleak.pyo
(3.75 KB)
📄
test_sf.py
(460 B)
📄
test_sf.pyc
(681 B)
📄
test_sf.pyo
(681 B)
Editing: test_menuleak.py
from Tkinter import * import sys import gc class FixedMenu(Menu): # A fix for the .delete() method in Menu. # To delete commands defined in the menu items deleted. # Also changed the comment: INDEX2 is actually INCLUDED. def delete(self, index1, index2=None): """Delete menu items between INDEX1 and INDEX2 (included).""" print self._tclCommands if index2 is None: index2 = index1 # First find out what entries have defined commands. cmds = [] for i in range(self.index(index1), self.index(index2)+1): c = str(self.entrycget(i, 'command')) if c in self._tclCommands: # I don't want to delete the command already, since it # seems mystical to do that while the entry is not yet deleted. cmds.append(c) # Delete the menu entries. self.tk.call(self._w, 'delete', index1, index2) # Now that the menu entries have been deleted, we can delete their commands. for c in cmds: self.deletecommand(c) def test1(M): # Test with a single command gc.collect() root = Tk() button = Menubutton(root, text='Window') menu = M(button) button['menu'] = menu def command(): print 'command button pressed' rc = sys.getrefcount(command) menu.add_command(command=command) # or add_radiobutton etc idx = menu.index(END) menu.delete(idx) gc.collect() rc1 = sys.getrefcount(command) print 'leak test with class', M, if rc1 != rc: print 'failed: command is now hold by', rc1, 'references' else: print 'succeeded: command is now hold by', rc1, 'references' root.destroy() def test2(M): # Test with 3 commands, especially to see that deleting a range works. gc.collect() root = Tk() button = Menubutton(root, text='Window') menu = M(button) button['menu'] = menu def command0(): print 'command 0 button pressed' 'deleting 0 and 1' menu.delete(idx0, idx1) def command1(): print 'command 1 button pressed' def command2(): print 'command 2 button pressed' print 'deleting at END' menu.delete(END) root.quit() rc = [sys.getrefcount(x) for x in (command0, command1, command0)] del x button.pack() menu.add_command(command=command0,label='press first') # or add_radiobutton etc idx0 = menu.index(END) menu.add_radiobutton(command=command1,label='command1') menu.add_command(label='no Command') # to see that delete works even when no command supplied idx1 = menu.index(END) menu.add_command(command=command2,label='press last') idx2 = menu.index(END) root.mainloop() gc.collect() rc1 = [sys.getrefcount(x) for x in (command0, command1, command0)] del x print 'leak test with class', M, if rc1 != rc: print 'failed: command is now hold by', rc1, 'references, should be', rc else: print 'succeeded: command is now hold by', rc1, 'references' root.destroy() for M in (Menu, FixedMenu,): test1(M) test2(M)
Upload File
Create Folder