Server IP : 103.119.228.120 / Your IP : 13.58.201.240 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/lib/mysqlsh/lib/python3.9/idlelib/idle_test/ |
Upload File : |
""" !Changing this line will break Test_findfile.test_found! Non-gui unit tests for grep.GrepDialog methods. dummy_command calls grep_it calls findfiles. An exception raised in one method will fail callers. Otherwise, tests are mostly independent. Currently only test grep_it, coverage 51%. """ from idlelib import grep import unittest from test.support import captured_stdout from idlelib.idle_test.mock_tk import Var import os import re class Dummy_searchengine: '''GrepDialog.__init__ calls parent SearchDiabolBase which attaches the passed in SearchEngine instance as attribute 'engine'. Only a few of the many possible self.engine.x attributes are needed here. ''' def getpat(self): return self._pat searchengine = Dummy_searchengine() class Dummy_grep: # Methods tested #default_command = GrepDialog.default_command grep_it = grep.GrepDialog.grep_it # Other stuff needed recvar = Var(False) engine = searchengine def close(self): # gui method pass _grep = Dummy_grep() class FindfilesTest(unittest.TestCase): @classmethod def setUpClass(cls): cls.realpath = os.path.realpath(__file__) cls.path = os.path.dirname(cls.realpath) @classmethod def tearDownClass(cls): del cls.realpath, cls.path def test_invaliddir(self): with captured_stdout() as s: filelist = list(grep.findfiles('invaliddir', '*.*', False)) self.assertEqual(filelist, []) self.assertIn('invalid', s.getvalue()) def test_curdir(self): # Test os.curdir. ff = grep.findfiles save_cwd = os.getcwd() os.chdir(self.path) filename = 'test_grep.py' filelist = list(ff(os.curdir, filename, False)) self.assertIn(os.path.join(os.curdir, filename), filelist) os.chdir(save_cwd) def test_base(self): ff = grep.findfiles readme = os.path.join(self.path, 'README.txt') # Check for Python files in path where this file lives. filelist = list(ff(self.path, '*.py', False)) # This directory has many Python files. self.assertGreater(len(filelist), 10) self.assertIn(self.realpath, filelist) self.assertNotIn(readme, filelist) # Look for .txt files in path where this file lives. filelist = list(ff(self.path, '*.txt', False)) self.assertNotEqual(len(filelist), 0) self.assertNotIn(self.realpath, filelist) self.assertIn(readme, filelist) # Look for non-matching pattern. filelist = list(ff(self.path, 'grep.*', False)) self.assertEqual(len(filelist), 0) self.assertNotIn(self.realpath, filelist) def test_recurse(self): ff = grep.findfiles parent = os.path.dirname(self.path) grepfile = os.path.join(parent, 'grep.py') pat = '*.py' # Get Python files only in parent directory. filelist = list(ff(parent, pat, False)) parent_size = len(filelist) # Lots of Python files in idlelib. self.assertGreater(parent_size, 20) self.assertIn(grepfile, filelist) # Without subdirectories, this file isn't returned. self.assertNotIn(self.realpath, filelist) # Include subdirectories. filelist = list(ff(parent, pat, True)) # More files found now. self.assertGreater(len(filelist), parent_size) self.assertIn(grepfile, filelist) # This file exists in list now. self.assertIn(self.realpath, filelist) # Check another level up the tree. parent = os.path.dirname(parent) filelist = list(ff(parent, '*.py', True)) self.assertIn(self.realpath, filelist) class Grep_itTest(unittest.TestCase): # Test captured reports with 0 and some hits. # Should test file names, but Windows reports have mixed / and \ separators # from incomplete replacement, so 'later'. def report(self, pat): _grep.engine._pat = pat with captured_stdout() as s: _grep.grep_it(re.compile(pat), __file__) lines = s.getvalue().split('\n') lines.pop() # remove bogus '' after last \n return lines def test_unfound(self): pat = 'xyz*'*7 lines = self.report(pat) self.assertEqual(len(lines), 2) self.assertIn(pat, lines[0]) self.assertEqual(lines[1], 'No hits.') def test_found(self): pat = '""" !Changing this line will break Test_findfile.test_found!' lines = self.report(pat) self.assertEqual(len(lines), 5) self.assertIn(pat, lines[0]) self.assertIn('py: 1:', lines[1]) # line number 1 self.assertIn('2', lines[3]) # hits found 2 self.assertTrue(lines[4].startswith('(Hint:')) class Default_commandTest(unittest.TestCase): # To write this, move outwin import to top of GrepDialog # so it can be replaced by captured_stdout in class setup/teardown. pass if __name__ == '__main__': unittest.main(verbosity=2)