示例#1
0
    def test_double_lists(self):
        text = u"""\
* I am an unordered list item;

* on several lines.

1. I am an ordered list item;

2. on several lines."""
        events = parse_blocks(text)
        events = parse_lists(events)
        self.assertEqual(len(events), 16)
        self.assertEqual(events[0], (XLIST_BEGIN, u'*'))
        self.assertEqual(events[1], (XLIST_ITEM_BEGIN, 2))
        self.assertEqual(events[2], (XBLOCK, [u'I am an unordered list item;',
                                              u'']))
        self.assertEqual(events[3], (XLIST_ITEM_END, 2))
        self.assertEqual(events[4], (XLIST_ITEM_BEGIN, 2))
        self.assertEqual(events[5], (XBLOCK, [u'on several lines.', u'']))
        self.assertEqual(events[6], (XLIST_ITEM_END, 2))
        self.assertEqual(events[7], (XLIST_END, u'*'))
        self.assertEqual(events[8], (XLIST_BEGIN, u'#'))
        self.assertEqual(events[9], (XLIST_ITEM_BEGIN, 3))
        self.assertEqual(events[10], (XBLOCK, [u'I am an ordered list item;',
                                               u'']))
        self.assertEqual(events[11], (XLIST_ITEM_END, 3))
        self.assertEqual(events[12], (XLIST_ITEM_BEGIN, 3))
        self.assertEqual(events[13], (XBLOCK, [u'on several lines.']))
        self.assertEqual(events[14], (XLIST_ITEM_END, 3))
        self.assertEqual(events[15], (XLIST_END, u'#'))
示例#2
0
    def test_list_literal(self):
        text = u"""\
1. I am a list
   containing a literal::

     >>> from itools.rest import parser

2. and several
   items."""
        events = parse_blocks(text)
        events = parse_lists(events)
        events = parse_literal_blocks(events)
        events = list(events)
        self.assertEqual(len(events), 9)
        self.assertEqual(events[0], (XLIST_BEGIN, u'#'))
        self.assertEqual(events[1], (XLIST_ITEM_BEGIN, 3))
        self.assertEqual(
            events[2], (XBLOCK, [u'I am a list', u'   containing a literal:']))
        self.assertEqual(
            events[3],
            (XLITERAL_BLOCK, u'     >>> from itools.rest import parser'))
        self.assertEqual(events[4], (XLIST_ITEM_END, 3))
        self.assertEqual(events[5], (XLIST_ITEM_BEGIN, 3))
        self.assertEqual(events[6], (XBLOCK, [u'and several', u'   items.']))
        self.assertEqual(events[7], (XLIST_ITEM_END, 3))
        self.assertEqual(events[8], (XLIST_END, u'#'))
示例#3
0
    def test_nested_lists(self):
        text = u"""\
* First list.

  1. Second list.

     Second list, second paragraph.

  First list, second paragraph."""
        events = parse_blocks(text)
        events = parse_lists(events)
        self.assertEqual(len(events), 12)
        self.assertEqual(events[0], (XLIST_BEGIN, u'*'))
        self.assertEqual(events[1], (XLIST_ITEM_BEGIN, 2))
        self.assertEqual(events[2], (XBLOCK, [u'First list.', u'']))
        self.assertEqual(events[3], (XLIST_BEGIN, u'#'))
        self.assertEqual(events[4], (XLIST_ITEM_BEGIN, 5))
        self.assertEqual(events[5], (XBLOCK, [u'Second list.', u'']))
        self.assertEqual(events[6], (XBLOCK,
            [u'     Second list, second paragraph.', u'']))
        self.assertEqual(events[7], (XLIST_ITEM_END, 5))
        self.assertEqual(events[8], (XLIST_END, u'#'))
        self.assertEqual(events[9], (XBLOCK,
            [u'  First list, second paragraph.']))
        self.assertEqual(events[10], (XLIST_ITEM_END, 2))
        self.assertEqual(events[11], (XLIST_END, u'*'))
示例#4
0
    def test_list_literal(self):
        text = u"""\
1. I am a list
   containing a literal::

     >>> from itools.rest import parser

2. and several
   items."""
        events = parse_blocks(text)
        events = parse_lists(events)
        events = parse_literal_blocks(events)
        events = list(events)
        self.assertEqual(len(events), 9)
        self.assertEqual(events[0], (XLIST_BEGIN, u'#'))
        self.assertEqual(events[1], (XLIST_ITEM_BEGIN, 3))
        self.assertEqual(events[2], (XBLOCK, [u'I am a list',
            u'   containing a literal:']))
        self.assertEqual(events[3], (XLITERAL_BLOCK,
            u'     >>> from itools.rest import parser'))
        self.assertEqual(events[4], (XLIST_ITEM_END, 3))
        self.assertEqual(events[5], (XLIST_ITEM_BEGIN, 3))
        self.assertEqual(events[6], (XBLOCK, [u'and several',  u'   items.']))
        self.assertEqual(events[7], (XLIST_ITEM_END, 3))
        self.assertEqual(events[8], (XLIST_END, u'#'))
示例#5
0
    def test_nested_lists(self):
        text = u"""\
* First list.

  1. Second list.

     Second list, second paragraph.

  First list, second paragraph."""
        events = parse_blocks(text)
        events = parse_lists(events)
        self.assertEqual(len(events), 12)
        self.assertEqual(events[0], (XLIST_BEGIN, u'*'))
        self.assertEqual(events[1], (XLIST_ITEM_BEGIN, 2))
        self.assertEqual(events[2], (XBLOCK, [u'First list.', u'']))
        self.assertEqual(events[3], (XLIST_BEGIN, u'#'))
        self.assertEqual(events[4], (XLIST_ITEM_BEGIN, 5))
        self.assertEqual(events[5], (XBLOCK, [u'Second list.', u'']))
        self.assertEqual(
            events[6], (XBLOCK, [u'     Second list, second paragraph.', u'']))
        self.assertEqual(events[7], (XLIST_ITEM_END, 5))
        self.assertEqual(events[8], (XLIST_END, u'#'))
        self.assertEqual(events[9],
                         (XBLOCK, [u'  First list, second paragraph.']))
        self.assertEqual(events[10], (XLIST_ITEM_END, 2))
        self.assertEqual(events[11], (XLIST_END, u'*'))
示例#6
0
    def test_double_lists(self):
        text = u"""\
* I am an unordered list item;

* on several lines.

1. I am an ordered list item;

2. on several lines."""
        events = parse_blocks(text)
        events = parse_lists(events)
        self.assertEqual(len(events), 16)
        self.assertEqual(events[0], (XLIST_BEGIN, u'*'))
        self.assertEqual(events[1], (XLIST_ITEM_BEGIN, 2))
        self.assertEqual(events[2],
                         (XBLOCK, [u'I am an unordered list item;', u'']))
        self.assertEqual(events[3], (XLIST_ITEM_END, 2))
        self.assertEqual(events[4], (XLIST_ITEM_BEGIN, 2))
        self.assertEqual(events[5], (XBLOCK, [u'on several lines.', u'']))
        self.assertEqual(events[6], (XLIST_ITEM_END, 2))
        self.assertEqual(events[7], (XLIST_END, u'*'))
        self.assertEqual(events[8], (XLIST_BEGIN, u'#'))
        self.assertEqual(events[9], (XLIST_ITEM_BEGIN, 3))
        self.assertEqual(events[10],
                         (XBLOCK, [u'I am an ordered list item;', u'']))
        self.assertEqual(events[11], (XLIST_ITEM_END, 3))
        self.assertEqual(events[12], (XLIST_ITEM_BEGIN, 3))
        self.assertEqual(events[13], (XBLOCK, [u'on several lines.']))
        self.assertEqual(events[14], (XLIST_ITEM_END, 3))
        self.assertEqual(events[15], (XLIST_END, u'#'))
示例#7
0
    def test_title_underline(self):
        text = u"""\
I am the prince of the titles
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"""
        events = parse_blocks(text)
        events = parse_titles(events)
        events = list(events)
        self.assertEqual(len(events), 1)
        self.assertEqual(events[0], (XTITLE,
            (u'', u'I am the prince of the titles', u'%')))
示例#8
0
    def test_title_underline(self):
        text = u"""\
I am the prince of the titles
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"""
        events = parse_blocks(text)
        events = parse_titles(events)
        events = list(events)
        self.assertEqual(len(events), 1)
        self.assertEqual(events[0],
                         (XTITLE,
                          (u'', u'I am the prince of the titles', u'%')))
示例#9
0
    def test_paragraph(self):
        text = u"""\
I am a paragraph.

I am another one."""
        events = parse_blocks(text)
        events = parse_titles(events)
        events = list(events)
        self.assertEqual(len(events), 2)
        self.assertEqual(events[0], (XPARAGRAPH, u'I am a paragraph.'))
        self.assertEqual(events[1], (XPARAGRAPH, u'I am another one.'))
示例#10
0
    def test_blocks(self):
        text = u"""\
I am a block.

I am another
block."""
        events = parse_blocks(text)
        events = list(events)
        self.assertEqual(len(events), 2)
        self.assertEqual(events[0], (XBLOCK, [u'I am a block.', u'']))
        self.assertEqual(events[1], (XBLOCK, [u'I am another', u'block.']))
示例#11
0
    def test_blocks(self):
        text = u"""\
I am a block.

I am another
block."""
        events = parse_blocks(text)
        events = list(events)
        self.assertEqual(len(events), 2)
        self.assertEqual(events[0], (XBLOCK, [u'I am a block.', u'']))
        self.assertEqual(events[1], (XBLOCK, [u'I am another', u'block.']))
示例#12
0
    def test_title_overline(self):
        text = u"""\
#############################
I am the king of the titles
#############################"""
        events = parse_blocks(text)
        events = parse_titles(events)
        events = list(events)
        self.assertEqual(len(events), 1)
        self.assertEqual(events[0], (XTITLE,
            (u'#', u'I am the king of the titles', u'#')))
示例#13
0
    def test_paragraph(self):
        text = u"""\
I am a paragraph.

I am another one."""
        events = parse_blocks(text)
        events = parse_titles(events)
        events = list(events)
        self.assertEqual(len(events), 2)
        self.assertEqual(events[0], (XPARAGRAPH, u'I am a paragraph.'))
        self.assertEqual(events[1], (XPARAGRAPH, u'I am another one.'))
示例#14
0
    def test_title_overline(self):
        text = u"""\
#############################
I am the king of the titles
#############################"""
        events = parse_blocks(text)
        events = parse_titles(events)
        events = list(events)
        self.assertEqual(len(events), 1)
        self.assertEqual(events[0],
                         (XTITLE,
                          (u'#', u'I am the king of the titles', u'#')))
示例#15
0
    def test_title_paragraph(self):
        text = u"""\
Please allow to introduce myself
````````````````````````````````
I'm a man of wealth and taste"""
        events = parse_blocks(text)
        events = parse_titles(events)
        events = list(events)
        self.assertEqual(len(events), 2)
        self.assertEqual(events[0], (XTITLE,
            (u'', u'Please allow to introduce myself', u'`')))
        self.assertEqual(events[1], (XPARAGRAPH,
            u"I'm a man of wealth and taste"))
示例#16
0
    def test_title_paragraph(self):
        text = u"""\
Please allow to introduce myself
````````````````````````````````
I'm a man of wealth and taste"""
        events = parse_blocks(text)
        events = parse_titles(events)
        events = list(events)
        self.assertEqual(len(events), 2)
        self.assertEqual(events[0],
                         (XTITLE,
                          (u'', u'Please allow to introduce myself', u'`')))
        self.assertEqual(events[1],
                         (XPARAGRAPH, u"I'm a man of wealth and taste"))
示例#17
0
    def test_literal_blocks(self):
        text = u"""\
The code reads as follow::

    >>> from itools.rest import parser

But failed with a NotImplementedError."""
        events = parse_blocks(text)
        events = parse_literal_blocks(events)
        events = list(events)
        self.assertEqual(len(events), 3)
        self.assertEqual(events[0], (XBLOCK, [u'The code reads as follow:']))
        self.assertEqual(events[1], (XLITERAL_BLOCK,
            u'    >>> from itools.rest import parser'))
        self.assertEqual(events[2], (XBLOCK,
            [u'But failed with a NotImplementedError.']))
示例#18
0
    def test_literal_blocks(self):
        text = u"""\
The code reads as follow::

    >>> from itools.rest import parser

But failed with a NotImplementedError."""
        events = parse_blocks(text)
        events = parse_literal_blocks(events)
        events = list(events)
        self.assertEqual(len(events), 3)
        self.assertEqual(events[0], (XBLOCK, [u'The code reads as follow:']))
        self.assertEqual(
            events[1],
            (XLITERAL_BLOCK, u'    >>> from itools.rest import parser'))
        self.assertEqual(events[2],
                         (XBLOCK, [u'But failed with a NotImplementedError.']))
示例#19
0
    def test_paragraph_list(self):
        text = u"""\
* I am a block.

  I am the same block.

I am a paragraph."""
        events = parse_blocks(text)
        events = parse_lists(events)
        events = parse_titles(events)
        events = list(events)
        self.assertEqual(len(events), 7)
        self.assertEqual(events[0], (XLIST_BEGIN, u'*'))
        self.assertEqual(events[1], (XLIST_ITEM_BEGIN, 2))
        self.assertEqual(events[2], (XPARAGRAPH, u'I am a block.'))
        self.assertEqual(events[3], (XPARAGRAPH, u'I am the same block.'))
        self.assertEqual(events[4], (XLIST_ITEM_END, 2))
        self.assertEqual(events[5], (XLIST_END, u'*'))
        self.assertEqual(events[6], (XPARAGRAPH, u'I am a paragraph.'))
示例#20
0
    def test_paragraph_list(self):
        text = u"""\
* I am a block.

  I am the same block.

I am a paragraph."""
        events = parse_blocks(text)
        events = parse_lists(events)
        events = parse_titles(events)
        events = list(events)
        self.assertEqual(len(events), 7)
        self.assertEqual(events[0], (XLIST_BEGIN, u'*'))
        self.assertEqual(events[1], (XLIST_ITEM_BEGIN, 2))
        self.assertEqual(events[2], (XPARAGRAPH, u'I am a block.'))
        self.assertEqual(events[3], (XPARAGRAPH, u'I am the same block.'))
        self.assertEqual(events[4], (XLIST_ITEM_END, 2))
        self.assertEqual(events[5], (XLIST_END, u'*'))
        self.assertEqual(events[6], (XPARAGRAPH, u'I am a paragraph.'))