Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: tests/test_generation_exceptional_cases.py

Issue 29887585: Issue #5352 - generate_static_pages cannot deal with directories being turned into regular pages (Closed)
Patch Set: Addressed comments from Patch #1 Created Sept. 24, 2018, 4:05 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # This file is part of the Adblock Plus web scripts,
2 # Copyright (C) 2006-present eyeo GmbH
3 #
4 # Adblock Plus is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License version 3 as
6 # published by the Free Software Foundation.
7 #
8 # Adblock Plus is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
15
16 import os
17
18 import pytest
19
20
21 @pytest.fixture
22 def target_dir_with_file(tmpdir):
23 target_dir = tmpdir.mkdir('out_file').strpath
24 os.mkdir(os.path.join(target_dir, 'en'))
25
26 with open(os.path.join(target_dir, 'en', 'foo'), 'w') as f:
27 f.write('test\n')
28
29 yield target_dir
30
31
32 @pytest.fixture
33 def target_dir_with_dir(tmpdir):
34 target_dir = tmpdir.mkdir('out_dir').strpath
35 os.makedirs(os.path.join(target_dir, 'en', 'translate'))
36
37 yield target_dir
38
39
40 @pytest.fixture
41 def target_dir_with_fifo(tmpdir):
42 target_dir = tmpdir.mkdir('out_dir').strpath
43 os.mkdir(os.path.join(target_dir, 'en'))
44 os.mkfifo(os.path.join(target_dir, 'en', 'translate'))
45
46 yield target_dir
47
48
49 @pytest.mark.script_launch_mode('subprocess')
Vasily Kuznetsov 2018/09/27 11:05:07 As we've discussed, please try to convert these ge
Tudor Avram 2018/10/04 06:34:18 Done for first two tests. The last one requires so
50 def test_generate_dir_instead_of_file(temp_site, target_dir_with_file,
51 script_runner):
52 cmd = ['python', '-m', 'cms.bin.generate_static_pages', str(temp_site),
53 str(target_dir_with_file)]
54
55 script_runner.run(*cmd)
56
57 assert os.path.isdir(os.path.join(target_dir_with_file, 'en', 'foo'))
58
59
60 @pytest.mark.script_launch_mode('subprocess')
61 def test_generate_file_instead_of_dir(temp_site, target_dir_with_dir,
62 script_runner):
63 cmd = ['python', '-m', 'cms.bin.generate_static_pages', str(temp_site),
64 str(target_dir_with_dir)]
65
66 script_runner.run(*cmd)
67
68 print(os.listdir(target_dir_with_dir))
69
70 assert os.path.isfile(os.path.join(target_dir_with_dir, 'en', 'translate'))
71
72
73 @pytest.mark.script_launch_mode('subprocess')
74 def test_generate_fifo_instead_of_file(temp_site, target_dir_with_fifo,
75 script_runner):
Tudor Avram 2018/10/04 06:34:18 For this last test, I would have to mock sys.exit(
Vasily Kuznetsov 2018/10/05 09:40:43 You can catch SystemExit exception in this test. C
76 cmd = ['python', '-m', 'cms.bin.generate_static_pages', str(temp_site),
77 str(target_dir_with_fifo)]
78
79 ret = script_runner.run(*cmd)
80
81 print(ret.stderr)
82
83 assert not ret.success
84 assert 'It is neither a file, nor a directory!' in ret.stderr
OLDNEW

Powered by Google App Engine
This is Rietveld