GRAYBYTE WORDPRESS FILE MANAGER7949

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.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
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /usr/lib64/python2.7/idlelib/idle_test/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /usr/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)

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
June 15 2024 08:34:30
root / root
0755
README.txt
5.363 KB
April 10 2024 04:58:35
root / root
0644
__init__.py
0.635 KB
April 10 2024 04:58:35
root / root
0644
__init__.pyc
0.894 KB
April 10 2024 04:58:46
root / root
0644
__init__.pyo
0.894 KB
April 10 2024 04:58:46
root / root
0644
htest.py
13.456 KB
April 10 2024 04:58:35
root / root
0644
htest.pyc
12.305 KB
April 10 2024 04:58:46
root / root
0644
htest.pyo
12.305 KB
April 10 2024 04:58:46
root / root
0644
mock_idle.py
1.56 KB
April 10 2024 04:58:35
root / root
0644
mock_idle.pyc
2.812 KB
April 10 2024 04:58:46
root / root
0644
mock_idle.pyo
2.812 KB
April 10 2024 04:58:46
root / root
0644
mock_tk.py
11.303 KB
April 10 2024 04:58:35
root / root
0644
mock_tk.pyc
12.072 KB
April 10 2024 04:58:46
root / root
0644
mock_tk.pyo
12.072 KB
April 10 2024 04:58:46
root / root
0644
test_autocomplete.py
4.807 KB
April 10 2024 04:58:35
root / root
0644
test_autocomplete.pyc
5.723 KB
April 10 2024 04:58:46
root / root
0644
test_autocomplete.pyo
5.723 KB
April 10 2024 04:58:46
root / root
0644
test_autoexpand.py
4.025 KB
April 10 2024 04:58:35
root / root
0644
test_autoexpand.pyc
4.693 KB
April 10 2024 04:58:46
root / root
0644
test_autoexpand.pyo
4.693 KB
April 10 2024 04:58:46
root / root
0644
test_calltips.py
6.973 KB
April 10 2024 04:58:35
root / root
0644
test_calltips.pyc
11.847 KB
April 10 2024 04:58:46
root / root
0644
test_calltips.pyo
11.847 KB
April 10 2024 04:58:46
root / root
0644
test_config_name.py
2.414 KB
April 10 2024 04:58:35
root / root
0644
test_config_name.pyc
3.918 KB
April 10 2024 04:58:46
root / root
0644
test_config_name.pyo
3.918 KB
April 10 2024 04:58:46
root / root
0644
test_configdialog.py
0.764 KB
April 10 2024 04:58:35
root / root
0644
test_configdialog.pyc
1.616 KB
April 10 2024 04:58:46
root / root
0644
test_configdialog.pyo
1.616 KB
April 10 2024 04:58:46
root / root
0644
test_delegator.py
1.264 KB
April 10 2024 04:58:35
root / root
0644
test_delegator.pyc
1.288 KB
April 10 2024 04:58:46
root / root
0644
test_delegator.pyo
1.288 KB
April 10 2024 04:58:46
root / root
0644
test_editmenu.py
3.093 KB
April 10 2024 04:58:35
root / root
0644
test_editmenu.pyc
4.335 KB
April 10 2024 04:58:46
root / root
0644
test_editmenu.pyo
4.335 KB
April 10 2024 04:58:46
root / root
0644
test_formatparagraph.py
14.008 KB
April 10 2024 04:58:35
root / root
0644
test_formatparagraph.pyc
13.982 KB
April 10 2024 04:58:46
root / root
0644
test_formatparagraph.pyo
13.982 KB
April 10 2024 04:58:46
root / root
0644
test_grep.py
2.697 KB
April 10 2024 04:58:35
root / root
0644
test_grep.pyc
3.672 KB
April 10 2024 04:58:46
root / root
0644
test_grep.pyo
3.672 KB
April 10 2024 04:58:46
root / root
0644
test_helpabout.py
1.573 KB
April 10 2024 04:58:35
root / root
0644
test_helpabout.pyc
2.308 KB
April 10 2024 04:58:46
root / root
0644
test_helpabout.pyo
2.308 KB
April 10 2024 04:58:46
root / root
0644
test_hyperparser.py
5.551 KB
April 10 2024 04:58:35
root / root
0644
test_hyperparser.pyc
6.576 KB
April 10 2024 04:58:46
root / root
0644
test_hyperparser.pyo
6.576 KB
April 10 2024 04:58:46
root / root
0644
test_idlehistory.py
5.366 KB
April 10 2024 04:58:35
root / root
0644
test_idlehistory.pyc
7.951 KB
April 10 2024 04:58:46
root / root
0644
test_idlehistory.pyo
7.951 KB
April 10 2024 04:58:46
root / root
0644
test_io.py
9.282 KB
April 10 2024 04:58:35
root / root
0644
test_io.pyc
11.263 KB
April 10 2024 04:58:46
root / root
0644
test_io.pyo
11.263 KB
April 10 2024 04:58:46
root / root
0644
test_parenmatch.py
3.732 KB
April 10 2024 04:58:35
root / root
0644
test_parenmatch.pyc
5.328 KB
April 10 2024 04:58:46
root / root
0644
test_parenmatch.pyo
5.328 KB
April 10 2024 04:58:46
root / root
0644
test_pathbrowser.py
0.918 KB
April 10 2024 04:58:35
root / root
0644
test_pathbrowser.pyc
1.45 KB
April 10 2024 04:58:46
root / root
0644
test_pathbrowser.pyo
1.45 KB
April 10 2024 04:58:46
root / root
0644
test_rstrip.py
1.575 KB
April 10 2024 04:58:35
root / root
0644
test_rstrip.pyc
1.731 KB
April 10 2024 04:58:46
root / root
0644
test_rstrip.pyo
1.731 KB
April 10 2024 04:58:46
root / root
0644
test_searchdialogbase.py
5.726 KB
April 10 2024 04:58:35
root / root
0644
test_searchdialogbase.pyc
6.667 KB
April 10 2024 04:58:46
root / root
0644
test_searchdialogbase.pyo
6.667 KB
April 10 2024 04:58:46
root / root
0644
test_searchengine.py
11.218 KB
April 10 2024 04:58:35
root / root
0644
test_searchengine.pyc
12.353 KB
April 10 2024 04:58:46
root / root
0644
test_searchengine.pyo
12.353 KB
April 10 2024 04:58:46
root / root
0644
test_text.py
6.586 KB
April 10 2024 04:58:35
root / root
0644
test_text.pyc
7.957 KB
April 10 2024 04:58:46
root / root
0644
test_text.pyo
7.957 KB
April 10 2024 04:58:46
root / root
0644
test_textview.py
2.736 KB
April 10 2024 04:58:35
root / root
0644
test_textview.pyc
4.425 KB
April 10 2024 04:58:46
root / root
0644
test_textview.pyo
4.425 KB
April 10 2024 04:58:46
root / root
0644
test_warning.py
2.692 KB
April 10 2024 04:58:35
root / root
0644
test_warning.pyc
3.209 KB
April 10 2024 04:58:46
root / root
0644
test_warning.pyo
3.209 KB
April 10 2024 04:58:46
root / root
0644
test_widgetredir.py
4.079 KB
April 10 2024 04:58:35
root / root
0644
test_widgetredir.pyc
6.234 KB
April 10 2024 04:58:46
root / root
0644
test_widgetredir.pyo
6.234 KB
April 10 2024 04:58:46
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF