mirror of
https://github.com/aljazceru/python-teos.git
synced 2025-12-19 07:04:27 +01:00
Replaces asserts for Exceptions in simulator
This commit is contained in:
@@ -31,9 +31,14 @@ def parse_varint(tx):
|
||||
# First of all, the offset of the hex transaction if moved to the proper position (i.e where the varint should be
|
||||
# located) and the length and format of the data to be analyzed is checked.
|
||||
data = tx.hex[tx.offset :]
|
||||
assert len(data) > 0
|
||||
size = int(data[:2], 16)
|
||||
assert size <= 255
|
||||
if len(data) > 0:
|
||||
size = int(data[:2], 16)
|
||||
|
||||
else:
|
||||
raise ValueError("No data to be parsed")
|
||||
|
||||
if size > 255:
|
||||
raise ValueError("Wrong value (varint size > 255)")
|
||||
|
||||
# Then, the integer is encoded as a varint using the proper prefix, if needed.
|
||||
if size <= 252: # No prefix
|
||||
|
||||
@@ -2,6 +2,7 @@ import pytest
|
||||
|
||||
from pisa import c_logger
|
||||
from pisa.block_processor import BlockProcessor
|
||||
from pisa.utils.auth_proxy import JSONRPCException
|
||||
from test.unit.conftest import get_random_value_hex
|
||||
|
||||
c_logger.disabled = True
|
||||
@@ -36,3 +37,33 @@ def test_get_random_block():
|
||||
def test_get_block_count():
|
||||
block_count = BlockProcessor.get_block_count()
|
||||
assert isinstance(block_count, int) and block_count >= 0
|
||||
|
||||
|
||||
def test_decode_raw_transaction():
|
||||
# We cannot exhaustively test this (we rely on bitcoind for this) but we can try to decode a correct transaction
|
||||
hex_tx = (
|
||||
"0100000001c997a5e56e104102fa209c6a852dd90660a20b2d9c352423edce25857fcd3704000000004847304402"
|
||||
"204e45e16932b8af514961a1d3a1a25fdf3f4f7732e9d624c6c61548ab5fb8cd410220181522ec8eca07de4860a4"
|
||||
"acdd12909d831cc56cbbac4622082221a8768d1d0901ffffffff0200ca9a3b00000000434104ae1a62fe09c5f51b"
|
||||
"13905f07f06b99a2f7159b2225f374cd378d71302fa28414e7aab37397f554a7df5f142c21c1b7303b8a0626f1ba"
|
||||
"ded5c72a704f7e6cd84cac00286bee0000000043410411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482e"
|
||||
"cad7b148a6909a5cb2e0eaddfb84ccf9744464f82e160bfa9b8b64f9d4c03f999b8643f656b412a3ac00000000"
|
||||
)
|
||||
|
||||
try:
|
||||
BlockProcessor.decode_raw_transaction(hex_tx)
|
||||
assert True
|
||||
except JSONRPCException:
|
||||
assert False
|
||||
|
||||
|
||||
def test_decode_raw_transaction_invalid():
|
||||
# Same but with an invalid one
|
||||
|
||||
hex_tx = "A" * 16
|
||||
|
||||
try:
|
||||
BlockProcessor.decode_raw_transaction(hex_tx)
|
||||
assert False
|
||||
except JSONRPCException:
|
||||
assert True
|
||||
|
||||
Reference in New Issue
Block a user