commit 01b674d09ec0a0b2392a5389fc606c70446a0d53
parent 0fa12adfa1ddccc183edbb9307757f15109e0672
Author: lash <dev@holbrook.no>
Date: Sun, 10 Apr 2022 14:00:01 +0000
Add change test for chainqueue entry
Diffstat:
5 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/chainqueue/entry.py b/chainqueue/entry.py
@@ -115,7 +115,8 @@ class QueueEntry:
def fail(self, block, tx):
if self.__match_state(self.store.NETWORK_ERROR):
return
- self.store.set(self.k, self.store.NETWORK_ERROR)
+ v = self.store.state(self.k)
+ self.store.change(self.k, v | self.store.NETWORK_ERROR, self.store.QUEUED)
if self.store.cache:
self.store.cache.set_block(self.tx_hash, block, tx)
diff --git a/chainqueue/store/base.py b/chainqueue/store/base.py
@@ -1,11 +1,14 @@
# standard imports
import re
import datetime
+import logging
# local imports
from chainqueue.cache import CacheTx
from chainqueue.entry import QueueEntry
+logg = logging.getLogger(__name__)
+
def to_key(t, n, k):
return '{}_{}_{}'.format(t, n, k)
@@ -125,6 +128,7 @@ class Store:
def final(self, k, block, tx, error=False):
entry = QueueEntry(self, k)
entry.load()
+ logg.debug('entry {} {}'.format(k, entry.k))
if error:
entry.fail(block, tx)
else:
diff --git a/tests/base_shep.py b/tests/base_shep.py
@@ -2,6 +2,7 @@
import tempfile
import unittest
import shutil
+import logging
# external imports
from shep.store.file import SimpleFileStoreFactory
@@ -19,6 +20,7 @@ from tests.common import (
MockContentStore,
)
+logg = logging.getLogger(__name__)
class TestShepBase(unittest.TestCase):
@@ -30,6 +32,7 @@ class TestShepBase(unittest.TestCase):
counter = MockCounter()
chain_spec = ChainSpec('foo', 'bar', 42, 'baz')
self.store = Store(chain_spec, self.state, content_store, counter)
+ logg.debug('using path {}'.format(self.path))
def tearDown(self):
diff --git a/tests/test_entry.py b/tests/test_entry.py
@@ -5,6 +5,8 @@ import unittest
# external imports
from hexathon import add_0x
+from chainlib.tx import Tx
+from chainlib.block import Block
# local imports
from chainqueue import QueueEntry
@@ -59,5 +61,25 @@ class TestEntry(TestShepBase):
self.assertEqual(len(txs), 1)
+ def test_entry_change(self):
+ signed_tx = add_0x(os.urandom(128).hex())
+ nonce = 42
+ entry = QueueEntry(self.store, cache_adapter=MockCacheTokenTx)
+ tx_hash = entry.create(signed_tx)
+
+ block = Block()
+ block.number = 13
+ tx = Tx(None)
+ tx.index = 666
+
+ entry.readysend()
+ entry.reserve()
+ entry.sendfail()
+
+ entry = QueueEntry(self.store, tx_hash, cache_adapter=MockCacheTokenTx)
+ entry.load()
+ self.assertEqual(str(entry), tx_hash + ': SENDFAIL')
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/tests/test_shep.py b/tests/test_shep.py
@@ -55,5 +55,6 @@ class TestShep(TestShepBase):
self.store.put('bar', cache_adapter=MockCacheTokenTx)
+
if __name__ == '__main__':
unittest.main()