Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
michael@0 | 1 | #!/usr/bin/env python |
michael@0 | 2 | |
michael@0 | 3 | # This Source Code Form is subject to the terms of the Mozilla Public |
michael@0 | 4 | # License, v. 2.0. If a copy of the MPL was not distributed with this |
michael@0 | 5 | # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
michael@0 | 6 | |
michael@0 | 7 | """ |
michael@0 | 8 | tests for mozfile.TemporaryDirectory |
michael@0 | 9 | """ |
michael@0 | 10 | |
michael@0 | 11 | from mozfile import TemporaryDirectory |
michael@0 | 12 | import os |
michael@0 | 13 | import unittest |
michael@0 | 14 | |
michael@0 | 15 | |
michael@0 | 16 | class TestTemporaryDirectory(unittest.TestCase): |
michael@0 | 17 | |
michael@0 | 18 | def test_removed(self): |
michael@0 | 19 | """ensure that a TemporaryDirectory gets removed""" |
michael@0 | 20 | path = None |
michael@0 | 21 | with TemporaryDirectory() as tmp: |
michael@0 | 22 | path = tmp |
michael@0 | 23 | self.assertTrue(os.path.isdir(tmp)) |
michael@0 | 24 | tmpfile = os.path.join(tmp, "a_temp_file") |
michael@0 | 25 | open(tmpfile, "w").write("data") |
michael@0 | 26 | self.assertTrue(os.path.isfile(tmpfile)) |
michael@0 | 27 | self.assertFalse(os.path.isdir(path)) |
michael@0 | 28 | self.assertFalse(os.path.exists(path)) |
michael@0 | 29 | |
michael@0 | 30 | def test_exception(self): |
michael@0 | 31 | """ensure that TemporaryDirectory handles exceptions""" |
michael@0 | 32 | path = None |
michael@0 | 33 | with self.assertRaises(Exception): |
michael@0 | 34 | with TemporaryDirectory() as tmp: |
michael@0 | 35 | path = tmp |
michael@0 | 36 | self.assertTrue(os.path.isdir(tmp)) |
michael@0 | 37 | raise Exception("oops") |
michael@0 | 38 | self.assertFalse(os.path.isdir(path)) |
michael@0 | 39 | self.assertFalse(os.path.exists(path)) |
michael@0 | 40 | |
michael@0 | 41 | if __name__ == '__main__': |
michael@0 | 42 | unittest.main() |