mirror of
https://github.com/ihabunek/toot.git
synced 2025-10-21 19:44:16 -04:00
Cleanup utils dealing with wcwidth strings
This commit is contained in:
@@ -2,13 +2,74 @@ from toot import utils
|
||||
|
||||
|
||||
def test_pad():
|
||||
text = 'Frank Zappa 🎸'
|
||||
padded = utils.pad(text, 14)
|
||||
assert padded == 'Frank Zappa 🎸'
|
||||
# guitar symbol will occupy two cells, so padded text should be 1
|
||||
# character shorter
|
||||
assert len(padded) == 13
|
||||
# when truncated, … occupies one cell, so we get full length
|
||||
padded = utils.pad(text, 13)
|
||||
assert padded == 'Frank Zappa …'
|
||||
assert len(padded) == 13
|
||||
text = 'Frank Zappa 🎸'
|
||||
|
||||
# Negative values are basically ignored
|
||||
assert utils.pad(text, -100) is text
|
||||
|
||||
# Padding to length smaller than text length does nothing
|
||||
assert utils.pad(text, 11) is text
|
||||
assert utils.pad(text, 12) is text
|
||||
assert utils.pad(text, 13) is text
|
||||
assert utils.pad(text, 14) is text
|
||||
|
||||
assert utils.pad(text, 15) == 'Frank Zappa 🎸 '
|
||||
assert utils.pad(text, 16) == 'Frank Zappa 🎸 '
|
||||
assert utils.pad(text, 17) == 'Frank Zappa 🎸 '
|
||||
assert utils.pad(text, 18) == 'Frank Zappa 🎸 '
|
||||
assert utils.pad(text, 19) == 'Frank Zappa 🎸 '
|
||||
assert utils.pad(text, 20) == 'Frank Zappa 🎸 '
|
||||
|
||||
|
||||
def test_trunc():
|
||||
text = 'Frank Zappa 🎸'
|
||||
|
||||
assert utils.trunc(text, 1) == '…'
|
||||
assert utils.trunc(text, 2) == 'F…'
|
||||
assert utils.trunc(text, 3) == 'Fr…'
|
||||
assert utils.trunc(text, 4) == 'Fra…'
|
||||
assert utils.trunc(text, 5) == 'Fran…'
|
||||
assert utils.trunc(text, 6) == 'Frank…'
|
||||
assert utils.trunc(text, 7) == 'Frank…'
|
||||
assert utils.trunc(text, 8) == 'Frank Z…'
|
||||
assert utils.trunc(text, 9) == 'Frank Za…'
|
||||
assert utils.trunc(text, 10) == 'Frank Zap…'
|
||||
assert utils.trunc(text, 11) == 'Frank Zapp…'
|
||||
assert utils.trunc(text, 12) == 'Frank Zappa…'
|
||||
assert utils.trunc(text, 13) == 'Frank Zappa…'
|
||||
|
||||
# Truncating to length larger than text length does nothing
|
||||
assert utils.trunc(text, 14) is text
|
||||
assert utils.trunc(text, 15) is text
|
||||
assert utils.trunc(text, 16) is text
|
||||
assert utils.trunc(text, 17) is text
|
||||
assert utils.trunc(text, 18) is text
|
||||
assert utils.trunc(text, 19) is text
|
||||
assert utils.trunc(text, 20) is text
|
||||
|
||||
|
||||
def test_fit_text():
|
||||
text = 'Frank Zappa 🎸'
|
||||
|
||||
assert utils.fit_text(text, 1) == '…'
|
||||
assert utils.fit_text(text, 2) == 'F…'
|
||||
assert utils.fit_text(text, 3) == 'Fr…'
|
||||
assert utils.fit_text(text, 4) == 'Fra…'
|
||||
assert utils.fit_text(text, 5) == 'Fran…'
|
||||
assert utils.fit_text(text, 6) == 'Frank…'
|
||||
assert utils.fit_text(text, 7) == 'Frank…'
|
||||
assert utils.fit_text(text, 8) == 'Frank Z…'
|
||||
assert utils.fit_text(text, 9) == 'Frank Za…'
|
||||
assert utils.fit_text(text, 10) == 'Frank Zap…'
|
||||
assert utils.fit_text(text, 11) == 'Frank Zapp…'
|
||||
assert utils.fit_text(text, 12) == 'Frank Zappa…'
|
||||
assert utils.fit_text(text, 13) == 'Frank Zappa…'
|
||||
assert utils.fit_text(text, 14) == 'Frank Zappa 🎸'
|
||||
assert utils.fit_text(text, 15) == 'Frank Zappa 🎸 '
|
||||
assert utils.fit_text(text, 16) == 'Frank Zappa 🎸 '
|
||||
assert utils.fit_text(text, 17) == 'Frank Zappa 🎸 '
|
||||
assert utils.fit_text(text, 18) == 'Frank Zappa 🎸 '
|
||||
assert utils.fit_text(text, 19) == 'Frank Zappa 🎸 '
|
||||
assert utils.fit_text(text, 20) == 'Frank Zappa 🎸 '
|
||||
|
||||
Reference in New Issue
Block a user