summaryrefslogtreecommitdiff
path: root/tests/conftest.py
blob: d33df110e2f723d5854b72fb2de4e2e53f268518 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import os
import shutil
import tempfile

import pytest

from click.testing import CliRunner


@pytest.fixture(scope="function")
def runner(request):
    return CliRunner()


def check_symlink_impl():
    """This function checks if using symlinks is allowed
    on the host machine"""
    tempdir = tempfile.mkdtemp(prefix="click-")
    test_pth = os.path.join(tempdir, "check_sym_impl")
    sym_pth = os.path.join(tempdir, "link")
    open(test_pth, "w").close()
    rv = True
    try:
        os.symlink(test_pth, sym_pth)
    except (NotImplementedError, OSError):
        # Creating symlinks on Windows require elevated access.
        # OSError is thrown if the function is called without it.
        rv = False
    finally:
        shutil.rmtree(tempdir, ignore_errors=True)
    return rv