Skip to content

Commit 199265a

Browse files
committed
Switch render_patterns to do most of its logging to stderr
1 parent b941133 commit 199265a

File tree

3 files changed

+31
-28
lines changed

3 files changed

+31
-28
lines changed

pattern_library/management/commands/render_patterns.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def handle(self, **options):
3939
request = factory.get('/')
4040

4141
if self.verbosity >= 2:
42-
self.stdout.write(f'Target directory: {self.output_dir}')
42+
self.stderr.write(f'Target directory: {self.output_dir}')
4343

4444
# Resolve the output dir according to the directory the command is run from.
4545
parent_dir = Path.cwd().joinpath(self.output_dir)
@@ -52,9 +52,9 @@ def handle(self, **options):
5252
def render_group(self, request, parent_dir: Path, pattern_templates):
5353
for template in pattern_templates['templates_stored']:
5454
if self.verbosity >= 2:
55-
self.stdout.write(f'Pattern: {template.pattern_name}')
55+
self.stderr.write(f'Pattern: {template.pattern_name}')
5656
if self.verbosity >= 1:
57-
self.stdout.write(template.origin.template_name)
57+
self.stderr.write(template.origin.template_name)
5858

5959
render_path = parent_dir.joinpath(template.pattern_name)
6060
rendered_pattern = render_pattern(request, template.origin.template_name)
@@ -70,7 +70,7 @@ def render_group(self, request, parent_dir: Path, pattern_templates):
7070

7171
for pattern_type_group, pattern_templates in pattern_templates['template_groups'].items():
7272
if self.verbosity >= 2:
73-
self.stdout.write(f'Group: {pattern_type_group}')
73+
self.stderr.write(f'Group: {pattern_type_group}')
7474
group_parent = parent_dir.joinpath(pattern_type_group)
7575
if not self.dry_run:
7676
group_parent.mkdir(exist_ok=True)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
context:
2+
name: close

tests/tests/test_commands.py

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,40 +13,39 @@ class RenderPatternsTests(SimpleTestCase):
1313

1414
def test_displays_patterns(self):
1515
stdout = io.StringIO()
16-
call_command('render_patterns', dry_run=True, stdout=stdout)
17-
stdout = stdout.getvalue()
16+
stderr = io.StringIO()
17+
call_command('render_patterns', dry_run=True, stdout=stdout, stderr=stderr)
1818
self.assertIn("""patterns/atoms/tags_test_atom/tags_test_atom.html
1919
patterns/atoms/test_atom/test_atom.html
20-
""", stdout)
20+
""", stderr.getvalue())
2121

2222
def test_verbose_output(self):
2323
stdout = io.StringIO()
24-
call_command('render_patterns', dry_run=True, stdout=stdout, verbosity=2)
25-
stdout = stdout.getvalue()
24+
stderr = io.StringIO()
25+
call_command('render_patterns', dry_run=True, stdout=stdout, stderr=stderr, verbosity=2)
2626
self.assertIn("""Target directory: dpl-rendered-patterns
2727
Group: atoms
28-
Group: tags_test_atom
29-
Pattern: tags_test_atom.html
30-
patterns/atoms/tags_test_atom/tags_test_atom.html
31-
32-
33-
SANDWICH
34-
SANDNoneWICH
35-
SAND0WICH
36-
""", stdout)
28+
Group: icons
29+
Pattern: icon.html
30+
patterns/atoms/icons/icon.html
31+
""", stderr.getvalue())
32+
self.assertIn("""<svg class="icon icon--close" aria-hidden="true" focusable="false">
33+
<use xlink:href="#close"></use>
34+
</svg>""", stdout.getvalue())
3735

3836
def test_quiet_output(self):
3937
stdout = io.StringIO()
40-
call_command('render_patterns', dry_run=True, stdout=stdout, verbosity=0)
41-
stdout = stdout.getvalue()
42-
self.assertEqual(stdout, '')
38+
stderr = io.StringIO()
39+
call_command('render_patterns', dry_run=True, stdout=stdout, stderr=stderr, verbosity=0)
40+
self.assertEqual(stdout.getvalue(), '')
41+
self.assertEqual(stderr.getvalue(), '')
4342

4443
def test_shows_output_folder(self):
4544
stdout = io.StringIO()
45+
stderr = io.StringIO()
4646
temp = tempfile.gettempdir()
47-
call_command('render_patterns', dry_run=True, stdout=stdout, output=temp, verbosity=2)
48-
stdout = stdout.getvalue()
49-
self.assertIn(temp, stdout)
47+
call_command('render_patterns', dry_run=True, stdout=stdout, stderr=stderr, output=temp, verbosity=2)
48+
self.assertIn(temp, stderr.getvalue())
5049

5150

5251
class RenderPatternsFileSystemTests(SimpleTestCase):
@@ -60,19 +59,21 @@ def tearDown(self):
6059

6160
def test_uses_output(self):
6261
stdout = io.StringIO()
62+
stderr = io.StringIO()
6363
modification_time_before = Path(self.output).stat().st_mtime
64-
call_command('render_patterns', dry_run=False, stdout=stdout, output=self.output)
64+
call_command('render_patterns', dry_run=False, stdout=stdout, stderr=stderr, output=self.output)
6565
self.assertNotEqual(Path(self.output).stat().st_mtime, modification_time_before)
66-
stdout = stdout.getvalue()
6766

6867
def test_uses_subfolders(self):
6968
stdout = io.StringIO()
70-
call_command('render_patterns', dry_run=False, stdout=stdout, output=self.output)
69+
stderr = io.StringIO()
70+
call_command('render_patterns', dry_run=False, stdout=stdout, stderr=stderr, output=self.output)
7171
subfolders = Path(self.output).iterdir()
7272
self.assertIn('atoms', [p.name for p in subfolders])
7373

7474
def test_outputs_html(self):
7575
stdout = io.StringIO()
76-
call_command('render_patterns', dry_run=False, stdout=stdout, output=self.output)
76+
stderr = io.StringIO()
77+
call_command('render_patterns', dry_run=False, stdout=stdout, stderr=stderr, output=self.output)
7778
html_files = Path(self.output).glob('**/*.html')
7879
self.assertIn('test_atom.html', [p.name for p in html_files])

0 commit comments

Comments
 (0)