def test_change_fore_with_trailing_colours(): ml = Metaline('foo bar', RunLengthList([(0, 'foo'), (7, 'bar')]), RunLengthList([(0, 'bar')])) ml.change_fore(0, 3, 'baz') assert ml.fores.items() == [(0, 'baz'), (3, 'foo'), (7, 'bar')]
def test_changes_fg_right_at_end(self): metaline = Metaline('foobar', RunLengthList([(0, 'FOO')]), None) metaline.change_fore(1, 6, 'BAR') assert metaline.fores.items() == [(0, 'FOO'), (1, 'BAR'), (6, 'FOO')]
def test_changes_fg_normally(self): metaline = Metaline('foobar', RunLengthList([(0, 'FOO')]), None) metaline.change_fore(1, 3, 'BAR') assert metaline.fores.items() == [(0, 'FOO'), (1, 'BAR'), (3, 'FOO')]
def test_preserves_engulfed_colour_starts(self): metaline = Metaline('foobar', RunLengthList([(0, 'FOO'), (2, 'BAR')]), None) metaline.change_fore(1, 3, 'BAZ') assert metaline.fores.items() == [(0, 'FOO'), (1, 'BAZ'), (3, 'BAR')]
def test_Metaline_change_fg_sets_colour(): m = Metaline('foo', RunLengthList([(0, None)]), None) m.change_fore(0, 5, 'foo') assert m.fores.items() == [(0, 'foo'), (5, None)]