Fix torrent hash generation to work in mixed stacks

This commit is contained in:
Jake Moshenko 2016-01-11 16:43:20 -05:00
parent 8bc8e2acc0
commit 8ab6c8a22d
3 changed files with 12 additions and 7 deletions

View file

@ -10,6 +10,9 @@ class _ResumableSHAField(TextField):
raise NotImplementedError
def db_value(self, value):
if value is None:
return None
sha_state = value.state()
# One of the fields is a byte string, let's base64 encode it to make sure
@ -19,14 +22,14 @@ class _ResumableSHAField(TextField):
return json.dumps(sha_state)
def python_value(self, value):
to_resume = self._create_sha()
if value is None:
return to_resume
return None
sha_state = json.loads(value)
# We need to base64 decode the data bytestring.
sha_state[3] = base64.b64decode(sha_state[3])
to_resume = self._create_sha()
to_resume.set_state(sha_state)
return to_resume