Commit a7eee284 authored by Kirill Smelkov's avatar Kirill Smelkov

*: Pass bytes - not unicode - literals to sha1()

	data = 'data1'

	    def sha1(data):
	        m = hashlib.sha1()
	>       m.update(data)
	E       TypeError: Unicode-objects must be encoded before hashing

	zodbtools/util.py:38: TypeError

Based on patch by Jérome Perrin.
parent 7a7370e6
# Copyright (C) 2018 Nexedi SA and Contributors. # -*- coding: utf-8 -*-
# Kirill Smelkov <kirr@nexedi.com> # Copyright (C) 2018-2019 Nexedi SA and Contributors.
# Kirill Smelkov <kirr@nexedi.com>
# Jérome Perrin <jerome@nexedi.com>
# #
# This program is free software: you can Use, Study, Modify and Redistribute # This program is free software: you can Use, Study, Modify and Redistribute
# it under the terms of the GNU General Public License version 3, or (at your # it under the terms of the GNU General Public License version 3, or (at your
...@@ -41,8 +43,8 @@ def test_zodbcommit(zext): ...@@ -41,8 +43,8 @@ def test_zodbcommit(zext):
# commit some transactions via zodbcommit and verify if storage dump gives # commit some transactions via zodbcommit and verify if storage dump gives
# what is expected. # what is expected.
t1 = Transaction(z64, ' ', b'user name', b'description ...', zext(dumps({'a': 'b'}, _protocol)), [ t1 = Transaction(z64, ' ', b'user name', b'description ...', zext(dumps({'a': 'b'}, _protocol)), [
ObjectData(p64(1), b'data1', 'sha1', sha1('data1')), ObjectData(p64(1), b'data1', 'sha1', sha1(b'data1')),
ObjectData(p64(2), b'data2', 'sha1', sha1('data2'))]) ObjectData(p64(2), b'data2', 'sha1', sha1(b'data2'))])
t1.tid = zodbcommit(stor, head, t1) t1.tid = zodbcommit(stor, head, t1)
......
...@@ -36,6 +36,7 @@ def fromhex(s): ...@@ -36,6 +36,7 @@ def fromhex(s):
return codecs.decode(s, 'hex') return codecs.decode(s, 'hex')
def sha1(data): def sha1(data):
# type: (bytes) -> bytes
m = hashlib.sha1() m = hashlib.sha1()
m.update(data) m.update(data)
return m.digest() return m.digest()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment