def test_delitem_len_bug(): eq_(list(LineNumbers(Text("\n")).iter_from(0)), [(1, 0)]) # sanity check text = Text("\nx") lines = LineNumbers(text) # sanity check eq_(list(lines.iter_from(0)), [(1, 0), (2, 1)]) eq_(len(lines), 2, repr(text)) text[1:] = "" eq_(list(lines.iter_from(0)), [(1, 0)]) assert lines.newline_at_end, 'no newline at end: ' + repr(text) eq_(len(lines), 2, repr(text))
def test(num, expect, text, iter_to_line=None): text = Text(text) lines = LineNumbers(text) if iter_to_line is END: list(lines.iter_from(0)) assert lines.end is not None elif iter_to_line is not None: if iter_to_line is LINE: iter_to_line = num for line, index in lines.iter_from(0): if line >= iter_to_line: break if isinstance(expect, int): eq_(lines.index_of(num), expect) else: with assert_raises(expect): lines.index_of(num)
def test(expect, text, iter_to_line=None): text = Text(text) lines = LineNumbers(text) if iter_to_line is not None: for line, index in lines.iter_from(0): if line >= iter_to_line: break eq_(lines.newline_at_end, expect)
def test(i, output, text, preset=None, start=1): text = Text(text) lines = LineNumbers(text) if preset is END: lines[len(text) - 1] elif preset is not None: lines[preset] eq_(list(lines.iter_from(i)), list(enumerate(output, start=start)))
def test(i, output, text, preset=END, start=1): text = Text(text) lines = LineNumbers(text) if preset is END: list(lines.iter_from(0)) assert lines.end is not None elif preset is not None: lines[preset] del lines[i] eq_(lines.end, None) eq_(lines.newline_at_end, None) len_text = len(text) text[len_text:] = "\nend" if not output: output.append(0) output.append(len_text + 1) print(repr(text)) eq_(list(lines.iter_from(i)), list(enumerate(output, start=start)))