Files
2026-03-05 07:38:04 +01:00

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())