import random
-from twisted.internet import defer, reactor
+from twisted.internet import defer
from twisted.trial import unittest
-from p2pool import data, networks, p2p
-from p2pool.util import deferral
+from p2pool import networks, p2p
class MyNode(p2p.Node):
+ def __init__(self, df):
+ p2p.Node.__init__(self, lambda: None, 29333, networks.nets['bitcoin'], {}, set([('127.0.0.1', 9333)]), 0, 0, 0, 0)
+
+ self.id_to_use = random.randrange(2**256)
+ self.df = df
+
def handle_share_hashes(self, hashes, peer):
- peer.send_sharereq(id=random.randrange(2**256), hashes=[hashes[0]], parents=5, stops=[])
- print 'handle_share_hashes', (hashes, peer)
+ peer.send_sharereq(
+ id=self.id_to_use,
+ hashes=[hashes[0]],
+ parents=5,
+ stops=[],
+ )
def handle_share_reply(self, id, result, shares, peer):
- print (id, result, shares)
+ if id == self.id_to_use:
+ self.df.callback(None)
class Test(unittest.TestCase):
@defer.inlineCallbacks
def test_sharereq(self):
- n = MyNode(lambda: None, 29333, networks.nets['bitcoin'], {}, set([('127.0.0.1', 9333)]), 0, 0, 0, 0)
+ df = defer.Deferred()
+ n = MyNode(df)
n.start()
try:
- yield deferral.sleep(10)
+ yield df
finally:
n.stop()