mirror of
https://github.com/copier-org/copier.git
synced 2025-05-05 23:42:55 +00:00
43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
import platform
|
|
from pathlib import Path
|
|
from stat import S_IREAD
|
|
|
|
import pytest
|
|
from plumbum.cmd import git
|
|
from poethepoet.app import PoeThePoet
|
|
|
|
from copier.tools import TemporaryDirectory
|
|
|
|
|
|
@pytest.mark.skipif(
|
|
condition=platform.system() == "Windows",
|
|
reason="Windows does weird things with line endings.",
|
|
)
|
|
def test_lint():
|
|
"""Ensure source code formatting"""
|
|
result = PoeThePoet(Path("."))(["lint", "--show-diff-on-failure", "--color=always"])
|
|
assert result == 0
|
|
|
|
|
|
def test_types():
|
|
"""Ensure source code static typing."""
|
|
result = PoeThePoet(Path("."))(["types"])
|
|
assert result == 0
|
|
|
|
|
|
def test_temporary_directory_with_readonly_files_deletion():
|
|
"""Ensure temporary directories containing read-only files are properly deleted, whatever the OS."""
|
|
with TemporaryDirectory() as tmp_dir:
|
|
ro_file = Path(tmp_dir) / "readonly.txt"
|
|
with ro_file.open("w") as fp:
|
|
fp.write("don't touch me!")
|
|
ro_file.chmod(S_IREAD)
|
|
assert not Path(tmp_dir).exists()
|
|
|
|
|
|
def test_temporary_directory_with_git_repo_deletion():
|
|
"""Ensure temporary directories containing git repositories are properly deleted, whatever the OS."""
|
|
with TemporaryDirectory() as tmp_dir:
|
|
git("clone", "--depth=1", ".", Path(tmp_dir) / "repo")
|
|
assert not Path(tmp_dir).exists()
|