404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.138.61.88: ~ $
import unittest
from test.test_support import requires

import Tkinter as tk
from Tkinter import Text as tkText
from idlelib.idle_test.mock_tk import Text as mkText
from idlelib.IdleHistory import History
from idlelib.configHandler import idleConf

line1 = 'a = 7'
line2 = 'b = a'

class StoreTest(unittest.TestCase):
    '''Tests History.__init__ and History.store with mock Text'''

    @classmethod
    def setUpClass(cls):
        cls.text = mkText()
        cls.history = History(cls.text)

    def tearDown(self):
        self.text.delete('1.0', 'end')
        self.history.history = []

    def test_init(self):
        self.assertIs(self.history.text, self.text)
        self.assertEqual(self.history.history, [])
        self.assertIsNone(self.history.prefix)
        self.assertIsNone(self.history.pointer)
        self.assertEqual(self.history.cyclic,
                idleConf.GetOption("main", "History",  "cyclic", 1, "bool"))

    def test_store_short(self):
        self.history.store('a')
        self.assertEqual(self.history.history, [])
        self.history.store('  a  ')
        self.assertEqual(self.history.history, [])

    def test_store_dup(self):
        self.history.store(line1)
        self.assertEqual(self.history.history, [line1])
        self.history.store(line2)
        self.assertEqual(self.history.history, [line1, line2])
        self.history.store(line1)
        self.assertEqual(self.history.history, [line2, line1])

    def test_store_reset(self):
        self.history.prefix = line1
        self.history.pointer = 0
        self.history.store(line2)
        self.assertIsNone(self.history.prefix)
        self.assertIsNone(self.history.pointer)


class TextWrapper:
    def __init__(self, master):
        self.text = tkText(master=master)
        self._bell = False
    def __getattr__(self, name):
        return getattr(self.text, name)
    def bell(self):
        self._bell = True

class FetchTest(unittest.TestCase):
    '''Test History.fetch with wrapped tk.Text.
    '''
    @classmethod
    def setUpClass(cls):
        requires('gui')
        cls.root = tk.Tk()
        cls.root.withdraw()

    def setUp(self):
        self.text = text = TextWrapper(self.root)
        text.insert('1.0', ">>> ")
        text.mark_set('iomark', '1.4')
        text.mark_gravity('iomark', 'left')
        self.history = History(text)
        self.history.history = [line1, line2]

    @classmethod
    def tearDownClass(cls):
        cls.root.destroy()
        del cls.root

    def fetch_test(self, reverse, line, prefix, index, bell=False):
        # Perform one fetch as invoked by Alt-N or Alt-P
        # Test the result. The line test is the most important.
        # The last two are diagnostic of fetch internals.
        History = self.history
        History.fetch(reverse)

        Equal = self.assertEqual
        Equal(self.text.get('iomark', 'end-1c'), line)
        Equal(self.text._bell, bell)
        if bell:
            self.text._bell = False
        Equal(History.prefix, prefix)
        Equal(History.pointer, index)
        Equal(self.text.compare("insert", '==', "end-1c"), 1)

    def test_fetch_prev_cyclic(self):
        prefix = ''
        test = self.fetch_test
        test(True, line2, prefix, 1)
        test(True, line1, prefix, 0)
        test(True, prefix, None, None, bell=True)

    def test_fetch_next_cyclic(self):
        prefix = ''
        test  = self.fetch_test
        test(False, line1, prefix, 0)
        test(False, line2, prefix, 1)
        test(False, prefix, None, None, bell=True)

    # Prefix 'a' tests skip line2, which starts with 'b'
    def test_fetch_prev_prefix(self):
        prefix = 'a'
        self.text.insert('iomark', prefix)
        self.fetch_test(True, line1, prefix, 0)
        self.fetch_test(True, prefix, None, None, bell=True)

    def test_fetch_next_prefix(self):
        prefix = 'a'
        self.text.insert('iomark', prefix)
        self.fetch_test(False, line1, prefix, 0)
        self.fetch_test(False, prefix, None, None, bell=True)

    def test_fetch_prev_noncyclic(self):
        prefix = ''
        self.history.cyclic = False
        test = self.fetch_test
        test(True, line2, prefix, 1)
        test(True, line1, prefix, 0)
        test(True, line1, prefix, 0, bell=True)

    def test_fetch_next_noncyclic(self):
        prefix = ''
        self.history.cyclic = False
        test  = self.fetch_test
        test(False, prefix, None, None, bell=True)
        test(True, line2, prefix, 1)
        test(False, prefix, None, None, bell=True)
        test(False, prefix, None, None, bell=True)

    def test_fetch_cursor_move(self):
        # Move cursor after fetch
        self.history.fetch(reverse=True)  # initialization
        self.text.mark_set('insert', 'iomark')
        self.fetch_test(True, line2, None, None, bell=True)

    def test_fetch_edit(self):
        # Edit after fetch
        self.history.fetch(reverse=True)  # initialization
        self.text.delete('iomark', 'insert', )
        self.text.insert('iomark', 'a =')
        self.fetch_test(True, line1, 'a =', 0)  # prefix is reset

    def test_history_prev_next(self):
        # Minimally test functions bound to events
        self.history.history_prev('dummy event')
        self.assertEqual(self.history.pointer, 1)
        self.history.history_next('dummy event')
        self.assertEqual(self.history.pointer, None)


if __name__ == '__main__':
    unittest.main(verbosity=2, exit=2)

Filemanager

Name Type Size Permission Actions
README.txt File 5.36 KB 0644
__init__.py File 650 B 0644
__init__.pyc File 941 B 0644
__init__.pyo File 941 B 0644
htest.py File 13.46 KB 0644
htest.pyc File 12.36 KB 0644
htest.pyo File 12.36 KB 0644
mock_idle.py File 1.56 KB 0644
mock_idle.pyc File 2.94 KB 0644
mock_idle.pyo File 2.94 KB 0644
mock_tk.py File 11.3 KB 0644
mock_tk.pyc File 12.42 KB 0644
mock_tk.pyo File 12.42 KB 0644
test_autocomplete.py File 4.81 KB 0644
test_autocomplete.pyc File 5.98 KB 0644
test_autocomplete.pyo File 5.98 KB 0644
test_autoexpand.py File 4.03 KB 0644
test_autoexpand.pyc File 4.85 KB 0644
test_autoexpand.pyo File 4.85 KB 0644
test_calltips.py File 6.97 KB 0644
test_calltips.pyc File 12.47 KB 0644
test_calltips.pyo File 12.47 KB 0644
test_config_name.py File 2.41 KB 0644
test_config_name.pyc File 4.08 KB 0644
test_config_name.pyo File 4.08 KB 0644
test_configdialog.py File 782 B 0644
test_configdialog.pyc File 1.68 KB 0644
test_configdialog.pyo File 1.68 KB 0644
test_delegator.py File 1.26 KB 0644
test_delegator.pyc File 1.33 KB 0644
test_delegator.pyo File 1.33 KB 0644
test_editmenu.py File 3.09 KB 0644
test_editmenu.pyc File 4.46 KB 0644
test_editmenu.pyo File 4.46 KB 0644
test_formatparagraph.py File 14.01 KB 0644
test_formatparagraph.pyc File 14.36 KB 0644
test_formatparagraph.pyo File 14.36 KB 0644
test_grep.py File 2.7 KB 0644
test_grep.pyc File 3.81 KB 0644
test_grep.pyo File 3.81 KB 0644
test_helpabout.py File 1.57 KB 0644
test_helpabout.pyc File 2.38 KB 0644
test_helpabout.pyo File 2.38 KB 0644
test_hyperparser.py File 5.55 KB 0644
test_hyperparser.pyc File 6.78 KB 0644
test_hyperparser.pyo File 6.78 KB 0644
test_idlehistory.py File 5.37 KB 0644
test_idlehistory.pyc File 8.28 KB 0644
test_idlehistory.pyo File 8.28 KB 0644
test_io.py File 9.28 KB 0644
test_io.pyc File 11.67 KB 0644
test_io.pyo File 11.67 KB 0644
test_parenmatch.py File 3.73 KB 0644
test_parenmatch.pyc File 5.53 KB 0644
test_parenmatch.pyo File 5.53 KB 0644
test_pathbrowser.py File 940 B 0644
test_pathbrowser.pyc File 1.5 KB 0644
test_pathbrowser.pyo File 1.5 KB 0644
test_rstrip.py File 1.58 KB 0644
test_rstrip.pyc File 1.78 KB 0644
test_rstrip.pyo File 1.78 KB 0644
test_searchdialogbase.py File 5.73 KB 0644
test_searchdialogbase.pyc File 6.87 KB 0644
test_searchdialogbase.pyo File 6.87 KB 0644
test_searchengine.py File 11.22 KB 0644
test_searchengine.pyc File 12.81 KB 0644
test_searchengine.pyo File 12.81 KB 0644
test_text.py File 6.59 KB 0644
test_text.pyc File 8.2 KB 0644
test_text.pyo File 8.2 KB 0644
test_textview.py File 2.74 KB 0644
test_textview.pyc File 4.6 KB 0644
test_textview.pyo File 4.6 KB 0644
test_warning.py File 2.69 KB 0644
test_warning.pyc File 3.31 KB 0644
test_warning.pyo File 3.31 KB 0644
test_widgetredir.py File 4.08 KB 0644
test_widgetredir.pyc File 6.49 KB 0644
test_widgetredir.pyo File 6.49 KB 0644