commit e457275128a7034b141f5fca56db035b11d95fd3
parent 0c9b42d0866e4e3a0230e6518b9bf0fd783f0c11
Author: lash <dev@holbrook.no>
Date: Sat, 12 Mar 2022 14:12:02 +0000
WIP crossroads on hex vs bytes interpretation
Diffstat:
4 files changed, 68 insertions(+), 49 deletions(-)
diff --git a/chainqueue/store.py b/chainqueue/store.py
@@ -36,8 +36,10 @@ class Store:
for v in ['state', 'change', 'set', 'unset']:
setattr(self, v, getattr(self.state_store, v))
+ logg.debug('cache {}'.format(cache))
- def put(self, k, v, cache_adapter=CacheTx()):
+
+ def put(self, k, v, cache_adapter=CacheTx):
n = self.counter.next()
t = datetime.datetime.now().timestamp()
s = to_key(t, n, k)
diff --git a/tests/common.py b/tests/common.py
@@ -1,5 +1,11 @@
+# standard imports
+import hashlib
+
# local imports
-from chainqueue.cache import Cache
+from chainqueue.cache import (
+ Cache,
+ CacheTokenTx,
+ )
class MockCounter:
@@ -38,3 +44,47 @@ class MockTokenCache(Cache):
def count(self, cache_filter):
self.last_filter = cache_filter
+
+
+class MockCacheTokenTx(CacheTokenTx):
+
+ def deserialize(self, signed_tx):
+ h = hashlib.sha1()
+ h.update(signed_tx + b'\x01')
+ z = h.digest()
+ nonce = int.from_bytes(z[:4], 'big')
+ token_value = int.from_bytes(z[4:8], 'big')
+ value = int.from_bytes(z[8:12], 'big')
+
+ h = hashlib.sha1()
+ h.update(z)
+ z = h.digest()
+ sender = z.hex()
+
+ h = hashlib.sha1()
+ h.update(z)
+ z = h.digest()
+ recipient = z.hex()
+
+ h = hashlib.sha1()
+ h.update(z)
+ z = h.digest()
+ token = z.hex()
+
+ h = hashlib.sha256()
+ h.update(z)
+ z = h.digest()
+ tx_hash = z.hex()
+
+ #tx = CacheTokenTx(normalizer=self.normalizer)
+ self.init(tx_hash, nonce, sender, recipient, value)
+ self.set('src_token', token)
+ self.set('dst_token', token)
+ self.set('src_value', token_value)
+ self.set('dst_value', token_value)
+ self.confirm(42, 13, 1024000)
+
+ return self
+
+
+
diff --git a/tests/test_cache.py b/tests/test_cache.py
@@ -2,7 +2,6 @@
import os
import logging
import unittest
-import hashlib
import math
# external imports
@@ -18,53 +17,15 @@ from chainqueue.cache import (
# test imports
from tests.base_shep import TestShepBase
-from tests.common import MockTokenCache
+from tests.common import (
+ MockTokenCache,
+ MockTokenCacheTx,
+ )
logging.basicConfig(level=logging.DEBUG)
logg = logging.getLogger()
-class MockCacheTokenTx(CacheTokenTx):
-
- def deserialize(self, signed_tx):
- h = hashlib.sha1()
- h.update(signed_tx + b'\x01')
- z = h.digest()
- nonce = int.from_bytes(z[:4], 'big')
- token_value = int.from_bytes(z[4:8], 'big')
- value = int.from_bytes(z[8:12], 'big')
-
- h = hashlib.sha1()
- h.update(z)
- z = h.digest()
- sender = z.hex()
-
- h = hashlib.sha1()
- h.update(z)
- z = h.digest()
- recipient = z.hex()
-
- h = hashlib.sha1()
- h.update(z)
- z = h.digest()
- token = z.hex()
-
- h = hashlib.sha256()
- h.update(z)
- z = h.digest()
- tx_hash = z.hex()
-
- #tx = CacheTokenTx(normalizer=self.normalizer)
- self.init(tx_hash, nonce, sender, recipient, value)
- self.set('src_token', token)
- self.set('dst_token', token)
- self.set('src_value', token_value)
- self.set('dst_value', token_value)
- self.confirm(42, 13, 1024000)
-
- return self
-
-
class MockNormalizer:
def address(self, v):
diff --git a/tests/test_integrate.py b/tests/test_integrate.py
@@ -1,6 +1,7 @@
# standard imports
import tempfile
import unittest
+import logging
# external imports
from shep.store.file import SimpleFileStoreFactory
@@ -15,8 +16,13 @@ from chainqueue import (
# test imports
from tests.common import (
MockCounter,
- MockTokenCache
+ MockTokenCache,
+ MockCacheTokenTx,
)
+from tests.base_shep import TestShepBase
+
+logging.basicConfig(level=logging.DEBUG)
+logg = logging.getLogger()
class MockContentStore:
@@ -33,7 +39,7 @@ class MockContentStore:
return self.store.get(k)
-class TestShepBase(unittest.TestCase):
+class TestIntegrateBase(TestShepBase):
def setUp(self):
self.path = tempfile.mkdtemp()
@@ -46,8 +52,8 @@ class TestShepBase(unittest.TestCase):
self.store = Store(chain_spec, self.state, content_store, counter, cache=self.cache)
- def test_basic(self):
- pass
+ def test_integration_valid(self):
+ self.store.put(b'foo'.hex(), b'bar'.hex(), cache_adapter=MockCacheTokenTx)
if __name__ == '__main__':