tests/test-atomictempfile.py
changeset 29394 6d96658a22b0
parent 29393 50269a4dce61
child 30332 318a24b52eeb
--- a/tests/test-atomictempfile.py	Thu Jun 23 18:20:58 2016 +0100
+++ b/tests/test-atomictempfile.py	Thu Jun 23 18:21:25 2016 +0100
@@ -96,6 +96,24 @@
         self.assertTrue(file.read(), b'foobar\n')
         file.discard()
 
+    def testcontextmanagersuccess(self):
+        """When the context closes, the file is closed"""
+        with atomictempfile('foo') as f:
+            self.assertFalse(os.path.isfile('foo'))
+            f.write(b'argh\n')
+        self.assertTrue(os.path.isfile('foo'))
+
+    def testcontextmanagerfailure(self):
+        """On exception, the file is discarded"""
+        try:
+            with atomictempfile('foo') as f:
+                self.assertFalse(os.path.isfile('foo'))
+                f.write(b'argh\n')
+                raise ValueError
+        except ValueError:
+            pass
+        self.assertFalse(os.path.isfile('foo'))
+
 if __name__ == '__main__':
     import silenttestrunner
     silenttestrunner.main(__name__)