cookiecutter

Форк
0
/
test_generate_copy_without_render.py 
76 строк · 2.4 Кб
1
"""Verify correct work of `_copy_without_render` context option."""
2

3
import os
4
from pathlib import Path
5

6
import pytest
7

8
from cookiecutter import generate, utils
9

10

11
@pytest.fixture
12
def remove_test_dir():
13
    """Fixture. Remove the folder that is created by the test."""
14
    yield
15
    if os.path.exists('test_copy_without_render'):
16
        utils.rmtree('test_copy_without_render')
17

18

19
@pytest.mark.usefixtures('clean_system', 'remove_test_dir')
20
def test_generate_copy_without_render_extensions() -> None:
21
    """Verify correct work of `_copy_without_render` context option.
22

23
    Some files/directories should be rendered during invocation,
24
    some just copied, without any modification.
25
    """
26
    generate.generate_files(
27
        context={
28
            'cookiecutter': {
29
                'repo_name': 'test_copy_without_render',
30
                'render_test': 'I have been rendered!',
31
                '_copy_without_render': [
32
                    '*not-rendered',
33
                    'rendered/not_rendered.yml',
34
                    '*.txt',
35
                    '{{cookiecutter.repo_name}}-rendered/README.md',
36
                ],
37
            }
38
        },
39
        repo_dir='tests/test-generate-copy-without-render',
40
    )
41

42
    dir_contents = os.listdir('test_copy_without_render')
43

44
    assert 'test_copy_without_render-not-rendered' in dir_contents
45
    assert 'test_copy_without_render-rendered' in dir_contents
46

47
    file_1 = Path('test_copy_without_render/README.txt').read_text()
48
    assert '{{cookiecutter.render_test}}' in file_1
49

50
    file_2 = Path('test_copy_without_render/README.rst').read_text()
51
    assert 'I have been rendered!' in file_2
52

53
    file_3 = Path(
54
        'test_copy_without_render/test_copy_without_render-rendered/README.txt'
55
    ).read_text()
56
    assert '{{cookiecutter.render_test}}' in file_3
57

58
    file_4 = Path(
59
        'test_copy_without_render/test_copy_without_render-rendered/README.rst'
60
    ).read_text()
61
    assert 'I have been rendered' in file_4
62

63
    file_5 = Path(
64
        'test_copy_without_render/'
65
        'test_copy_without_render-not-rendered/'
66
        'README.rst'
67
    ).read_text()
68
    assert '{{cookiecutter.render_test}}' in file_5
69

70
    file_6 = Path('test_copy_without_render/rendered/not_rendered.yml').read_text()
71
    assert '{{cookiecutter.render_test}}' in file_6
72

73
    file_7 = Path(
74
        'test_copy_without_render/' 'test_copy_without_render-rendered/' 'README.md'
75
    ).read_text()
76
    assert '{{cookiecutter.render_test}}' in file_7
77

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.