mirror of
https://github.com/arvidn/libtorrent.git
synced 2026-07-22 03:55:51 -04:00
76 lines
2.2 KiB
Python
76 lines
2.2 KiB
Python
import unittest
|
|
|
|
import libtorrent as lt
|
|
|
|
from . import lib
|
|
|
|
|
|
class Sha1HashTest(unittest.TestCase):
|
|
def test_init_bytes(self) -> None:
|
|
data = lib.get_random_bytes(20)
|
|
sha1 = lt.sha1_hash(data)
|
|
self.assertEqual(sha1.to_bytes(), data)
|
|
|
|
def test_init_short_buffer(self) -> None:
|
|
with self.assertRaises(ValueError):
|
|
lt.sha1_hash(b"a" * 19)
|
|
|
|
def test_init_long_buffer(self) -> None:
|
|
with self.assertWarns(DeprecationWarning):
|
|
sha1 = lt.sha1_hash(b"a" * 21)
|
|
self.assertEqual(sha1.to_bytes(), b"a" * 20)
|
|
|
|
def test_init_str(self) -> None:
|
|
with self.assertWarns(DeprecationWarning):
|
|
sha1 = lt.sha1_hash("a" * 20)
|
|
self.assertEqual(sha1.to_bytes(), b"a" * 20)
|
|
|
|
def test_equal(self) -> None:
|
|
data = lib.get_random_bytes(20)
|
|
sha1_1 = lt.sha1_hash(data)
|
|
sha1_2 = lt.sha1_hash(data)
|
|
|
|
self.assertEqual(sha1_1, sha1_2)
|
|
self.assertEqual(hash(sha1_1), hash(sha1_2))
|
|
|
|
def test_not_equal(self) -> None:
|
|
sha1_1 = lt.sha1_hash(lib.get_random_bytes(20))
|
|
sha1_2 = lt.sha1_hash(lib.get_random_bytes(20))
|
|
|
|
self.assertNotEqual(sha1_1, sha1_2)
|
|
|
|
def test_less_than(self) -> None:
|
|
sha1_1 = lt.sha1_hash(b"\0" * 20)
|
|
sha1_2 = lt.sha1_hash(b"\0" * 19 + b"\1")
|
|
|
|
self.assertLess(sha1_1, sha1_2)
|
|
|
|
def test_convert(self) -> None:
|
|
data = lib.get_random_bytes(20)
|
|
sha1 = lt.sha1_hash(data)
|
|
|
|
self.assertEqual(str(sha1), data.hex())
|
|
self.assertEqual(sha1.to_bytes(), data)
|
|
|
|
def test_to_string(self) -> None:
|
|
sha1 = lt.sha1_hash(b"a" * 20)
|
|
self.assertEqual(sha1.to_string(), b"a" * 20)
|
|
|
|
def test_clear(self) -> None:
|
|
sha1 = lt.sha1_hash(lib.get_random_bytes(20))
|
|
|
|
sha1.clear()
|
|
|
|
self.assertEqual(sha1.to_bytes(), b"\0" * 20)
|
|
|
|
def test_empty(self) -> None:
|
|
sha1 = lt.sha1_hash()
|
|
self.assertTrue(sha1.is_all_zeros())
|
|
|
|
def test_is_all_zeros(self) -> None:
|
|
sha1 = lt.sha1_hash(lib.get_random_bytes(20))
|
|
self.assertFalse(sha1.is_all_zeros())
|
|
|
|
sha1 = lt.sha1_hash(b"\0" * 20)
|
|
self.assertTrue(sha1.is_all_zeros())
|