summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/idle_test/test_grep.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/idlelib/idle_test/test_grep.py')
-rw-r--r--Lib/idlelib/idle_test/test_grep.py108
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)