SILENT KILLERPanel

Current Path: > > > lib64 > python2.7 > > idlelib > idle_test


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: ///lib64/python2.7//idlelib/idle_test

NameTypeSizeLast ModifiedActions
README.txt File 5492 bytes April 10 2024 04:58:35.
__init__.py File 650 bytes April 10 2024 04:58:35.
__init__.pyc File 915 bytes April 10 2024 04:58:46.
__init__.pyo File 915 bytes April 10 2024 04:58:46.
htest.py File 13779 bytes April 10 2024 04:58:35.
htest.pyc File 12600 bytes April 10 2024 04:58:46.
htest.pyo File 12600 bytes April 10 2024 04:58:46.
mock_idle.py File 1597 bytes April 10 2024 04:58:35.
mock_idle.pyc File 2879 bytes April 10 2024 04:58:46.
mock_idle.pyo File 2879 bytes April 10 2024 04:58:46.
mock_tk.py File 11574 bytes April 10 2024 04:58:35.
mock_tk.pyc File 12362 bytes April 10 2024 04:58:46.
mock_tk.pyo File 12362 bytes April 10 2024 04:58:46.
test_autocomplete.py File 4922 bytes April 10 2024 04:58:35.
test_autocomplete.pyc File 5860 bytes April 10 2024 04:58:46.
test_autocomplete.pyo File 5860 bytes April 10 2024 04:58:46.
test_autoexpand.py File 4122 bytes April 10 2024 04:58:35.
test_autoexpand.pyc File 4806 bytes April 10 2024 04:58:46.
test_autoexpand.pyo File 4806 bytes April 10 2024 04:58:46.
test_calltips.py File 7140 bytes April 10 2024 04:58:35.
test_calltips.pyc File 12131 bytes April 10 2024 04:58:46.
test_calltips.pyo File 12131 bytes April 10 2024 04:58:46.
test_config_name.py File 2472 bytes April 10 2024 04:58:35.
test_config_name.pyc File 4012 bytes April 10 2024 04:58:46.
test_config_name.pyo File 4012 bytes April 10 2024 04:58:46.
test_configdialog.py File 782 bytes April 10 2024 04:58:35.
test_configdialog.pyc File 1655 bytes April 10 2024 04:58:46.
test_configdialog.pyo File 1655 bytes April 10 2024 04:58:46.
test_delegator.py File 1294 bytes April 10 2024 04:58:35.
test_delegator.pyc File 1319 bytes April 10 2024 04:58:46.
test_delegator.pyo File 1319 bytes April 10 2024 04:58:46.
test_editmenu.py File 3167 bytes April 10 2024 04:58:35.
test_editmenu.pyc File 4439 bytes April 10 2024 04:58:46.
test_editmenu.pyo File 4439 bytes April 10 2024 04:58:46.
test_formatparagraph.py File 14344 bytes April 10 2024 04:58:35.
test_formatparagraph.pyc File 14318 bytes April 10 2024 04:58:46.
test_formatparagraph.pyo File 14318 bytes April 10 2024 04:58:46.
test_grep.py File 2762 bytes April 10 2024 04:58:35.
test_grep.pyc File 3760 bytes April 10 2024 04:58:46.
test_grep.pyo File 3760 bytes April 10 2024 04:58:46.
test_helpabout.py File 1611 bytes April 10 2024 04:58:35.
test_helpabout.pyc File 2363 bytes April 10 2024 04:58:46.
test_helpabout.pyo File 2363 bytes April 10 2024 04:58:46.
test_hyperparser.py File 5684 bytes April 10 2024 04:58:35.
test_hyperparser.pyc File 6734 bytes April 10 2024 04:58:46.
test_hyperparser.pyo File 6734 bytes April 10 2024 04:58:46.
test_idlehistory.py File 5495 bytes April 10 2024 04:58:35.
test_idlehistory.pyc File 8142 bytes April 10 2024 04:58:46.
test_idlehistory.pyo File 8142 bytes April 10 2024 04:58:46.
test_io.py File 9505 bytes April 10 2024 04:58:35.
test_io.pyc File 11533 bytes April 10 2024 04:58:46.
test_io.pyo File 11533 bytes April 10 2024 04:58:46.
test_parenmatch.py File 3822 bytes April 10 2024 04:58:35.
test_parenmatch.pyc File 5456 bytes April 10 2024 04:58:46.
test_parenmatch.pyo File 5456 bytes April 10 2024 04:58:46.
test_pathbrowser.py File 940 bytes April 10 2024 04:58:35.
test_pathbrowser.pyc File 1485 bytes April 10 2024 04:58:46.
test_pathbrowser.pyo File 1485 bytes April 10 2024 04:58:46.
test_rstrip.py File 1613 bytes April 10 2024 04:58:35.
test_rstrip.pyc File 1773 bytes April 10 2024 04:58:46.
test_rstrip.pyo File 1773 bytes April 10 2024 04:58:46.
test_searchdialogbase.py File 5863 bytes April 10 2024 04:58:35.
test_searchdialogbase.pyc File 6827 bytes April 10 2024 04:58:46.
test_searchdialogbase.pyo File 6827 bytes April 10 2024 04:58:46.
test_searchengine.py File 11487 bytes April 10 2024 04:58:35.
test_searchengine.pyc File 12649 bytes April 10 2024 04:58:46.
test_searchengine.pyo File 12649 bytes April 10 2024 04:58:46.
test_text.py File 6744 bytes April 10 2024 04:58:35.
test_text.pyc File 8148 bytes April 10 2024 04:58:46.
test_text.pyo File 8148 bytes April 10 2024 04:58:46.
test_textview.py File 2802 bytes April 10 2024 04:58:35.
test_textview.pyc File 4531 bytes April 10 2024 04:58:46.
test_textview.pyo File 4531 bytes April 10 2024 04:58:46.
test_warning.py File 2757 bytes April 10 2024 04:58:35.
test_warning.pyc File 3286 bytes April 10 2024 04:58:46.
test_warning.pyo File 3286 bytes April 10 2024 04:58:46.
test_widgetredir.py File 4177 bytes April 10 2024 04:58:35.
test_widgetredir.pyc File 6384 bytes April 10 2024 04:58:46.
test_widgetredir.pyo File 6384 bytes April 10 2024 04:58:46.

Reading File: ///lib64/python2.7//idlelib/idle_test/test_hyperparser.py

"""Unittest for idlelib.HyperParser"""
import unittest
from test.test_support import requires
from Tkinter import Tk, Text
from idlelib.EditorWindow import EditorWindow
from idlelib.HyperParser import HyperParser

class DummyEditwin:
    def __init__(self, text):
        self.text = text
        self.indentwidth = 8
        self.tabwidth = 8
        self.context_use_ps1 = True
        self.num_context_lines = 50, 500, 1000

    _build_char_in_string_func = EditorWindow._build_char_in_string_func.im_func
    is_char_in_string = EditorWindow.is_char_in_string.im_func


class HyperParserTest(unittest.TestCase):
    code = (
            '"""This is a module docstring"""\n'
            '# this line is a comment\n'
            'x = "this is a string"\n'
            "y = 'this is also a string'\n"
            'l = [i for i in range(10)]\n'
            'm = [py*py for # comment\n'
            '       py in l]\n'
            'x.__len__\n'
            "z = ((r'asdf')+('a')))\n"
            '[x for x in\n'
            'for = False\n'
            )

    @classmethod
    def setUpClass(cls):
        requires('gui')
        cls.root = Tk()
        cls.root.withdraw()
        cls.text = Text(cls.root)
        cls.editwin = DummyEditwin(cls.text)

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

    def setUp(self):
        self.text.insert('insert', self.code)

    def tearDown(self):
        self.text.delete('1.0', 'end')
        self.editwin.context_use_ps1 = True

    def get_parser(self, index):
        """
        Return a parser object with index at 'index'
        """
        return HyperParser(self.editwin, index)

    def test_init(self):
        """
        test corner cases in the init method
        """
        with self.assertRaises(ValueError) as ve:
            self.text.tag_add('console', '1.0', '1.end')
            p = self.get_parser('1.5')
        self.assertIn('precedes', str(ve.exception))

        # test without ps1
        self.editwin.context_use_ps1 = False

        # number of lines lesser than 50
        p = self.get_parser('end')
        self.assertEqual(p.rawtext, self.text.get('1.0', 'end'))

        # number of lines greater than 50
        self.text.insert('end', self.text.get('1.0', 'end')*4)
        p = self.get_parser('54.5')

    def test_is_in_string(self):
        get = self.get_parser

        p = get('1.0')
        self.assertFalse(p.is_in_string())
        p = get('1.4')
        self.assertTrue(p.is_in_string())
        p = get('2.3')
        self.assertFalse(p.is_in_string())
        p = get('3.3')
        self.assertFalse(p.is_in_string())
        p = get('3.7')
        self.assertTrue(p.is_in_string())
        p = get('4.6')
        self.assertTrue(p.is_in_string())

    def test_is_in_code(self):
        get = self.get_parser

        p = get('1.0')
        self.assertTrue(p.is_in_code())
        p = get('1.1')
        self.assertFalse(p.is_in_code())
        p = get('2.5')
        self.assertFalse(p.is_in_code())
        p = get('3.4')
        self.assertTrue(p.is_in_code())
        p = get('3.6')
        self.assertFalse(p.is_in_code())
        p = get('4.14')
        self.assertFalse(p.is_in_code())

    def test_get_surrounding_bracket(self):
        get = self.get_parser

        def without_mustclose(parser):
            # a utility function to get surrounding bracket
            # with mustclose=False
            return parser.get_surrounding_brackets(mustclose=False)

        def with_mustclose(parser):
            # a utility function to get surrounding bracket
            # with mustclose=True
            return parser.get_surrounding_brackets(mustclose=True)

        p = get('3.2')
        self.assertIsNone(with_mustclose(p))
        self.assertIsNone(without_mustclose(p))

        p = get('5.6')
        self.assertTupleEqual(without_mustclose(p), ('5.4', '5.25'))
        self.assertTupleEqual(without_mustclose(p), with_mustclose(p))

        p = get('5.23')
        self.assertTupleEqual(without_mustclose(p), ('5.21', '5.24'))
        self.assertTupleEqual(without_mustclose(p), with_mustclose(p))

        p = get('6.15')
        self.assertTupleEqual(without_mustclose(p), ('6.4', '6.end'))
        self.assertIsNone(with_mustclose(p))

        p = get('9.end')
        self.assertIsNone(with_mustclose(p))
        self.assertIsNone(without_mustclose(p))

    def test_get_expression(self):
        get = self.get_parser

        p = get('4.2')
        self.assertEqual(p.get_expression(), 'y ')

        p = get('4.7')
        with self.assertRaises(ValueError) as ve:
            p.get_expression()
        self.assertIn('is inside a code', str(ve.exception))

        p = get('5.25')
        self.assertEqual(p.get_expression(), 'range(10)')

        p = get('6.7')
        self.assertEqual(p.get_expression(), 'py')

        p = get('6.8')
        self.assertEqual(p.get_expression(), '')

        p = get('7.9')
        self.assertEqual(p.get_expression(), 'py')

        p = get('8.end')
        self.assertEqual(p.get_expression(), 'x.__len__')

        p = get('9.13')
        self.assertEqual(p.get_expression(), "r'asdf'")

        p = get('9.17')
        with self.assertRaises(ValueError) as ve:
            p.get_expression()
        self.assertIn('is inside a code', str(ve.exception))

        p = get('10.0')
        self.assertEqual(p.get_expression(), '')

        p = get('11.3')
        self.assertEqual(p.get_expression(), '')

        p = get('11.11')
        self.assertEqual(p.get_expression(), 'False')


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

SILENT KILLER Tool