1# -*- coding: utf-8 -*-
2#                     The LLVM Compiler Infrastructure
3#
4# This file is distributed under the University of Illinois Open Source
5# License. See LICENSE.TXT for details.
6
7import libear as sut
8import unittest
9import os.path
10
11
12class TemporaryDirectoryTest(unittest.TestCase):
13    def test_creates_directory(self):
14        dirname = None
15        with sut.TemporaryDirectory() as tmpdir:
16            self.assertTrue(os.path.isdir(tmpdir))
17            dirname = tmpdir
18        self.assertIsNotNone(dirname)
19        self.assertFalse(os.path.exists(dirname))
20
21    def test_removes_directory_when_exception(self):
22        dirname = None
23        try:
24            with sut.TemporaryDirectory() as tmpdir:
25                self.assertTrue(os.path.isdir(tmpdir))
26                dirname = tmpdir
27                raise RuntimeError('message')
28        except:
29            self.assertIsNotNone(dirname)
30            self.assertFalse(os.path.exists(dirname))
31