1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
# -*- coding: utf-8 -*-
import pytest
from pyout.truncate import _splice as splice
from pyout.truncate import Truncater
def test_splice_non_positive():
with pytest.raises(ValueError):
assert splice("", 0)
def test_splice():
assert splice("", 10) == ("", "")
assert splice("abc", 10) == ("a", "bc")
assert splice("abc", 3) == ("a", "bc")
assert splice("abcefg", 3) == ("a", "fg")
def test_truncate_mark_true():
fn = Truncater(7, marker=True).truncate
assert fn(None, "abc") == "abc"
assert fn(None, "abcdefg") == "abcdefg"
assert fn(None, "abcdefgh") == "abcd..."
@pytest.mark.parametrize("where", ["left", "center", "right"])
def test_truncate_mark_string(where):
fn = Truncater(7, marker="…", where=where).truncate
assert fn(None, "abc") == "abc"
assert fn(None, "abcdefg") == "abcdefg"
expected = {"left": "…cdefgh",
"center": "abc…fgh",
"right": "abcdef…"}
assert fn(None, "abcdefgh") == expected[where]
@pytest.mark.parametrize("where", ["left", "center", "right"])
def test_truncate_mark_even(where):
# Test out a marker with an even number of characters, mostly to get the
# "center" style on seven characters to be uneven.
fn = Truncater(7, marker="..", where=where).truncate
expected = {"left": "..defgh",
"center": "ab..fgh",
"right": "abcde.."}
assert fn(None, "abcdefgh") == expected[where]
@pytest.mark.parametrize("where", ["left", "center", "right"])
def test_truncate_mark_short(where):
fn = Truncater(2, marker=True, where=where).truncate
assert fn(None, "abc") == ".."
@pytest.mark.parametrize("where", ["left", "center", "right"])
def test_truncate_nomark(where):
fn = Truncater(7, marker=False, where=where).truncate
assert fn(None, "abc") == "abc"
assert fn(None, "abcdefg") == "abcdefg"
expected = {"left": "bcdefgh",
"center": "abcefgh",
"right": "abcdefg"}
assert fn(None, "abcdefgh") == expected[where]
def test_truncate_unknown_where():
with pytest.raises(ValueError):
Truncater(7, marker=False, where="dunno")
|