Fix retry of broken encrypted upload

- Resolves #61
This commit is contained in:
Fred Park 2018-04-05 12:35:51 -07:00
Родитель 8a6f42dadd
Коммит 04d3774be2
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 3C4D545F457737EB
2 изменённых файлов: 16 добавлений и 2 удалений

Просмотреть файл

@ -99,8 +99,12 @@ def get_md5_from_metadata(ase):
# md5 in blobxfer extensions # md5 in blobxfer extensions
md5 = None md5 = None
if ase.is_encrypted: if ase.is_encrypted:
md5 = ase.encryption_metadata.blobxfer_extensions.\ try:
pre_encrypted_content_md5 md5 = ase.encryption_metadata.blobxfer_extensions.\
pre_encrypted_content_md5
except AttributeError:
# this can happen if partial metadata is present
md5 = None
if blobxfer.util.is_none_or_empty(md5): if blobxfer.util.is_none_or_empty(md5):
md5 = ase.md5 md5 = ase.md5
return md5 return md5

Просмотреть файл

@ -13,6 +13,12 @@ import pytest
import blobxfer.models.metadata as md import blobxfer.models.metadata as md
class AseAE(object):
def __init__(self):
self.is_encrypted = True
self.md5 = 'aseae'
def test_get_md5_from_metadata(): def test_get_md5_from_metadata():
ase = mock.MagicMock() ase = mock.MagicMock()
ase.is_encrypted = True ase.is_encrypted = True
@ -24,6 +30,10 @@ def test_get_md5_from_metadata():
ase.md5 = 'md5' ase.md5 = 'md5'
assert md.get_md5_from_metadata(ase) == 'md5' assert md.get_md5_from_metadata(ase) == 'md5'
ase = AseAE()
asemd5 = md.get_md5_from_metadata(ase)
assert asemd5 == 'aseae'
def test_generate_fileattr_metadata(): def test_generate_fileattr_metadata():
with mock.patch('blobxfer.util.on_windows', return_value=True): with mock.patch('blobxfer.util.on_windows', return_value=True):