summaryrefslogtreecommitdiff
path: root/docs/sphinx/hieroglyph/test
diff options
context:
space:
mode:
Diffstat (limited to 'docs/sphinx/hieroglyph/test')
-rw-r--r--docs/sphinx/hieroglyph/test/__init__.py1
-rw-r--r--docs/sphinx/hieroglyph/test/test_hierglyph.py528
-rw-r--r--docs/sphinx/hieroglyph/test/test_nodes.py772
3 files changed, 650 insertions, 651 deletions
diff --git a/docs/sphinx/hieroglyph/test/__init__.py b/docs/sphinx/hieroglyph/test/__init__.py
index fd249423f2..c9b674ead2 100644
--- a/docs/sphinx/hieroglyph/test/__init__.py
+++ b/docs/sphinx/hieroglyph/test/__init__.py
@@ -1,2 +1 @@
__author__ = 'rjs'
- \ No newline at end of file
diff --git a/docs/sphinx/hieroglyph/test/test_hierglyph.py b/docs/sphinx/hieroglyph/test/test_hierglyph.py
index 42947cb0c7..4f86db5784 100644
--- a/docs/sphinx/hieroglyph/test/test_hierglyph.py
+++ b/docs/sphinx/hieroglyph/test/test_hierglyph.py
@@ -1,264 +1,264 @@
-import unittest
-from hieroglyph.hieroglyph import first_paragraph_indent, gather_lines, unindent
-
-__author__ = 'Robert Smallshire'
-
-class UnindentTests(unittest.TestCase):
-
- def test_zero_lines(self):
- source = []
- expected = []
- actual = unindent(source)
- self.assertEqual(actual, expected)
-
- def test_one_zero_indent_line(self):
- source = ["First line"]
- expected = [(0, "First line")]
- actual = unindent(source)
- self.assertEqual(actual, expected)
-
- def test_two_zero_indent_lines(self):
- source = ["First line",
- "Second line"]
- expected = [(0, "First line"),
- (0, "Second line")]
- actual = unindent(source)
- self.assertEqual(actual, expected)
-
- def test_two_indented_lines(self):
- source = [" First line",
- " Second line"]
- expected = [(4, "First line"),
- (6, "Second line")]
- actual = unindent(source)
- self.assertEqual(actual, expected)
-
- def test_whitespace_line(self):
- source = [" "]
- expected = [(4, "")]
- actual = unindent(source)
- self.assertEqual(actual, expected)
-
- def test_tab_line(self):
- source = ["\tHello"]
- expected = [(1, "Hello")]
- actual = unindent(source)
- self.assertEqual(actual, expected)
-
-
-class FirstParagraphIndentTests(unittest.TestCase):
-
- def test_zero_lines(self):
- source = []
- expected = []
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_single_line_non_indented_comment(self):
- source = [(0, "A single line comment")]
- expected = [(0, "A single line comment")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_single_line_indented_comment(self):
- source = [(4, "A single line comment")]
- expected = [(4, "A single line comment")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_double_line_non_indented_comment(self):
- source = [(0, "The first line"),
- (0, "The second line")]
- expected = [(0, "The first line"),
- (0, "The second line")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_double_line_indented_comment(self):
- source = [(4, "The first line"),
- (4, "The second line")]
- expected = [(4, "The first line"),
- (4, "The second line")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_first_line_indent(self):
- source = [(4, "The first line"),
- (0, "The second line")]
- expected = [(4, "The first line"),
- (0, "The second line")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_first_line_non_indent(self):
- source = [(0, "The first line"),
- (4, "The second line")]
- expected = [(4, "The first line"),
- (4, "The second line")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_increasing_indent(self):
- source = [(0, "The first line"),
- (4, "The second line"),
- (8, "The third line")]
- expected = [(4, "The first line"),
- (4, "The second line"),
- (8, "The third line")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_separate_paragraphs(self):
- source = [(0, "This is the first paragraph"),
- (0, ""),
- (4, "This is the second paragraph")]
- expected = [(0, "This is the first paragraph"),
- (0, ""),
- (4, "This is the second paragraph")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_separate_paragraphs_indented(self):
- source = [(4, "This is the first paragraph"),
- (4, ""),
- (8, "This is the second paragraph")]
- expected = [(4, "This is the first paragraph"),
- (4, ""),
- (8, "This is the second paragraph")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_separated_lines_first_line_non_indented(self):
- source = [(0, "The first line"),
- (0, ""),
- (4, "The third line")]
- expected = [(0, "The first line"),
- (0, ""),
- (4, "The third line")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
- def test_separated_lines_first_line_indented(self):
- source = [(4, "The first line"),
- (4, ""),
- (4, "The third line")]
- expected = [(4, "The first line"),
- (4, ""),
- (4, "The third line")]
- actual = first_paragraph_indent(source)
- self.assertEqual(actual, expected)
-
-class GatherLinesTests(unittest.TestCase):
-
- def test_empty(self):
- source = []
- expected = []
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_one_liner(self):
- source = [(0, 'One liner')]
- expected = [(0, ['One liner'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_two_liner(self):
- source = [(0, 'First line'),
- (0, 'Second line')]
- expected = [(0, ['First line',
- 'Second line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_separated_lines(self):
- source = [(0, 'First line'),
- (0, ''),
- (0, 'Third line')]
- expected = [(0, ['First line',
- '']),
- (0, ['Third line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_separated_multi_lines(self):
- source = [(0, 'First line'),
- (0, 'Second line'),
- (0, ''),
- (0, 'Fourth line'),
- (0, 'Fifth line')]
- expected = [(0, ['First line',
- 'Second line',
- '']),
- (0, ['Fourth line',
- 'Fifth line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
-
- def test_indented_lines(self):
- source = [(0, 'First line'),
- (4, 'Second line')]
- expected = [(0, ['First line']),
- (4, ['Second line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_dedented_lines(self):
- source = [(4, 'First line'),
- (0, 'Second line')]
- expected = [(4, ['First line']),
- (0, ['Second line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_indented_multi_lines(self):
- source = [(0, 'First line'),
- (0, 'Second line'),
- (4, 'Third line'),
- (4, 'Fourth line')]
- expected = [(0, ['First line',
- 'Second line']),
- (4, ['Third line',
- 'Fourth line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_dedented_multi_lines(self):
- source = [(4, 'First line'),
- (4, 'Second line'),
- (0, 'Third line'),
- (0, 'Fourth line')]
- expected = [(4, ['First line',
- 'Second line']),
- (0, ['Third line',
- 'Fourth line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_indented_separated_multi_lines(self):
- source = [(0, 'First line'),
- (0, 'Second line'),
- (0, ''),
- (4, 'Fourth line'),
- (4, 'Fifth line')]
- expected = [(0, ['First line',
- 'Second line',
- '']),
- (4, ['Fourth line',
- 'Fifth line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
-
- def test_dedented_separated_multi_lines(self):
- source = [(4, 'First line'),
- (4, 'Second line'),
- (4, ''),
- (0, 'Fourth line'),
- (0, 'Fifth line')]
- expected = [(4, ['First line',
- 'Second line',
- '']),
- (0, ['Fourth line',
- 'Fifth line'])]
- actual = gather_lines(source)
- self.assertEqual(actual, expected)
+import unittest
+from hieroglyph.hieroglyph import first_paragraph_indent, gather_lines, unindent
+
+__author__ = 'Robert Smallshire'
+
+class UnindentTests(unittest.TestCase):
+
+ def test_zero_lines(self):
+ source = []
+ expected = []
+ actual = unindent(source)
+ self.assertEqual(actual, expected)
+
+ def test_one_zero_indent_line(self):
+ source = ["First line"]
+ expected = [(0, "First line")]
+ actual = unindent(source)
+ self.assertEqual(actual, expected)
+
+ def test_two_zero_indent_lines(self):
+ source = ["First line",
+ "Second line"]
+ expected = [(0, "First line"),
+ (0, "Second line")]
+ actual = unindent(source)
+ self.assertEqual(actual, expected)
+
+ def test_two_indented_lines(self):
+ source = [" First line",
+ " Second line"]
+ expected = [(4, "First line"),
+ (6, "Second line")]
+ actual = unindent(source)
+ self.assertEqual(actual, expected)
+
+ def test_whitespace_line(self):
+ source = [" "]
+ expected = [(4, "")]
+ actual = unindent(source)
+ self.assertEqual(actual, expected)
+
+ def test_tab_line(self):
+ source = ["\tHello"]
+ expected = [(1, "Hello")]
+ actual = unindent(source)
+ self.assertEqual(actual, expected)
+
+
+class FirstParagraphIndentTests(unittest.TestCase):
+
+ def test_zero_lines(self):
+ source = []
+ expected = []
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_single_line_non_indented_comment(self):
+ source = [(0, "A single line comment")]
+ expected = [(0, "A single line comment")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_single_line_indented_comment(self):
+ source = [(4, "A single line comment")]
+ expected = [(4, "A single line comment")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_double_line_non_indented_comment(self):
+ source = [(0, "The first line"),
+ (0, "The second line")]
+ expected = [(0, "The first line"),
+ (0, "The second line")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_double_line_indented_comment(self):
+ source = [(4, "The first line"),
+ (4, "The second line")]
+ expected = [(4, "The first line"),
+ (4, "The second line")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_first_line_indent(self):
+ source = [(4, "The first line"),
+ (0, "The second line")]
+ expected = [(4, "The first line"),
+ (0, "The second line")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_first_line_non_indent(self):
+ source = [(0, "The first line"),
+ (4, "The second line")]
+ expected = [(4, "The first line"),
+ (4, "The second line")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_increasing_indent(self):
+ source = [(0, "The first line"),
+ (4, "The second line"),
+ (8, "The third line")]
+ expected = [(4, "The first line"),
+ (4, "The second line"),
+ (8, "The third line")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_separate_paragraphs(self):
+ source = [(0, "This is the first paragraph"),
+ (0, ""),
+ (4, "This is the second paragraph")]
+ expected = [(0, "This is the first paragraph"),
+ (0, ""),
+ (4, "This is the second paragraph")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_separate_paragraphs_indented(self):
+ source = [(4, "This is the first paragraph"),
+ (4, ""),
+ (8, "This is the second paragraph")]
+ expected = [(4, "This is the first paragraph"),
+ (4, ""),
+ (8, "This is the second paragraph")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_separated_lines_first_line_non_indented(self):
+ source = [(0, "The first line"),
+ (0, ""),
+ (4, "The third line")]
+ expected = [(0, "The first line"),
+ (0, ""),
+ (4, "The third line")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+ def test_separated_lines_first_line_indented(self):
+ source = [(4, "The first line"),
+ (4, ""),
+ (4, "The third line")]
+ expected = [(4, "The first line"),
+ (4, ""),
+ (4, "The third line")]
+ actual = first_paragraph_indent(source)
+ self.assertEqual(actual, expected)
+
+class GatherLinesTests(unittest.TestCase):
+
+ def test_empty(self):
+ source = []
+ expected = []
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_one_liner(self):
+ source = [(0, 'One liner')]
+ expected = [(0, ['One liner'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_two_liner(self):
+ source = [(0, 'First line'),
+ (0, 'Second line')]
+ expected = [(0, ['First line',
+ 'Second line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_separated_lines(self):
+ source = [(0, 'First line'),
+ (0, ''),
+ (0, 'Third line')]
+ expected = [(0, ['First line',
+ '']),
+ (0, ['Third line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_separated_multi_lines(self):
+ source = [(0, 'First line'),
+ (0, 'Second line'),
+ (0, ''),
+ (0, 'Fourth line'),
+ (0, 'Fifth line')]
+ expected = [(0, ['First line',
+ 'Second line',
+ '']),
+ (0, ['Fourth line',
+ 'Fifth line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+
+ def test_indented_lines(self):
+ source = [(0, 'First line'),
+ (4, 'Second line')]
+ expected = [(0, ['First line']),
+ (4, ['Second line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_dedented_lines(self):
+ source = [(4, 'First line'),
+ (0, 'Second line')]
+ expected = [(4, ['First line']),
+ (0, ['Second line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_indented_multi_lines(self):
+ source = [(0, 'First line'),
+ (0, 'Second line'),
+ (4, 'Third line'),
+ (4, 'Fourth line')]
+ expected = [(0, ['First line',
+ 'Second line']),
+ (4, ['Third line',
+ 'Fourth line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_dedented_multi_lines(self):
+ source = [(4, 'First line'),
+ (4, 'Second line'),
+ (0, 'Third line'),
+ (0, 'Fourth line')]
+ expected = [(4, ['First line',
+ 'Second line']),
+ (0, ['Third line',
+ 'Fourth line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_indented_separated_multi_lines(self):
+ source = [(0, 'First line'),
+ (0, 'Second line'),
+ (0, ''),
+ (4, 'Fourth line'),
+ (4, 'Fifth line')]
+ expected = [(0, ['First line',
+ 'Second line',
+ '']),
+ (4, ['Fourth line',
+ 'Fifth line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
+
+ def test_dedented_separated_multi_lines(self):
+ source = [(4, 'First line'),
+ (4, 'Second line'),
+ (4, ''),
+ (0, 'Fourth line'),
+ (0, 'Fifth line')]
+ expected = [(4, ['First line',
+ 'Second line',
+ '']),
+ (0, ['Fourth line',
+ 'Fifth line'])]
+ actual = gather_lines(source)
+ self.assertEqual(actual, expected)
diff --git a/docs/sphinx/hieroglyph/test/test_nodes.py b/docs/sphinx/hieroglyph/test/test_nodes.py
index 4cc17b4771..12cd25a03e 100644
--- a/docs/sphinx/hieroglyph/test/test_nodes.py
+++ b/docs/sphinx/hieroglyph/test/test_nodes.py
@@ -1,386 +1,386 @@
-import unittest
-from hieroglyph.nodes import Node, Arg, Raises, Except, Returns, Warning, Note
-
-__author__ = 'Robert Smallshire'
-
-class NodeTests(unittest.TestCase):
-
- def test_create_default_node(self):
- node = Node()
- self.assertEqual(node.indent, 0)
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_create_with_indent(self):
- node = Node(indent=4)
- self.assertEqual(node.indent, 4)
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_create_with_lines(self):
- node = Node(lines= ['First', 'Second', 'Third'])
- self.assertEqual(node.indent, 0)
- self.assertEqual(node.lines, ['First', 'Second', 'Third'])
- self.assertIsNone(node.parent)
-
- def test_repr(self):
- node = Node(5, ['One', 'Two', 'Three'])
- actual = repr(node)
- expected = "Node(5, ['One', 'Two', 'Three'], children=[])"
- self.assertEqual(expected, actual)
-
- def test_add_one_child(self):
- node = Node()
- child = Node(parent=node)
- node.add_child(child)
- self.assertIs(node.children[0], child)
-
- def test_add_two_children(self):
- node = Node()
- child0 = Node(parent=node)
- child1 = Node(parent=node)
- node.add_child(child0)
- node.add_child(child1)
- self.assertIs(node.children[0], child0)
- self.assertIs(node.children[1], child1)
-
- def test_render_rst_empty(self):
- node = Node()
- rst = node.render_rst()
- self.assertEqual(len(rst), 0)
-
- def test_render_rst_indent(self):
- node = Node(indent=4)
- rst = node.render_rst()
- self.assertEqual(len(rst), 0)
-
- def test_render_rst_lines(self):
- node = Node(lines= ['First',
- 'Second',
- 'Third'])
- rst = node.render_rst()
- self.assertEqual(rst, ['First',
- 'Second',
- 'Third'])
-
- def test_render_rst_indented_lines(self):
- node = Node(indent=3, lines= ['First',
- 'Second',
- 'Third'])
- rst = node.render_rst()
- self.assertEqual(rst, [' First',
- ' Second',
- ' Third'])
-
- def test_render_rst_with_child(self):
- node = Node(indent=4, lines=["Parent"])
- child = Node(indent=8, lines=["Child"], parent=node)
- node.add_child(child)
- rst = node.render_rst()
- self.assertEqual(rst, [' Parent',
- ' Child'])
-
- def test_render_rst_with_children(self):
- node = Node(indent=4, lines=["Parent"])
- child_a = Node(indent=8, lines=["ChildA"], parent=node)
- node.add_child(child_a)
- child_b = Node(indent=6, lines=["ChildB"], parent=node)
- node.add_child(child_b)
- rst = node.render_rst()
- self.assertEqual(rst, [' Parent',
- ' ChildA',
- ' ChildB'])
-
-
-class ArgTests(unittest.TestCase):
-
- def test_create(self):
- node = Arg(5, 10, 'foo')
- self.assertEqual(node.indent, 5)
- self.assertEqual(node.child_indent, 10)
- self.assertEqual(node.name, 'foo')
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_set_type(self):
- node = Arg(5, 10, 'foo')
- node.type = 'str'
- self.assertEqual(node.type, 'str')
-
- def test_add_one_child(self):
- node = Arg(5, 10, 'foo')
- child = Node(parent=node)
- node.add_child(child)
- self.assertIs(node.children[0], child)
-
- def test_add_two_children(self):
- node = Arg(5, 10, 'foo')
- child0 = Node(parent=node)
- child1 = Node(parent=node)
- node.add_child(child0)
- node.add_child(child1)
- self.assertIs(node.children[0], child0)
- self.assertIs(node.children[1], child1)
-
- def test_repr(self):
- node = Arg(5, 10, 'foo')
- actual = repr(node)
- expected = "Arg('foo', None, children=[])"
- self.assertEqual(expected, actual)
-
- def test_render_rst_empty(self):
- node = Arg(5, 10, 'bar')
- rst = node.render_rst()
- self.assertEqual(rst, [' :param bar: ',
- ''])
-
- def test_render_rst_with_child(self):
- node = Arg(5, 10, 'bar')
- child = Node(indent=10, lines=["Description"], parent=node)
- node.add_child(child)
- rst = node.render_rst()
- self.assertEqual(rst, [' :param bar: Description',
- ''])
-
- def test_render_rst_with_children(self):
- node = Arg(5, 10, 'bar')
- child_a = Node(indent=10, lines=["ChildA"], parent=node)
- node.add_child(child_a)
- child_b = Node(indent=10, lines=["ChildB"], parent=node)
- node.add_child(child_b)
- rst = node.render_rst()
- self.assertEqual(rst, [' :param bar: ChildA',
- ' ChildB',
- ''])
-
- def test_render_rst_with_type(self):
- node = Arg(5, 10, 'bar')
- node.type = 'str'
- rst = node.render_rst()
- self.assertEqual(rst, [' :param bar: ',
- ' :type bar: str',
- ''])
-
-
-class RaisesTests(unittest.TestCase):
-
- def test_create_default_node(self):
- node = Raises()
- self.assertEqual(node.indent, 0)
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_create_with_indent(self):
- node = Raises(indent=4)
- self.assertEqual(node.indent, 4)
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_repr(self):
- node = Raises(5)
- actual = repr(node)
- expected = "Raises(5, children=[])"
- self.assertEqual(expected, actual)
-
- def test_add_one_child(self):
- node = Raises()
- child = Node(parent=node)
- node.add_child(child)
- self.assertIs(node.children[0], child)
-
- def test_add_two_children(self):
- node = Raises()
- child0 = Node(parent=node)
- child1 = Node(parent=node)
- node.add_child(child0)
- node.add_child(child1)
- self.assertIs(node.children[0], child0)
- self.assertIs(node.children[1], child1)
-
- def test_render_rst_empty(self):
- node = Raises()
- rst = node.render_rst()
- self.assertEqual(rst, [':raises:',
- ''])
-
- def test_render_rst_indent(self):
- node = Raises(indent=5)
- rst = node.render_rst()
- self.assertEqual(rst, [' :raises:',
- ''])
-
- def test_render_rst_with_child(self):
- node = Raises(5)
- child = Node(indent=10, lines=["Description"], parent=node)
- node.add_child(child)
- rst = node.render_rst()
- self.assertEqual(rst, [' :raises:',
- ' Description',
- ''])
-
- def test_render_rst_with_children(self):
- node = Raises(5)
- child_a = Node(indent=10, lines=["ChildA"], parent=node)
- node.add_child(child_a)
- child_b = Node(indent=10, lines=["ChildB"], parent=node)
- node.add_child(child_b)
- rst = node.render_rst()
- self.assertEqual(rst, [' :raises:',
- ' ChildA',
- ' ChildB',
- ''])
-
-
-class ExceptTests(unittest.TestCase):
-
- def test_create(self):
- node = Except(5, 'FooError')
- self.assertEqual(node.indent, 5)
- self.assertEqual(node.type, 'FooError')
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_add_one_child(self):
- node = Except(5, 'FooError')
- child = Node(parent=node)
- node.add_child(child)
- self.assertIs(node.children[0], child)
-
- def test_add_two_children(self):
- node = Except(5, 'FooError')
- child0 = Node(parent=node)
- child1 = Node(parent=node)
- node.add_child(child0)
- node.add_child(child1)
- self.assertIs(node.children[0], child0)
- self.assertIs(node.children[1], child1)
-
- def test_repr(self):
- node = Except(5,'FooError')
- actual = repr(node)
- expected = "Except('FooError', children=[])"
- self.assertEqual(expected, actual)
-
- def test_render_rst_empty(self):
- node = Except(5, 'FooError')
- rst = node.render_rst()
- self.assertEqual(rst, [' * FooError - ',
- ''])
-
- def test_render_rst_indent(self):
- node = Except(5, 'FooError')
- rst = node.render_rst()
- self.assertEqual(rst, [' * FooError - ',
- ''])
-
- def test_render_rst_with_child(self):
- node = Except(5, 'FooError')
- child = Node(indent=10, lines=["Description"], parent=node)
- node.add_child(child)
- rst = node.render_rst()
- self.assertEqual(rst, [' * FooError - Description',
- ''])
-
- def test_render_rst_with_children(self):
- node = Except(5, 'FooError')
- child_a = Node(indent=10, lines=["ChildA"], parent=node)
- node.add_child(child_a)
- child_b = Node(indent=10, lines=["ChildB"], parent=node)
- node.add_child(child_b)
- rst = node.render_rst()
- self.assertEqual(rst, [' * FooError - ChildA',
- ' ChildB',
- ''])
-
-class ReturnsTests(unittest.TestCase):
-
- def test_create(self):
- node = Returns(5)
- self.assertEqual(node.indent, 5)
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_add_one_child(self):
- node = Returns(5)
- child = Node(parent=node)
- node.add_child(child)
- self.assertIs(node.children[0], child)
-
- def test_add_two_children(self):
- node = Returns(5)
- child0 = Node(parent=node)
- child1 = Node(parent=node)
- node.add_child(child0)
- node.add_child(child1)
- self.assertIs(node.children[0], child0)
- self.assertIs(node.children[1], child1)
-
- def test_repr(self):
- node = Returns(5)
- actual = repr(node)
- expected = "Returns(5, children=[])"
- self.assertEqual(expected, actual)
-
- # TODO test_render_rst
-
-class WarningTests(unittest.TestCase):
-
- def test_create(self):
- node = Warning(5)
- self.assertEqual(node.indent, 5)
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_add_one_child(self):
- node = Warning(5)
- child = Node(parent=node)
- node.add_child(child)
- self.assertIs(node.children[0], child)
-
- def test_add_two_children(self):
- node = Warning(5)
- child0 = Node(parent=node)
- child1 = Node(parent=node)
- node.add_child(child0)
- node.add_child(child1)
- self.assertIs(node.children[0], child0)
- self.assertIs(node.children[1], child1)
-
- def test_repr(self):
- node = Warning(5)
- actual = repr(node)
- expected = "Warning(5, children=[])"
- self.assertEqual(expected, actual)
-
- # TODO test_render_rst
-
-class NoteTests(unittest.TestCase):
-
- def test_create(self):
- node = Note(5)
- self.assertEqual(node.indent, 5)
- self.assertEqual(node.lines, [])
- self.assertIsNone(node.parent)
-
- def test_add_one_child(self):
- node = Note(5)
- child = Node(parent=node)
- node.add_child(child)
- self.assertIs(node.children[0], child)
-
- def test_add_two_children(self):
- node = Note(5)
- child0 = Node(parent=node)
- child1 = Node(parent=node)
- node.add_child(child0)
- node.add_child(child1)
- self.assertIs(node.children[0], child0)
- self.assertIs(node.children[1], child1)
-
- def test_repr(self):
- node = Note(5)
- actual = repr(node)
- expected = "Note(5, children=[])"
- self.assertEqual(expected, actual)
-
- # TODO test_render_rst
+import unittest
+from hieroglyph.nodes import Node, Arg, Raises, Except, Returns, Warning, Note
+
+__author__ = 'Robert Smallshire'
+
+class NodeTests(unittest.TestCase):
+
+ def test_create_default_node(self):
+ node = Node()
+ self.assertEqual(node.indent, 0)
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_create_with_indent(self):
+ node = Node(indent=4)
+ self.assertEqual(node.indent, 4)
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_create_with_lines(self):
+ node = Node(lines= ['First', 'Second', 'Third'])
+ self.assertEqual(node.indent, 0)
+ self.assertEqual(node.lines, ['First', 'Second', 'Third'])
+ self.assertIsNone(node.parent)
+
+ def test_repr(self):
+ node = Node(5, ['One', 'Two', 'Three'])
+ actual = repr(node)
+ expected = "Node(5, ['One', 'Two', 'Three'], children=[])"
+ self.assertEqual(expected, actual)
+
+ def test_add_one_child(self):
+ node = Node()
+ child = Node(parent=node)
+ node.add_child(child)
+ self.assertIs(node.children[0], child)
+
+ def test_add_two_children(self):
+ node = Node()
+ child0 = Node(parent=node)
+ child1 = Node(parent=node)
+ node.add_child(child0)
+ node.add_child(child1)
+ self.assertIs(node.children[0], child0)
+ self.assertIs(node.children[1], child1)
+
+ def test_render_rst_empty(self):
+ node = Node()
+ rst = node.render_rst()
+ self.assertEqual(len(rst), 0)
+
+ def test_render_rst_indent(self):
+ node = Node(indent=4)
+ rst = node.render_rst()
+ self.assertEqual(len(rst), 0)
+
+ def test_render_rst_lines(self):
+ node = Node(lines= ['First',
+ 'Second',
+ 'Third'])
+ rst = node.render_rst()
+ self.assertEqual(rst, ['First',
+ 'Second',
+ 'Third'])
+
+ def test_render_rst_indented_lines(self):
+ node = Node(indent=3, lines= ['First',
+ 'Second',
+ 'Third'])
+ rst = node.render_rst()
+ self.assertEqual(rst, [' First',
+ ' Second',
+ ' Third'])
+
+ def test_render_rst_with_child(self):
+ node = Node(indent=4, lines=["Parent"])
+ child = Node(indent=8, lines=["Child"], parent=node)
+ node.add_child(child)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' Parent',
+ ' Child'])
+
+ def test_render_rst_with_children(self):
+ node = Node(indent=4, lines=["Parent"])
+ child_a = Node(indent=8, lines=["ChildA"], parent=node)
+ node.add_child(child_a)
+ child_b = Node(indent=6, lines=["ChildB"], parent=node)
+ node.add_child(child_b)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' Parent',
+ ' ChildA',
+ ' ChildB'])
+
+
+class ArgTests(unittest.TestCase):
+
+ def test_create(self):
+ node = Arg(5, 10, 'foo')
+ self.assertEqual(node.indent, 5)
+ self.assertEqual(node.child_indent, 10)
+ self.assertEqual(node.name, 'foo')
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_set_type(self):
+ node = Arg(5, 10, 'foo')
+ node.type = 'str'
+ self.assertEqual(node.type, 'str')
+
+ def test_add_one_child(self):
+ node = Arg(5, 10, 'foo')
+ child = Node(parent=node)
+ node.add_child(child)
+ self.assertIs(node.children[0], child)
+
+ def test_add_two_children(self):
+ node = Arg(5, 10, 'foo')
+ child0 = Node(parent=node)
+ child1 = Node(parent=node)
+ node.add_child(child0)
+ node.add_child(child1)
+ self.assertIs(node.children[0], child0)
+ self.assertIs(node.children[1], child1)
+
+ def test_repr(self):
+ node = Arg(5, 10, 'foo')
+ actual = repr(node)
+ expected = "Arg('foo', None, children=[])"
+ self.assertEqual(expected, actual)
+
+ def test_render_rst_empty(self):
+ node = Arg(5, 10, 'bar')
+ rst = node.render_rst()
+ self.assertEqual(rst, [' :param bar: ',
+ ''])
+
+ def test_render_rst_with_child(self):
+ node = Arg(5, 10, 'bar')
+ child = Node(indent=10, lines=["Description"], parent=node)
+ node.add_child(child)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' :param bar: Description',
+ ''])
+
+ def test_render_rst_with_children(self):
+ node = Arg(5, 10, 'bar')
+ child_a = Node(indent=10, lines=["ChildA"], parent=node)
+ node.add_child(child_a)
+ child_b = Node(indent=10, lines=["ChildB"], parent=node)
+ node.add_child(child_b)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' :param bar: ChildA',
+ ' ChildB',
+ ''])
+
+ def test_render_rst_with_type(self):
+ node = Arg(5, 10, 'bar')
+ node.type = 'str'
+ rst = node.render_rst()
+ self.assertEqual(rst, [' :param bar: ',
+ ' :type bar: str',
+ ''])
+
+
+class RaisesTests(unittest.TestCase):
+
+ def test_create_default_node(self):
+ node = Raises()
+ self.assertEqual(node.indent, 0)
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_create_with_indent(self):
+ node = Raises(indent=4)
+ self.assertEqual(node.indent, 4)
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_repr(self):
+ node = Raises(5)
+ actual = repr(node)
+ expected = "Raises(5, children=[])"
+ self.assertEqual(expected, actual)
+
+ def test_add_one_child(self):
+ node = Raises()
+ child = Node(parent=node)
+ node.add_child(child)
+ self.assertIs(node.children[0], child)
+
+ def test_add_two_children(self):
+ node = Raises()
+ child0 = Node(parent=node)
+ child1 = Node(parent=node)
+ node.add_child(child0)
+ node.add_child(child1)
+ self.assertIs(node.children[0], child0)
+ self.assertIs(node.children[1], child1)
+
+ def test_render_rst_empty(self):
+ node = Raises()
+ rst = node.render_rst()
+ self.assertEqual(rst, [':raises:',
+ ''])
+
+ def test_render_rst_indent(self):
+ node = Raises(indent=5)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' :raises:',
+ ''])
+
+ def test_render_rst_with_child(self):
+ node = Raises(5)
+ child = Node(indent=10, lines=["Description"], parent=node)
+ node.add_child(child)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' :raises:',
+ ' Description',
+ ''])
+
+ def test_render_rst_with_children(self):
+ node = Raises(5)
+ child_a = Node(indent=10, lines=["ChildA"], parent=node)
+ node.add_child(child_a)
+ child_b = Node(indent=10, lines=["ChildB"], parent=node)
+ node.add_child(child_b)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' :raises:',
+ ' ChildA',
+ ' ChildB',
+ ''])
+
+
+class ExceptTests(unittest.TestCase):
+
+ def test_create(self):
+ node = Except(5, 'FooError')
+ self.assertEqual(node.indent, 5)
+ self.assertEqual(node.type, 'FooError')
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_add_one_child(self):
+ node = Except(5, 'FooError')
+ child = Node(parent=node)
+ node.add_child(child)
+ self.assertIs(node.children[0], child)
+
+ def test_add_two_children(self):
+ node = Except(5, 'FooError')
+ child0 = Node(parent=node)
+ child1 = Node(parent=node)
+ node.add_child(child0)
+ node.add_child(child1)
+ self.assertIs(node.children[0], child0)
+ self.assertIs(node.children[1], child1)
+
+ def test_repr(self):
+ node = Except(5,'FooError')
+ actual = repr(node)
+ expected = "Except('FooError', children=[])"
+ self.assertEqual(expected, actual)
+
+ def test_render_rst_empty(self):
+ node = Except(5, 'FooError')
+ rst = node.render_rst()
+ self.assertEqual(rst, [' * FooError - ',
+ ''])
+
+ def test_render_rst_indent(self):
+ node = Except(5, 'FooError')
+ rst = node.render_rst()
+ self.assertEqual(rst, [' * FooError - ',
+ ''])
+
+ def test_render_rst_with_child(self):
+ node = Except(5, 'FooError')
+ child = Node(indent=10, lines=["Description"], parent=node)
+ node.add_child(child)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' * FooError - Description',
+ ''])
+
+ def test_render_rst_with_children(self):
+ node = Except(5, 'FooError')
+ child_a = Node(indent=10, lines=["ChildA"], parent=node)
+ node.add_child(child_a)
+ child_b = Node(indent=10, lines=["ChildB"], parent=node)
+ node.add_child(child_b)
+ rst = node.render_rst()
+ self.assertEqual(rst, [' * FooError - ChildA',
+ ' ChildB',
+ ''])
+
+class ReturnsTests(unittest.TestCase):
+
+ def test_create(self):
+ node = Returns(5)
+ self.assertEqual(node.indent, 5)
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_add_one_child(self):
+ node = Returns(5)
+ child = Node(parent=node)
+ node.add_child(child)
+ self.assertIs(node.children[0], child)
+
+ def test_add_two_children(self):
+ node = Returns(5)
+ child0 = Node(parent=node)
+ child1 = Node(parent=node)
+ node.add_child(child0)
+ node.add_child(child1)
+ self.assertIs(node.children[0], child0)
+ self.assertIs(node.children[1], child1)
+
+ def test_repr(self):
+ node = Returns(5)
+ actual = repr(node)
+ expected = "Returns(5, children=[])"
+ self.assertEqual(expected, actual)
+
+ # TODO test_render_rst
+
+class WarningTests(unittest.TestCase):
+
+ def test_create(self):
+ node = Warning(5)
+ self.assertEqual(node.indent, 5)
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_add_one_child(self):
+ node = Warning(5)
+ child = Node(parent=node)
+ node.add_child(child)
+ self.assertIs(node.children[0], child)
+
+ def test_add_two_children(self):
+ node = Warning(5)
+ child0 = Node(parent=node)
+ child1 = Node(parent=node)
+ node.add_child(child0)
+ node.add_child(child1)
+ self.assertIs(node.children[0], child0)
+ self.assertIs(node.children[1], child1)
+
+ def test_repr(self):
+ node = Warning(5)
+ actual = repr(node)
+ expected = "Warning(5, children=[])"
+ self.assertEqual(expected, actual)
+
+ # TODO test_render_rst
+
+class NoteTests(unittest.TestCase):
+
+ def test_create(self):
+ node = Note(5)
+ self.assertEqual(node.indent, 5)
+ self.assertEqual(node.lines, [])
+ self.assertIsNone(node.parent)
+
+ def test_add_one_child(self):
+ node = Note(5)
+ child = Node(parent=node)
+ node.add_child(child)
+ self.assertIs(node.children[0], child)
+
+ def test_add_two_children(self):
+ node = Note(5)
+ child0 = Node(parent=node)
+ child1 = Node(parent=node)
+ node.add_child(child0)
+ node.add_child(child1)
+ self.assertIs(node.children[0], child0)
+ self.assertIs(node.children[1], child1)
+
+ def test_repr(self):
+ node = Note(5)
+ actual = repr(node)
+ expected = "Note(5, children=[])"
+ self.assertEqual(expected, actual)
+
+ # TODO test_render_rst