70 lines
2 KiB
Python
70 lines
2 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""Test CLI Helpers' utility functions and helpers."""
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
from cli_helpers import utils
|
|
|
|
|
|
def test_bytes_to_string_hexlify():
|
|
"""Test that bytes_to_string() hexlifies binary data."""
|
|
assert utils.bytes_to_string(b'\xff') == '0xff'
|
|
|
|
|
|
def test_bytes_to_string_decode_bytes():
|
|
"""Test that bytes_to_string() decodes bytes."""
|
|
assert utils.bytes_to_string(b'foobar') == 'foobar'
|
|
|
|
|
|
def test_bytes_to_string_non_bytes():
|
|
"""Test that bytes_to_string() returns non-bytes untouched."""
|
|
assert utils.bytes_to_string('abc') == 'abc'
|
|
assert utils.bytes_to_string(1) == 1
|
|
|
|
|
|
def test_to_string_bytes():
|
|
"""Test that to_string() converts bytes to a string."""
|
|
assert utils.to_string(b"foo") == 'foo'
|
|
|
|
|
|
def test_to_string_non_bytes():
|
|
"""Test that to_string() converts non-bytes to a string."""
|
|
assert utils.to_string(1) == '1'
|
|
assert utils.to_string(2.29) == '2.29'
|
|
|
|
|
|
def test_truncate_string():
|
|
"""Test string truncate preprocessor."""
|
|
val = 'x' * 100
|
|
assert utils.truncate_string(val, 10) == 'xxxxxxx...'
|
|
|
|
val = 'x ' * 100
|
|
assert utils.truncate_string(val, 10) == 'x x x x...'
|
|
|
|
val = 'x' * 100
|
|
assert utils.truncate_string(val) == 'x' * 100
|
|
|
|
val = ['x'] * 100
|
|
val[20] = '\n'
|
|
str_val = ''.join(val)
|
|
assert utils.truncate_string(str_val, 10, skip_multiline_string=True) == str_val
|
|
|
|
|
|
def test_intlen_with_decimal():
|
|
"""Test that intlen() counts correctly with a decimal place."""
|
|
assert utils.intlen('11.1') == 2
|
|
assert utils.intlen('1.1') == 1
|
|
|
|
|
|
def test_intlen_without_decimal():
|
|
"""Test that intlen() counts correctly without a decimal place."""
|
|
assert utils.intlen('11') == 2
|
|
|
|
|
|
def test_filter_dict_by_key():
|
|
"""Test that filter_dict_by_key() filter unwanted items."""
|
|
keys = ('foo', 'bar')
|
|
d = {'foo': 1, 'foobar': 2}
|
|
fd = utils.filter_dict_by_key(d, keys)
|
|
assert len(fd) == 1
|
|
assert all([k in keys for k in fd])
|