| #!/usr/bin/env python |
| |
| # This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this |
| # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| """ |
| tests for mozfile.TemporaryDirectory |
| """ |
| |
| from mozfile import TemporaryDirectory |
| import os |
| import unittest |
| |
| |
| class TestTemporaryDirectory(unittest.TestCase): |
| |
| def test_removed(self): |
| """ensure that a TemporaryDirectory gets removed""" |
| path = None |
| with TemporaryDirectory() as tmp: |
| path = tmp |
| self.assertTrue(os.path.isdir(tmp)) |
| tmpfile = os.path.join(tmp, "a_temp_file") |
| open(tmpfile, "w").write("data") |
| self.assertTrue(os.path.isfile(tmpfile)) |
| self.assertFalse(os.path.isdir(path)) |
| self.assertFalse(os.path.exists(path)) |
| |
| def test_exception(self): |
| """ensure that TemporaryDirectory handles exceptions""" |
| path = None |
| with self.assertRaises(Exception): |
| with TemporaryDirectory() as tmp: |
| path = tmp |
| self.assertTrue(os.path.isdir(tmp)) |
| raise Exception("oops") |
| self.assertFalse(os.path.isdir(path)) |
| self.assertFalse(os.path.exists(path)) |
| |
| if __name__ == '__main__': |
| unittest.main() |