[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] != ''