@@ 39-55 (lines=17) @@ | ||
36 | f.write("f = open('python_pre.txt', 'w')\n") |
|
37 | f.write("f.close()\n") |
|
38 | ||
39 | if sys.platform.startswith('win'): |
|
40 | post = 'post_gen_project.bat' |
|
41 | with open(os.path.join(hook_dir, post), 'w') as f: |
|
42 | f.write("@echo off\n") |
|
43 | f.write("\n") |
|
44 | f.write("echo post generation hook\n") |
|
45 | f.write("echo. >shell_post.txt\n") |
|
46 | else: |
|
47 | post = 'post_gen_project.sh' |
|
48 | filename = os.path.join(hook_dir, post) |
|
49 | with open(filename, 'w') as f: |
|
50 | f.write("#!/bin/bash\n") |
|
51 | f.write("\n") |
|
52 | f.write("echo 'post generation hook';\n") |
|
53 | f.write("touch 'shell_post.txt'\n") |
|
54 | # Set the execute bit |
|
55 | os.chmod(filename, os.stat(filename).st_mode | stat.S_IXUSR) |
|
56 | ||
57 | return post |
|
58 | ||
@@ 165-179 (lines=15) @@ | ||
162 | { |
|
163 | 'cookiecutter': { |
|
164 | 'file': 'context_post.txt' |
|
165 | } |
|
166 | }) |
|
167 | assert os.path.isfile('tests/context_post.txt') |
|
168 | assert 'tests' not in os.getcwd() |
|
169 | ||
170 | def test_run_hook(self): |
|
171 | """Execute hook from specified template in specified output |
|
172 | directory. |
|
173 | """ |
|
174 | tests_dir = os.path.join(self.repo_path, 'input{{hooks}}') |
|
175 | with utils.work_in(self.repo_path): |
|
176 | hooks.run_hook('pre_gen_project', tests_dir, {}) |
|
177 | assert os.path.isfile(os.path.join(tests_dir, 'python_pre.txt')) |
|
178 | ||
179 | hooks.run_hook('post_gen_project', tests_dir, {}) |
|
180 | assert os.path.isfile(os.path.join(tests_dir, 'shell_post.txt')) |
|
181 | ||
182 | def test_run_failing_hook(self): |