Merge pull request #6972 from glours/align_image_size_display_to_docker_cli

Format image size as decimal to be align with Docker CLI
This commit is contained in:
Jean-Christophe Sirot 2019-10-18 15:26:15 +02:00 committed by GitHub
commit 4be2fa010a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 11 deletions

View File

@ -133,12 +133,12 @@ def generate_user_agent():
def human_readable_file_size(size):
suffixes = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', ]
order = int(math.log(size, 2) / 10) if size else 0
order = int(math.log(size, 1000)) if size else 0
if order >= len(suffixes):
order = len(suffixes) - 1
return '{0:.4g} {1}'.format(
size / float(1 << (order * 10)),
size / pow(10, order * 3),
suffixes[order]
)

View File

@ -29,16 +29,20 @@ class HumanReadableFileSizeTest(unittest.TestCase):
assert human_readable_file_size(100) == '100 B'
def test_1kb(self):
assert human_readable_file_size(1024) == '1 kB'
assert human_readable_file_size(1000) == '1 kB'
assert human_readable_file_size(1024) == '1.024 kB'
def test_1023b(self):
assert human_readable_file_size(1023) == '1023 B'
assert human_readable_file_size(1023) == '1.023 kB'
def test_999b(self):
assert human_readable_file_size(999) == '999 B'
def test_units(self):
assert human_readable_file_size((2 ** 10) ** 0) == '1 B'
assert human_readable_file_size((2 ** 10) ** 1) == '1 kB'
assert human_readable_file_size((2 ** 10) ** 2) == '1 MB'
assert human_readable_file_size((2 ** 10) ** 3) == '1 GB'
assert human_readable_file_size((2 ** 10) ** 4) == '1 TB'
assert human_readable_file_size((2 ** 10) ** 5) == '1 PB'
assert human_readable_file_size((2 ** 10) ** 6) == '1 EB'
assert human_readable_file_size((10 ** 3) ** 0) == '1 B'
assert human_readable_file_size((10 ** 3) ** 1) == '1 kB'
assert human_readable_file_size((10 ** 3) ** 2) == '1 MB'
assert human_readable_file_size((10 ** 3) ** 3) == '1 GB'
assert human_readable_file_size((10 ** 3) ** 4) == '1 TB'
assert human_readable_file_size((10 ** 3) ** 5) == '1 PB'
assert human_readable_file_size((10 ** 3) ** 6) == '1 EB'