mirror of
				https://github.com/python/cpython.git
				synced 2025-10-26 00:08:32 +00:00 
			
		
		
		
	 2e2be3760c
			
		
	
	
		2e2be3760c
		
	
	
	
	
		
			
			allows using the tests with unittest.py as a script. The tests will still run when run as a script themselves.
		
			
				
	
	
		
			74 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """
 | |
|   Test cases for the dircache module
 | |
|   Nick Mathewson
 | |
| """
 | |
| 
 | |
| import unittest
 | |
| from test_support import run_unittest, TESTFN
 | |
| import dircache, os, time, sys
 | |
| 
 | |
| 
 | |
| class DircacheTests(unittest.TestCase):
 | |
|     def setUp(self):
 | |
|         self.tempdir = TESTFN+"_dir"
 | |
|         os.mkdir(self.tempdir)
 | |
| 
 | |
|     def tearDown(self):
 | |
|         for fname in os.listdir(self.tempdir):
 | |
|             self.delTemp(fname)
 | |
|         os.rmdir(self.tempdir)
 | |
| 
 | |
|     def writeTemp(self, fname):
 | |
|         f = open(os.path.join(self.tempdir, fname), 'w')
 | |
|         f.close()
 | |
| 
 | |
|     def mkdirTemp(self, fname):
 | |
|         os.mkdir(os.path.join(self.tempdir, fname))
 | |
| 
 | |
|     def delTemp(self, fname):
 | |
|         fname = os.path.join(self.tempdir, fname)
 | |
|         if os.path.isdir(fname):
 | |
|             os.rmdir(fname)
 | |
|         else:
 | |
|             os.unlink(fname)
 | |
| 
 | |
|     def test_listdir(self):
 | |
|         ## SUCCESSFUL CASES
 | |
|         entries = dircache.listdir(self.tempdir)
 | |
|         self.assertEquals(entries, [])
 | |
| 
 | |
|         # Check that cache is actually caching, not just passing through.
 | |
|         self.assert_(dircache.listdir(self.tempdir) is entries)
 | |
| 
 | |
|         # Directories aren't "files" on Windows, and directory mtime has
 | |
|         # nothing to do with when files under a directory get created.
 | |
|         # That is, this test can't possibly work under Windows -- dircache
 | |
|         # is only good for capturing a one-shot snapshot there.
 | |
| 
 | |
|         if sys.platform[:3] not in ('win', 'os2'):
 | |
|             # Sadly, dircache has the same granularity as stat.mtime, and so
 | |
|             # can't notice any changes that occured within 1 sec of the last
 | |
|             # time it examined a directory.
 | |
|             time.sleep(1)
 | |
|             self.writeTemp("test1")
 | |
|             entries = dircache.listdir(self.tempdir)
 | |
|             self.assertEquals(entries, ['test1'])
 | |
|             self.assert_(dircache.listdir(self.tempdir) is entries)
 | |
| 
 | |
|         ## UNSUCCESSFUL CASES
 | |
|         self.assertEquals(dircache.listdir(self.tempdir+"_nonexistent"), [])
 | |
| 
 | |
|     def test_annotate(self):
 | |
|         self.writeTemp("test2")
 | |
|         self.mkdirTemp("A")
 | |
|         lst = ['A', 'test2', 'test_nonexistent']
 | |
|         dircache.annotate(self.tempdir, lst)
 | |
|         self.assertEquals(lst, ['A/', 'test2', 'test_nonexistent'])
 | |
| 
 | |
| 
 | |
| def test_main():
 | |
|     run_unittest(DircacheTests)
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     test_main()
 |