mirror of
https://github.com/copier-org/copier.git
synced 2025-05-05 23:42:55 +00:00
47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
from hashlib import sha1
|
|
from os import urandom
|
|
from os.path import join, dirname
|
|
from tempfile import mkdtemp
|
|
import filecmp
|
|
import io
|
|
import shutil
|
|
|
|
from voodoo import render_skeleton
|
|
|
|
|
|
SKELETON_PATH = join(dirname(__file__), 'demo')
|
|
|
|
|
|
def read_content(path):
|
|
with io.open(path, mode='rt', encoding='utf8') as f:
|
|
return f.read()
|
|
|
|
|
|
def write_content(path, content):
|
|
with io.open(path, mode='wt', encoding='utf8') as f:
|
|
return f.write(content)
|
|
|
|
|
|
class RenderMixin(object):
|
|
|
|
def setUp(self):
|
|
self.dst_path = mkdtemp()
|
|
|
|
def tearDown(self):
|
|
shutil.rmtree(self.dst_path)
|
|
|
|
def assert_file(self, *path):
|
|
p1 = join(self.dst_path, *path)
|
|
p2 = join(SKELETON_PATH, *path)
|
|
assert filecmp.cmp(p1, p2)
|
|
|
|
def render_skeleton(self, **kwargs):
|
|
data = {
|
|
'package': 'demo',
|
|
'py3': True,
|
|
'make_secret': lambda: sha1(urandom(48)).hexdigest()
|
|
}
|
|
kwargs.setdefault('quiet', True)
|
|
render_skeleton(SKELETON_PATH, self.dst_path, data=data, **kwargs)
|