mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	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()
 |