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'#'))
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'#'))
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'*'))
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'#'))
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'*'))
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'%')))
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.'))
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.']))
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'#')))
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"))
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.']))
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.']))
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.'))