diff options
Diffstat (limited to 'cros_utils/tiny_render_test.py')
-rwxr-xr-x | cros_utils/tiny_render_test.py | 341 |
1 files changed, 182 insertions, 159 deletions
diff --git a/cros_utils/tiny_render_test.py b/cros_utils/tiny_render_test.py index 114a1796..9c4d750b 100755 --- a/cros_utils/tiny_render_test.py +++ b/cros_utils/tiny_render_test.py @@ -1,12 +1,11 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# Copyright 2020 The Chromium OS Authors. All rights reserved. +# Copyright 2020 The ChromiumOS Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Tests for tiny_render.""" -from __future__ import print_function import unittest @@ -18,160 +17,184 @@ import tiny_render # shipped alongside the plain-text, the hope is that people won't have to # subject themselves to reading the HTML often. :) class Test(unittest.TestCase): - """Tests for tiny_render.""" - - def test_bold(self): - pieces = [ - tiny_render.Bold('hello'), - ', ', - tiny_render.Bold(['world', '!']), - ] - - self.assertEqual( - tiny_render.render_text_pieces(pieces), - '**hello**, **world!**', - ) - - self.assertEqual( - tiny_render.render_html_pieces(pieces), - '<b>hello</b>, <b>world!</b>', - ) - - def test_line_break(self): - pieces = [ - 'hello', - tiny_render.line_break, - ['world', '!'], - ] - - self.assertEqual( - tiny_render.render_text_pieces(pieces), - 'hello\nworld!', - ) - - self.assertEqual( - tiny_render.render_html_pieces(pieces), - 'hello<br />\nworld!', - ) - - def test_linkification(self): - pieces = [ - 'hello ', - tiny_render.Link(href='https://google.com', inner='world!'), - ] - - self.assertEqual( - tiny_render.render_text_pieces(pieces), - 'hello world!', - ) - - self.assertEqual( - tiny_render.render_html_pieces(pieces), - 'hello <a href="https://google.com">world!</a>', - ) - - def test_unordered_list(self): - pieces = [ - 'hello:', - tiny_render.UnorderedList([ - 'world', - 'w o r l d', - ]), - ] - - self.assertEqual( - tiny_render.render_text_pieces(pieces), - '\n'.join(( - 'hello:', - ' - world', - ' - w o r l d', - )), - ) - - self.assertEqual( - tiny_render.render_html_pieces(pieces), - '\n'.join(( - 'hello:<ul>', - '<li>world</li>', - '<li>w o r l d</li>', - '</ul>', - '', - )), - ) - - def test_nested_unordered_list(self): - pieces = [ - 'hello:', - tiny_render.UnorderedList([ - 'world', - ['and more:', tiny_render.UnorderedList(['w o r l d'])], - 'world2', - ]) - ] - - self.assertEqual( - tiny_render.render_text_pieces(pieces), - '\n'.join(( - 'hello:', - ' - world', - ' - and more:', - ' - w o r l d', - ' - world2', - )), - ) - - self.assertEqual( - tiny_render.render_html_pieces(pieces), - '\n'.join(( - 'hello:<ul>', - '<li>world</li>', - '<li>and more:<ul>', - '<li>w o r l d</li>', - '</ul>', - '</li>', - '<li>world2</li>', - '</ul>', - '', - )), - ) - - def test_switch(self): - pieces = ['hello ', tiny_render.Switch(text='text', html='html')] - self.assertEqual(tiny_render.render_text_pieces(pieces), 'hello text') - self.assertEqual(tiny_render.render_html_pieces(pieces), 'hello html') - - def test_golden(self): - pieces = [ - 'hello', - tiny_render.UnorderedList([ - tiny_render.Switch(text='text', html=tiny_render.Bold('html')), - 'the', - tiny_render.Bold('sun'), - ]), - tiny_render.line_break, - ['is', ' out!'], - ] - - self.assertEqual( - tiny_render.render_text_pieces(pieces), '\n'.join(( - 'hello', - ' - text', - ' - the', - ' - **sun**', - 'is out!', - ))) - - self.assertEqual( - tiny_render.render_html_pieces(pieces), '\n'.join(( - 'hello<ul>', - '<li><b>html</b></li>', - '<li>the</li>', - '<li><b>sun</b></li>', - '</ul>', - '<br />', - 'is out!', - ))) - - -if __name__ == '__main__': - unittest.main() + """Tests for tiny_render.""" + + def test_bold(self): + pieces = [ + tiny_render.Bold("hello"), + ", ", + tiny_render.Bold(["world", "!"]), + ] + + self.assertEqual( + tiny_render.render_text_pieces(pieces), + "**hello**, **world!**", + ) + + self.assertEqual( + tiny_render.render_html_pieces(pieces), + "<b>hello</b>, <b>world!</b>", + ) + + def test_line_break(self): + pieces = [ + "hello", + tiny_render.line_break, + ["world", "!"], + ] + + self.assertEqual( + tiny_render.render_text_pieces(pieces), + "hello\nworld!", + ) + + self.assertEqual( + tiny_render.render_html_pieces(pieces), + "hello<br />\nworld!", + ) + + def test_linkification(self): + pieces = [ + "hello ", + tiny_render.Link(href="https://google.com", inner="world!"), + ] + + self.assertEqual( + tiny_render.render_text_pieces(pieces), + "hello world!", + ) + + self.assertEqual( + tiny_render.render_html_pieces(pieces), + 'hello <a href="https://google.com">world!</a>', + ) + + def test_unordered_list(self): + pieces = [ + "hello:", + tiny_render.UnorderedList( + [ + "world", + "w o r l d", + ] + ), + ] + + self.assertEqual( + tiny_render.render_text_pieces(pieces), + "\n".join( + ( + "hello:", + " - world", + " - w o r l d", + ) + ), + ) + + self.assertEqual( + tiny_render.render_html_pieces(pieces), + "\n".join( + ( + "hello:<ul>", + "<li>world</li>", + "<li>w o r l d</li>", + "</ul>", + "", + ) + ), + ) + + def test_nested_unordered_list(self): + pieces = [ + "hello:", + tiny_render.UnorderedList( + [ + "world", + ["and more:", tiny_render.UnorderedList(["w o r l d"])], + "world2", + ] + ), + ] + + self.assertEqual( + tiny_render.render_text_pieces(pieces), + "\n".join( + ( + "hello:", + " - world", + " - and more:", + " - w o r l d", + " - world2", + ) + ), + ) + + self.assertEqual( + tiny_render.render_html_pieces(pieces), + "\n".join( + ( + "hello:<ul>", + "<li>world</li>", + "<li>and more:<ul>", + "<li>w o r l d</li>", + "</ul>", + "</li>", + "<li>world2</li>", + "</ul>", + "", + ) + ), + ) + + def test_switch(self): + pieces = ["hello ", tiny_render.Switch(text="text", html="html")] + self.assertEqual(tiny_render.render_text_pieces(pieces), "hello text") + self.assertEqual(tiny_render.render_html_pieces(pieces), "hello html") + + def test_golden(self): + pieces = [ + "hello", + tiny_render.UnorderedList( + [ + tiny_render.Switch( + text="text", html=tiny_render.Bold("html") + ), + "the", + tiny_render.Bold("sun"), + ] + ), + tiny_render.line_break, + ["is", " out!"], + ] + + self.assertEqual( + tiny_render.render_text_pieces(pieces), + "\n".join( + ( + "hello", + " - text", + " - the", + " - **sun**", + "is out!", + ) + ), + ) + + self.assertEqual( + tiny_render.render_html_pieces(pieces), + "\n".join( + ( + "hello<ul>", + "<li><b>html</b></li>", + "<li>the</li>", + "<li><b>sun</b></li>", + "</ul>", + "<br />", + "is out!", + ) + ), + ) + + +if __name__ == "__main__": + unittest.main() |