Esempio n. 1
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'*'))
Esempio n. 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'#'))
Esempio n. 3
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'#'))
Esempio n. 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'#'))
Esempio n. 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'*'))
Esempio n. 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'#'))
Esempio n. 7
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.'))
Esempio n. 8
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.'))