[lang-ref] ( split_when_last_element_is_empty ) ( python )

def test_split_when_last_element_is_empty():
    text1 = 'a\nb\nc\n'
    text2 = 'a\nb\nc\n\n'

    # split
    lines1 = text1.split('\n')
    lines2 = text2.split('\n')
    assert len(lines1) == 4  # last empty element is kept
    assert len(lines2) == 5
    assert lines1[-1] == ''
    assert lines2[-1] == ''

    # splitlines
    lines1 = text1.splitlines()
    lines2 = text2.splitlines()
    assert len(lines1) == 3  # trailing newline does not create an extra empty item
    assert len(lines2) == 4  # blank line between newlines is kept as ''
    assert lines1[-1] != ''
    assert lines2[-1] == ''

    # trim and split
    lines1 = text1.rstrip('\n').split('\n')
    lines2 = text2.rstrip('\n').split('\n')
    assert len(lines1) == 3  # discard trailing newlines
    assert len(lines2) == 3
    assert lines1[-1] != ''
    assert lines2[-1] != ''