tests/test-minirst.py
changeset 9156 c9c7e8cdac9c
child 9291 cd5b6a11b607
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-minirst.py	Thu Jul 16 23:25:25 2009 +0200
@@ -0,0 +1,138 @@
+#!/usr/bin/env python
+
+from mercurial import minirst
+
+def debugformat(title, text, width):
+    print "%s formatted to fit within %d characters:" % (title, width)
+    print "-" * 70
+    print minirst.format(text, width)
+    print "-" * 70
+    print
+
+paragraphs = """
+This is some text in the first paragraph.
+
+  An indented paragraph
+  with just two lines.
+
+
+The third paragraph. It is followed by some
+random lines with spurious spaces.
+ 
+  
+   
+  
+ 
+No indention
+ here, despite
+the uneven left
+ margin.
+
+      Only the
+    left-most line
+  (this line!)
+    is significant
+      for the indentation
+
+"""
+
+debugformat('paragraphs', paragraphs, 60)
+debugformat('paragraphs', paragraphs, 30)
+
+
+definitions = """
+A Term
+  Definition. The indented
+  lines make up the definition.
+Another Term
+  Another definition. The final line in the
+   definition determines the indentation, so
+    this will be indented with four spaces.
+
+  A Nested/Indented Term
+    Definition.
+"""
+
+debugformat('definitions', definitions, 60)
+debugformat('definitions', definitions, 30)
+
+
+literals = r"""
+The fully minimized form is the most
+convenient form::
+
+  Hello
+    literal
+      world
+
+In the partially minimized form a paragraph
+simply ends with space-double-colon. ::
+
+  ////////////////////////////////////////
+  long un-wrapped line in a literal block
+  \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
+
+::
+
+  This literal block is started with '::',
+    the so-called expanded form. The paragraph
+      with '::' disappears in the final output.
+"""
+
+debugformat('literals', literals, 60)
+debugformat('literals', literals, 30)
+
+
+lists = """
+- This is the first list item.
+
+  Second paragraph in the first list item.
+
+- List items need not be separated
+  by a blank line.
+- And will be rendered without
+  one in any case.
+
+We can have indented lists:
+
+  - This is an indented list item
+
+  - Another indented list item::
+
+      - A literal block in the middle
+            of an indented list.
+
+      (The above is not a list item since we are in the literal block.)
+
+::
+
+  Literal block with no indentation.
+"""
+
+debugformat('lists', lists, 60)
+debugformat('lists', lists, 30)
+
+
+options = """
+There is support for simple option lists,
+but only with long options:
+
+--all      Output all.
+--both     Output both (this description is
+           quite long).
+--long     Output all day long.
+
+--par      This option has two paragraphs in its description.
+           This is the first.
+
+           This is the second.  Blank lines may be omitted between
+           options (as above) or left in (as here).
+
+The next paragraph looks like an option list, but lacks the two-space
+marker after the option. It is treated as a normal paragraph:
+
+--foo bar baz
+"""
+
+debugformat('options', options, 60)
+debugformat('options', options, 30)