def test_bullet5(self): """ Test undo toggle bullet with font """ self.buffer.toggle_tag_selected(self.buffer.tag_table.lookup("bold")) self.buffer.insert_at_cursor("line1") contents1 = list( iter_buffer_contents(self.buffer, None, None, ignore_tag)) self.buffer.toggle_bullet_list() print[ display_item(x) for x in iter_buffer_contents(self.buffer, None, None, ignore_tag) ] self.buffer.undo() contents2 = list( iter_buffer_contents(self.buffer, None, None, ignore_tag)) # check the internal indentation structure self.assertEquals([display_item(x) for x in contents1], [display_item(x) for x in contents2])
def test_bullet5(self): """ Test undo toggle bullet with font """ self.buffer.toggle_tag_selected(self.buffer.tag_table.lookup("bold")) self.buffer.insert_at_cursor("line1") contents1 = list(iter_buffer_contents(self.buffer, None, None, ignore_tag)) self.buffer.toggle_bullet_list() print [display_item(x) for x in iter_buffer_contents( self.buffer, None, None, ignore_tag)]
def write(self, buffer, outfile): contents = iter_buffer_contents(self.buffer, None, None, IGNORE_TAGS) self.io.set_output(outfile) self.io.write(contents, self.buffer.tag_table)
def test_bullet_apply_tag(self): """ Test whether par_related tags are properly handled """ self.buffer.toggle_bullet_list() self.buffer.insert_at_cursor("line1") it = self.buffer.get_start_iter() #it.forward_chars(1) it2 = self.buffer.get_start_iter() it2.forward_chars(2) tag = self.buffer.tag_table.lookup("indent 2 none") print(tag.is_par_related()) self.buffer.apply_tag_selected(tag, it, it2) contents1 = list(iter_buffer_contents(self.buffer, None, None, ignore_tag)) # check the internal indentation structure self.assertEquals([display_item(x) for x in contents1], ['BEGIN:indent 2 none', u'line1\n', 'END:indent 2 none'])
def test_bullet_apply_tag(self): """ Test whether par_related tags are properly handled """ self.buffer.toggle_bullet_list() self.buffer.insert_at_cursor("line1") it = self.buffer.get_start_iter() #it.forward_chars(1) it2 = self.buffer.get_start_iter() it2.forward_chars(2) tag = self.buffer.tag_table.lookup("indent 2 none") print tag.is_par_related() self.buffer.apply_tag_selected(tag, it, it2) contents1 = list(iter_buffer_contents(self.buffer, None, None, ignore_tag)) # check the internal indentation structure self.assertEquals([display_item(x) for x in contents1], ['BEGIN:indent 2 none', u'line1\n', 'END:indent 2 none'])
def test_bullet(self): self.buffer.insert_at_cursor("end1\nend2\n") self.buffer.place_cursor(self.buffer.get_start_iter()) #self.buffer.indent() self.buffer.toggle_bullet_list() self.buffer.insert_at_cursor("line1\n") contents = list( iter_buffer_contents(self.buffer, None, None, ignore_tag)) dom = TextBufferDom( normalize_tags(find_paragraphs( nest_indent_tags(self.get_contents(), self.buffer.tag_table)), is_stable_tag=lambda tag: isinstance( tag, RichTextIndentTag) or tag == P_TAG)) self.io.prepare_dom_write(dom) print dom.display() # check the internal indentation structure self.assertEquals([display_item(x) for x in contents], [ 'BEGIN:bullet', 'BEGIN:indent 1 bullet', u'\u2022 ', 'END:bullet', 'line1\n', 'BEGIN:bullet', u'\u2022 ', 'END:bullet', 'end1\n', 'END:indent 1 bullet', 'end2\n' ]) outfile = StringIO() self.write(self.buffer, outfile) self.assertEquals( outfile.getvalue(), '<ul><li>line1</li>\n' '<li>end1</li>\n</ul>\nend2<br/>\n')
def test_bullet3(self): """ Test to see if current_tags is set from text to the right when cursor is at start of line """ self.buffer.insert_at_cursor("\nend") self.buffer.place_cursor(self.buffer.get_start_iter()) self.buffer.insert_at_cursor("line1") self.buffer.toggle_bullet_list() self.buffer.insert_at_cursor("\nline2") self.buffer.unindent() # move to start of "line2" it = self.buffer.get_iter_at_mark(self.buffer.get_insert()) it.backward_line() it.forward_line() self.buffer.place_cursor(it) # insert text, it should not be indented self.buffer.insert_at_cursor("new ") contents = list(iter_buffer_contents(self.buffer, None, None, ignore_tag)) # check the internal indentation structure self.assertEquals([display_item(x) for x in contents], ['BEGIN:bullet', 'BEGIN:indent 1 bullet', u'\u2022 ', 'END:bullet', 'line1\n', 'END:indent 1 bullet', 'new line2\nend'])
def test_bullet4(self): """ Test undo toggle bullet """ self.buffer.insert_at_cursor("line1") contents1 = list(iter_buffer_contents(self.buffer, None, None, ignore_tag)) self.buffer.toggle_bullet_list() self.buffer.undo() contents2 = list(iter_buffer_contents(self.buffer, None, None, ignore_tag)) # check the internal indentation structure self.assertEquals([display_item(x) for x in contents1], [display_item(x) for x in contents2])
def test_bullet_insert(self): """ Test whether insert inside bullet string '* ' is rejected """ self.buffer.toggle_bullet_list() self.buffer.insert_at_cursor("line1") contents1 = list(iter_buffer_contents(self.buffer, None, None, ignore_tag)) it = self.buffer.get_start_iter() it.forward_chars(1) self.buffer.insert(it, "XXX") contents2 = list(iter_buffer_contents(self.buffer, None, None, ignore_tag)) # check the internal indentation structure self.assertEquals([display_item(x) for x in contents1], [display_item(x) for x in contents2])
def test_ol6(self): infile = StringIO( 'line0<ul><li style="list-style-type: none">line1<br/>\n' 'line2<ul><li style="list-style-type: none">line3<br/>\n' 'line4<br/>\n</li>\n</ul>\n' '</li>\n</ul>\nline5') self.read(self.buffer, infile) contents = list( iter_buffer_contents(self.buffer, None, None, ignore_tag)) # check the internal indentation structure self.assertEquals([display_item(x) for x in contents], [ 'line0\n', 'BEGIN:indent 1 none', 'line1\nline2\n', 'END:indent 1 none', 'BEGIN:indent 2 none', 'line3\nline4\n\n', 'END:indent 2 none', 'line5' ])
def test_ol6(self): infile = StringIO( 'line0<ul><li style="list-style-type: none">line1<br/>\n' 'line2<ul><li style="list-style-type: none">line3<br/>\n' 'line4<br/>\n</li>\n</ul>\n' '</li>\n</ul>\nline5') self.read(self.buffer, infile) contents = list(iter_buffer_contents(self.buffer, None, None, ignore_tag)) # check the internal indentation structure self.assertEquals([display_item(x) for x in contents], ['line0\n', 'BEGIN:indent 1 none', 'line1\nline2\n', 'END:indent 1 none', 'BEGIN:indent 2 none', 'line3\nline4\n\n', 'END:indent 2 none', 'line5'])
def test_bullet(self): self.buffer.insert_at_cursor("end1\nend2\n") self.buffer.place_cursor(self.buffer.get_start_iter()) #self.buffer.indent() self.buffer.toggle_bullet_list() self.buffer.insert_at_cursor("line1\n") contents = list(iter_buffer_contents(self.buffer, None, None, ignore_tag)) dom = TextBufferDom( normalize_tags(find_paragraphs( nest_indent_tags(self.get_contents(), self.buffer.tag_table)), is_stable_tag=lambda tag: isinstance(tag, RichTextIndentTag) or tag == P_TAG)) self.io.prepare_dom_write(dom) print dom.display() # check the internal indentation structure self.assertEquals([display_item(x) for x in contents], ['BEGIN:bullet', 'BEGIN:indent 1 bullet', u'\u2022 ', 'END:bullet', 'line1\n', 'BEGIN:bullet', u'\u2022 ', 'END:bullet', 'end1\n', 'END:indent 1 bullet', 'end2\n']) outfile = StringIO() self.write(self.buffer, outfile) self.assertEquals(outfile.getvalue(), '<ul><li>line1</li>\n' '<li>end1</li>\n</ul>\nend2<br/>\n')
def get_contents(self): return list(iter_buffer_contents(self.buffer, None, None, IGNORE_TAGS))
""" self.buffer.toggle_tag_selected(self.buffer.tag_table.lookup("bold")) self.buffer.insert_at_cursor("line1") contents1 = list(iter_buffer_contents(self.buffer, None, None, ignore_tag)) self.buffer.toggle_bullet_list() print [display_item(x) for x in iter_buffer_contents( self.buffer, None, None, ignore_tag)] self.buffer.undo() contents2 = list(iter_buffer_contents(self.buffer, None, None, ignore_tag)) # check the internal indentation structure self.assertEquals([display_item(x) for x in contents1], [display_item(x) for x in contents2]) def test_bullet_insert(self): """ Test whether insert inside bullet string '* ' is rejected """ self.buffer.toggle_bullet_list() self.buffer.insert_at_cursor("line1") contents1 = list(iter_buffer_contents(self.buffer, None, None, ignore_tag))
def write(self, buffer, outfile): contents = iter_buffer_contents(self.buffer, None, None, ignore_tag) self.io.set_output(outfile) self.io.write(contents, self.buffer.tag_table, partial=True)
def get_contents(self): return list(iter_buffer_contents(self.buffer, None, None, ignore_tag))