add file size tests, failing

the tests are failing because 1KB gets displayed as 1000 bytes, but also because higher prefixes are missing
This commit is contained in:
Antoine Beaupré 2015-10-20 12:31:06 -04:00
parent a4f136afba
commit de390b1ca6

View file

@ -8,7 +8,7 @@ import pytest
import sys
import msgpack
from ..helpers import adjust_patterns, exclude_path, Location, format_timedelta, IncludePattern, ExcludePattern, make_path_safe, \
from ..helpers import adjust_patterns, exclude_path, Location, format_file_size, format_timedelta, IncludePattern, ExcludePattern, make_path_safe, \
prune_within, prune_split, get_cache_dir, Statistics, \
StableDict, int_to_bigint, bigint_to_int, parse_timestamp, CompressionSpec, ChunkerParams
from . import BaseTestCase
@ -443,3 +443,28 @@ This archive: 20 B 10 B 10 B""
assert s == "20 B"
# kind of redundant, but id is variable so we can't match reliably
assert repr(stats) == '<Statistics object at {:#x} (20, 10, 10)>'.format(id(stats))
def test_size():
"""test the size formatting routines"""
si_size_map = { 0: '0 B',
1: '1 B',
142: '142 B',
999: '999 B',
1000: '1000 B', # XXX: fail
1001: '1.00 kB',
1234: '1.23 kB',
10**6: '1.00 MB',
10**6 + 10*10**3: '1.01 MB',
10**9: '1.00 GB',
10**9+1: '1.00 GB',
10**9-1: '1.00 GB',
10**9-10*10**3: '999.99 MB',
10**9-10*10**3+1: '1.00 GB',
10**12+1: '1.00 TB',
10**15+1: '1.00 PB',
10**18+1: '1.00 EB',
10**21+1: '1.00 ZB',
10**24+1: '1.00 YB',
}
for size, fmt in si_size_map.items():
assert format_file_size(size) == fmt