xref: /openbsd-src/gnu/llvm/clang/tools/scan-build-py/tests/unit/test_libear.py (revision e5dd70708596ae51455a0ffa086a00c5b29f8583)
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