item: explicate csize isn't memorizable

This commit is contained in:
Marian Beermann 2017-06-12 09:16:05 +02:00
parent 2cbff48fd3
commit 0462a561c1
2 changed files with 6 additions and 0 deletions

View File

@ -189,6 +189,7 @@ class Item(PropDict):
If memorize is True, the computed size value will be stored into the item. If memorize is True, the computed size value will be stored into the item.
""" """
attr = 'csize' if compressed else 'size' attr = 'csize' if compressed else 'size'
assert not (compressed and memorize), 'Item does not have a csize field.'
try: try:
if from_chunks: if from_chunks:
raise AttributeError raise AttributeError

View File

@ -154,6 +154,11 @@ def test_item_file_size():
ChunkListEntry(csize=1, size=2000, id=None), ChunkListEntry(csize=1, size=2000, id=None),
]) ])
assert item.get_size() == 3000 assert item.get_size() == 3000
with pytest.raises(AssertionError):
item.get_size(compressed=True, memorize=True)
assert item.get_size(compressed=True) == 2
item.get_size(memorize=True)
assert item.size == 3000
def test_item_file_size_no_chunks(): def test_item_file_size_no_chunks():