Add a test for object covering also proofofwork
This commit is contained in:
parent
e4887734a0
commit
f35a3504a2
|
@ -1,9 +1,10 @@
|
|||
"""Tests for structures"""
|
||||
import unittest
|
||||
import struct
|
||||
import time
|
||||
from binascii import unhexlify
|
||||
|
||||
from minode import structure
|
||||
from minode import message, proofofwork, shared, structure
|
||||
|
||||
|
||||
# host pregenerated by pybitmessage.protocol.encodeHost()
|
||||
|
@ -85,3 +86,31 @@ class TestStructure(unittest.TestCase):
|
|||
|
||||
addr = structure.NetAddr(1, '2607:5300:201:3000::57ae', 8080, 1)
|
||||
self.assertEqual(addr.to_bytes()[8:], sample_addr_data[8:])
|
||||
|
||||
def test_object(self):
|
||||
"""Create and check objects"""
|
||||
obj = structure.Object(
|
||||
b'\x00' * 8, int(time.time() + 3000000), 42, 1, 1, b'HELLO')
|
||||
self.assertFalse(obj.is_valid())
|
||||
obj.expires_time = int(time.time() - 11000)
|
||||
self.assertFalse(obj.is_valid())
|
||||
|
||||
obj = structure.Object(
|
||||
b'\x00' * 8, int(time.time() + 300), 42, 1, 2, b'HELLO')
|
||||
vector = obj.vector
|
||||
proofofwork._worker(obj) # pylint: disable=protected-access
|
||||
obj = shared.objects.popitem()[1]
|
||||
self.assertNotEqual(obj.vector, vector)
|
||||
self.assertFalse(obj.is_expired())
|
||||
self.assertFalse(obj.is_valid())
|
||||
shared.stream = 2
|
||||
self.assertTrue(obj.is_valid())
|
||||
|
||||
obj = structure.Object.from_message(
|
||||
message.Message(b'object', obj.to_bytes()))
|
||||
self.assertEqual(obj.object_type, 42)
|
||||
self.assertEqual(obj.object_payload, b'HELLO')
|
||||
|
||||
obj.object_payload = \
|
||||
b'TIGER, tiger, burning bright. In the forests of the night'
|
||||
self.assertFalse(obj.is_valid())
|
||||
|
|
Loading…
Reference in New Issue