cookiecutter
41 строка · 976.0 Байт
1"""
2test_cookiecutter_invocation.
3
4Tests to make sure that cookiecutter can be called from the cli without
5using the entry point set up for the package.
6"""
7
8import os
9import subprocess
10import sys
11
12import pytest
13
14from cookiecutter import utils
15
16
17@pytest.fixture
18def project_dir():
19"""Return test project folder name and remove it after the test."""
20yield 'fake-project-templated'
21
22if os.path.isdir('fake-project-templated'):
23utils.rmtree('fake-project-templated')
24
25
26@pytest.mark.usefixtures('clean_system')
27def test_should_invoke_main(monkeypatch, project_dir) -> None:
28"""Should create a project and exit with 0 code on cli invocation."""
29monkeypatch.setenv('PYTHONPATH', '.')
30
31exit_code = subprocess.check_call(
32[
33sys.executable,
34'-m',
35'cookiecutter.cli',
36'tests/fake-repo-tmpl',
37'--no-input',
38]
39)
40assert exit_code == 0
41assert os.path.isdir(project_dir)
42