diff options
Diffstat (limited to 'Lib/idlelib/idle_test/test_grep.py')
-rw-r--r-- | Lib/idlelib/idle_test/test_grep.py | 108 |
1 files changed, 17 insertions, 91 deletions
diff --git a/Lib/idlelib/idle_test/test_grep.py b/Lib/idlelib/idle_test/test_grep.py index a0b5b69..e9f4f22 100644 --- a/Lib/idlelib/idle_test/test_grep.py +++ b/Lib/idlelib/idle_test/test_grep.py @@ -1,17 +1,17 @@ """ !Changing this line will break Test_findfile.test_found! -Non-gui unit tests for grep.GrepDialog methods. +Non-gui unit tests for idlelib.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%. +*** Currently only test grep_it. """ -from idlelib import grep import unittest -from test.support import captured_stdout +from test.test_support import captured_stdout, findfile from idlelib.idle_test.mock_tk import Var -import os +from idlelib.GrepDialog import GrepDialog import re +__file__ = findfile('idlelib/idle_test') + '/test_grep.py' class Dummy_searchengine: '''GrepDialog.__init__ calls parent SearchDiabolBase which attaches the @@ -23,97 +23,25 @@ class Dummy_searchengine: searchengine = Dummy_searchengine() - class Dummy_grep: # Methods tested #default_command = GrepDialog.default_command - grep_it = grep.GrepDialog.grep_it + grep_it = GrepDialog.grep_it.im_func + findfiles = GrepDialog.findfiles.im_func # Other stuff needed recvar = Var(False) engine = searchengine def close(self): # gui method pass -_grep = Dummy_grep() - +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) - + # findfiles is really a function, not a method, could be iterator + # test that filename return filename + # test that idlelib has many .py files + # test that recursive flag adds idle_test .py files + pass class Grep_itTest(unittest.TestCase): # Test captured reports with 0 and some hits. @@ -121,9 +49,9 @@ class Grep_itTest(unittest.TestCase): # from incomplete replacement, so 'later'. def report(self, pat): - _grep.engine._pat = pat + grep.engine._pat = pat with captured_stdout() as s: - _grep.grep_it(re.compile(pat), __file__) + grep.grep_it(re.compile(pat), __file__) lines = s.getvalue().split('\n') lines.pop() # remove bogus '' after last \n return lines @@ -145,12 +73,10 @@ class Grep_itTest(unittest.TestCase): 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 + # To write this, mode OutputWindow 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) + unittest.main(verbosity=2, exit=False) |