A test for disseminatePreEncryptedMsg API command

This commit is contained in:
Lee Miller 2024-03-18 02:27:53 +02:00
parent 1794384f01
commit 2030e08db3
Signed by untrusted user: lee.miller
GPG Key ID: 4F97A5EA88F4AB63

View File

@ -2,11 +2,18 @@
import sys import sys
import time import time
from binascii import hexlify, unhexlify
from struct import pack
from six.moves import queue, xmlrpc_client from six.moves import queue, xmlrpc_client
from pybitmessage import protocol
from pybitmessage.defaults import (
networkDefaultProofOfWorkNonceTrialsPerByte,
networkDefaultPayloadLengthExtraBytes)
from .partial import TestPartialRun from .partial import TestPartialRun
from .samples import sample_statusbar_msg # any from .samples import sample_statusbar_msg, sample_object_data
class TestAPIThread(TestPartialRun): class TestAPIThread(TestPartialRun):
@ -66,3 +73,22 @@ class TestAPIThread(TestPartialRun):
if sys.hexversion >= 0x3000000: if sys.hexversion >= 0x3000000:
self.assertEqual(status["networkConnections"], 4) self.assertEqual(status["networkConnections"], 4)
self.assertEqual(status["pendingDownload"], 0) self.assertEqual(status["pendingDownload"], 0)
def test_disseminate_preencrypted(self):
"""Call disseminatePreEncryptedMsg API command and check inventory"""
import proofofwork
from inventory import Inventory
proofofwork.init()
update_object = pack(
'>Q', int(time.time() + 7200)) + sample_object_data[16:]
invhash = unhexlify(self.api.disseminatePreEncryptedMsg(
hexlify(update_object).decode(),
networkDefaultProofOfWorkNonceTrialsPerByte,
networkDefaultPayloadLengthExtraBytes
))
obj_type, obj_stream, obj_data = Inventory()[invhash][:3]
self.assertEqual(obj_type, 42)
self.assertEqual(obj_stream, 2)
self.assertEqual(sample_object_data[16:], obj_data[16:])
self.assertTrue(protocol.isProofOfWorkSufficient(obj_data))