symbian-qemu-0.9.1-12/python-2.6.1/Lib/test/test_dircache.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 """
       
     2   Test cases for the dircache module
       
     3   Nick Mathewson
       
     4 """
       
     5 
       
     6 import unittest
       
     7 from test.test_support import run_unittest, TESTFN, import_module
       
     8 dircache = import_module('dircache', deprecated=True)
       
     9 import os, time, sys, tempfile
       
    10 
       
    11 
       
    12 class DircacheTests(unittest.TestCase):
       
    13     def setUp(self):
       
    14         self.tempdir = tempfile.mkdtemp()
       
    15 
       
    16     def tearDown(self):
       
    17         for fname in os.listdir(self.tempdir):
       
    18             self.delTemp(fname)
       
    19         os.rmdir(self.tempdir)
       
    20 
       
    21     def writeTemp(self, fname):
       
    22         f = open(os.path.join(self.tempdir, fname), 'w')
       
    23         f.close()
       
    24 
       
    25     def mkdirTemp(self, fname):
       
    26         os.mkdir(os.path.join(self.tempdir, fname))
       
    27 
       
    28     def delTemp(self, fname):
       
    29         fname = os.path.join(self.tempdir, fname)
       
    30         if os.path.isdir(fname):
       
    31             os.rmdir(fname)
       
    32         else:
       
    33             os.unlink(fname)
       
    34 
       
    35     def test_listdir(self):
       
    36         ## SUCCESSFUL CASES
       
    37         entries = dircache.listdir(self.tempdir)
       
    38         self.assertEquals(entries, [])
       
    39 
       
    40         # Check that cache is actually caching, not just passing through.
       
    41         self.assert_(dircache.listdir(self.tempdir) is entries)
       
    42 
       
    43         # Directories aren't "files" on Windows, and directory mtime has
       
    44         # nothing to do with when files under a directory get created.
       
    45         # That is, this test can't possibly work under Windows -- dircache
       
    46         # is only good for capturing a one-shot snapshot there.
       
    47 
       
    48         if sys.platform[:3] not in ('win', 'os2'):
       
    49             # Sadly, dircache has the same granularity as stat.mtime, and so
       
    50             # can't notice any changes that occurred within 1 sec of the last
       
    51             # time it examined a directory.
       
    52             time.sleep(1)
       
    53             self.writeTemp("test1")
       
    54             entries = dircache.listdir(self.tempdir)
       
    55             self.assertEquals(entries, ['test1'])
       
    56             self.assert_(dircache.listdir(self.tempdir) is entries)
       
    57 
       
    58         ## UNSUCCESSFUL CASES
       
    59         self.assertRaises(OSError, dircache.listdir, self.tempdir+"_nonexistent")
       
    60 
       
    61     def test_annotate(self):
       
    62         self.writeTemp("test2")
       
    63         self.mkdirTemp("A")
       
    64         lst = ['A', 'test2', 'test_nonexistent']
       
    65         dircache.annotate(self.tempdir, lst)
       
    66         self.assertEquals(lst, ['A/', 'test2', 'test_nonexistent'])
       
    67 
       
    68 
       
    69 def test_main():
       
    70     try:
       
    71         run_unittest(DircacheTests)
       
    72     finally:
       
    73         dircache.reset()
       
    74 
       
    75 
       
    76 if __name__ == "__main__":
       
    77     test_main()