llvm/clang/tools/scan-build-py/tests/unit/test_libear.py

# -*- coding: utf-8 -*-
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

import libear as sut
import unittest
import os.path


class TemporaryDirectoryTest(unittest.TestCase):
    def test_creates_directory(self):
        dirname = None
        with sut.TemporaryDirectory() as tmpdir:
            self.assertTrue(os.path.isdir(tmpdir))
            dirname = tmpdir
        self.assertIsNotNone(dirname)
        self.assertFalse(os.path.exists(dirname))

    def test_removes_directory_when_exception(self):
        dirname = None
        try:
            with sut.TemporaryDirectory() as tmpdir:
                self.assertTrue(os.path.isdir(tmpdir))
                dirname = tmpdir
                raise RuntimeError("message")
        except:
            self.assertIsNotNone(dirname)
            self.assertFalse(os.path.exists(dirname))