1*e5dd7070Spatrick# -*- coding: utf-8 -*- 2*e5dd7070Spatrick# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 3*e5dd7070Spatrick# See https://llvm.org/LICENSE.txt for license information. 4*e5dd7070Spatrick# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 5*e5dd7070Spatrick 6*e5dd7070Spatrickimport libear as sut 7*e5dd7070Spatrickimport unittest 8*e5dd7070Spatrickimport os.path 9*e5dd7070Spatrick 10*e5dd7070Spatrick 11*e5dd7070Spatrickclass TemporaryDirectoryTest(unittest.TestCase): 12*e5dd7070Spatrick def test_creates_directory(self): 13*e5dd7070Spatrick dirname = None 14*e5dd7070Spatrick with sut.TemporaryDirectory() as tmpdir: 15*e5dd7070Spatrick self.assertTrue(os.path.isdir(tmpdir)) 16*e5dd7070Spatrick dirname = tmpdir 17*e5dd7070Spatrick self.assertIsNotNone(dirname) 18*e5dd7070Spatrick self.assertFalse(os.path.exists(dirname)) 19*e5dd7070Spatrick 20*e5dd7070Spatrick def test_removes_directory_when_exception(self): 21*e5dd7070Spatrick dirname = None 22*e5dd7070Spatrick try: 23*e5dd7070Spatrick with sut.TemporaryDirectory() as tmpdir: 24*e5dd7070Spatrick self.assertTrue(os.path.isdir(tmpdir)) 25*e5dd7070Spatrick dirname = tmpdir 26*e5dd7070Spatrick raise RuntimeError('message') 27*e5dd7070Spatrick except: 28*e5dd7070Spatrick self.assertIsNotNone(dirname) 29*e5dd7070Spatrick self.assertFalse(os.path.exists(dirname)) 30