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