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