tests/test-atomictempfile.py
changeset 29394 6d96658a22b0
parent 29393 50269a4dce61
child 30332 318a24b52eeb
equal deleted inserted replaced
29393:50269a4dce61 29394:6d96658a22b0
    94             f.write(b'foobar\n')
    94             f.write(b'foobar\n')
    95         file = atomictempfile(self._filename, mode='rb')
    95         file = atomictempfile(self._filename, mode='rb')
    96         self.assertTrue(file.read(), b'foobar\n')
    96         self.assertTrue(file.read(), b'foobar\n')
    97         file.discard()
    97         file.discard()
    98 
    98 
       
    99     def testcontextmanagersuccess(self):
       
   100         """When the context closes, the file is closed"""
       
   101         with atomictempfile('foo') as f:
       
   102             self.assertFalse(os.path.isfile('foo'))
       
   103             f.write(b'argh\n')
       
   104         self.assertTrue(os.path.isfile('foo'))
       
   105 
       
   106     def testcontextmanagerfailure(self):
       
   107         """On exception, the file is discarded"""
       
   108         try:
       
   109             with atomictempfile('foo') as f:
       
   110                 self.assertFalse(os.path.isfile('foo'))
       
   111                 f.write(b'argh\n')
       
   112                 raise ValueError
       
   113         except ValueError:
       
   114             pass
       
   115         self.assertFalse(os.path.isfile('foo'))
       
   116 
    99 if __name__ == '__main__':
   117 if __name__ == '__main__':
   100     import silenttestrunner
   118     import silenttestrunner
   101     silenttestrunner.main(__name__)
   119     silenttestrunner.main(__name__)