File: C:/Users/fred/anaconda3/Lib/site-packages/anaconda_project/internal/test/test_makedirs.py
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------------
# Copyright (c) 2016, Anaconda, Inc. All rights reserved.
#
# Licensed under the terms of the BSD 3-Clause License.
# The full license is in the file LICENSE.txt, distributed with this software.
# -----------------------------------------------------------------------------
from __future__ import absolute_import, print_function
import os
import pytest
from anaconda_project.internal.makedirs import makedirs_ok_if_exists
from anaconda_project.internal.test.tmpfile_utils import with_directory_contents
def test_makedirs_ok_if_exists():
def do_test(dirname):
dir1 = os.path.join(dirname, "foo")
dir2 = os.path.join(dir1, "bar")
dir3 = os.path.join(dir2, "baz")
assert os.path.isdir(dirname)
assert not os.path.isdir(dir1)
assert not os.path.isdir(dir2)
assert not os.path.isdir(dir3)
makedirs_ok_if_exists(dir3)
assert os.path.isdir(dir1)
assert os.path.isdir(dir2)
assert os.path.isdir(dir3)
with_directory_contents(dict(), do_test)
def test_makedirs_ok_if_exists_fails_for_another_reason(monkeypatch):
def do_test(dirname):
def mock_mkdir_fails(path, mode):
raise IOError("not EEXIST")
monkeypatch.setattr("os.mkdir", mock_mkdir_fails)
with pytest.raises(IOError) as excinfo:
makedirs_ok_if_exists("foo/bar/baz")
assert 'not EEXIST' in repr(excinfo.value)
with_directory_contents(dict(), do_test)