mirror of
https://github.com/logos-messaging/logos-messaging-interop-tests.git
synced 2026-01-02 14:03:08 +00:00
chore: updating the hash-computing function to use hex (#102)
This commit is contained in:
parent
03a4f24ce9
commit
54a0dc29e8
@ -26,6 +26,18 @@ def to_base64(input_data):
|
|||||||
return base64_encoded.decode()
|
return base64_encoded.decode()
|
||||||
|
|
||||||
|
|
||||||
|
def to_hex(input_data):
|
||||||
|
if isinstance(input_data, str):
|
||||||
|
input_bytes = input_data.encode()
|
||||||
|
elif isinstance(input_data, int):
|
||||||
|
input_bytes = str(input_data).encode()
|
||||||
|
elif isinstance(input_data, bytes):
|
||||||
|
input_bytes = input_data
|
||||||
|
else:
|
||||||
|
input_bytes = str(input_data).encode()
|
||||||
|
return "0x" + input_bytes.hex()
|
||||||
|
|
||||||
|
|
||||||
def attach_allure_file(file):
|
def attach_allure_file(file):
|
||||||
logger.debug(f"Attaching file {file}")
|
logger.debug(f"Attaching file {file}")
|
||||||
allure.attach.file(file, name=os.path.basename(file), attachment_type=allure.attachment_type.TEXT)
|
allure.attach.file(file, name=os.path.basename(file), attachment_type=allure.attachment_type.TEXT)
|
||||||
|
|||||||
@ -57,7 +57,7 @@ class StepsCommon:
|
|||||||
ctx.update(base64.b64decode(msg["meta"]))
|
ctx.update(base64.b64decode(msg["meta"]))
|
||||||
ctx.update(int(msg["timestamp"]).to_bytes(8, byteorder="big"))
|
ctx.update(int(msg["timestamp"]).to_bytes(8, byteorder="big"))
|
||||||
hash_bytes = ctx.digest()
|
hash_bytes = ctx.digest()
|
||||||
return base64.b64encode(hash_bytes).decode("utf-8")
|
return "0x" + hash_bytes.hex()
|
||||||
|
|
||||||
def get_time_list_pass(self):
|
def get_time_list_pass(self):
|
||||||
ts_pass = [
|
ts_pass = [
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import pytest
|
import pytest
|
||||||
from src.env_vars import NODE_1, NODE_2
|
from src.env_vars import NODE_1, NODE_2
|
||||||
from src.libs.common import to_base64
|
from src.libs.common import to_base64, to_hex
|
||||||
from src.node.store_response import StoreResponse
|
from src.node.store_response import StoreResponse
|
||||||
from src.steps.store import StepsStore
|
from src.steps.store import StepsStore
|
||||||
|
|
||||||
@ -70,8 +70,8 @@ class TestCursor(StepsStore):
|
|||||||
def test_passing_invalid_cursor(self):
|
def test_passing_invalid_cursor(self):
|
||||||
for i in range(4):
|
for i in range(4):
|
||||||
self.publish_message(message=self.create_message(payload=to_base64(f"Message_{i}")))
|
self.publish_message(message=self.create_message(payload=to_base64(f"Message_{i}")))
|
||||||
# creating a invalid base64 cursor
|
# creating a invalid hex cursor
|
||||||
cursor = to_base64("test")
|
cursor = to_hex("test")
|
||||||
for node in self.store_nodes:
|
for node in self.store_nodes:
|
||||||
store_response = self.get_messages_from_store(node, page_size=100, cursor=cursor)
|
store_response = self.get_messages_from_store(node, page_size=100, cursor=cursor)
|
||||||
assert not store_response.messages, "Messages found"
|
assert not store_response.messages, "Messages found"
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import pytest
|
import pytest
|
||||||
from src.env_vars import NODE_2
|
from src.env_vars import NODE_2
|
||||||
from src.libs.common import to_base64
|
from src.libs.common import to_base64, to_hex
|
||||||
from src.libs.custom_logger import get_custom_logger
|
from src.libs.custom_logger import get_custom_logger
|
||||||
from src.steps.store import StepsStore
|
from src.steps.store import StepsStore
|
||||||
from src.test_data import SAMPLE_INPUTS
|
from src.test_data import SAMPLE_INPUTS
|
||||||
@ -46,7 +46,7 @@ class TestHashes(StepsStore):
|
|||||||
def test_store_with_invalid_hash(self):
|
def test_store_with_invalid_hash(self):
|
||||||
for i in range(4):
|
for i in range(4):
|
||||||
self.publish_message(message=self.create_message(payload=to_base64(f"Message_{i}")))
|
self.publish_message(message=self.create_message(payload=to_base64(f"Message_{i}")))
|
||||||
invalid_hash = to_base64("test")
|
invalid_hash = to_hex("test")
|
||||||
for node in self.store_nodes:
|
for node in self.store_nodes:
|
||||||
try:
|
try:
|
||||||
store_response = self.get_messages_from_store(node, hashes=invalid_hash, page_size=50)
|
store_response = self.get_messages_from_store(node, hashes=invalid_hash, page_size=50)
|
||||||
@ -54,16 +54,16 @@ class TestHashes(StepsStore):
|
|||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
assert "waku message hash parsing error: invalid hash length" in str(ex)
|
assert "waku message hash parsing error: invalid hash length" in str(ex)
|
||||||
|
|
||||||
def test_store_with_non_base64_hash(self):
|
def test_store_with_non_hex_hash(self):
|
||||||
for i in range(4):
|
for i in range(4):
|
||||||
self.publish_message(message=self.create_message(payload=to_base64(f"Message_{i}")))
|
self.publish_message(message=self.create_message(payload=to_base64(f"Message_{i}")))
|
||||||
non_base64_hash = "test"
|
non_hex_hash = "test"
|
||||||
for node in self.store_nodes:
|
for node in self.store_nodes:
|
||||||
try:
|
try:
|
||||||
store_response = self.get_messages_from_store(node, hashes=non_base64_hash, page_size=50)
|
store_response = self.get_messages_from_store(node, hashes=non_hex_hash, page_size=50)
|
||||||
assert not store_response.messages
|
assert not store_response.messages
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
assert "waku message hash parsing error: invalid hash length" in str(ex)
|
assert "Exception converting hex string to bytes: t is not a hexadecimal character" in str(ex)
|
||||||
|
|
||||||
# Addon on Test
|
# Addon on Test
|
||||||
|
|
||||||
@ -106,18 +106,18 @@ class TestHashes(StepsStore):
|
|||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
assert "waku message hash parsing error" in str(ex), "Unexpected error for combined empty and valid hash"
|
assert "waku message hash parsing error" in str(ex), "Unexpected error for combined empty and valid hash"
|
||||||
|
|
||||||
# Test for hashes that include non-Base64 characters.
|
# Test for hashes that include non-hex characters.
|
||||||
def test_store_with_non_base64_characters_in_hash(self):
|
def test_store_with_non_hex_characters_in_hash(self):
|
||||||
non_base64_hash = "###INVALID###" # Invalid hash with non-Base64 characters
|
non_hex_hash = "### INVALID HASH ###" # Invalid hash with non-hex characters
|
||||||
for i in range(4):
|
for i in range(4):
|
||||||
self.publish_message(message=self.create_message(payload=to_base64(f"Message_{i}")))
|
self.publish_message(message=self.create_message(payload=to_base64(f"Message_{i}")))
|
||||||
|
|
||||||
for node in self.store_nodes:
|
for node in self.store_nodes:
|
||||||
store_response = self.get_store_messages_with_errors(node, hashes=non_base64_hash, page_size=50)
|
store_response = self.get_store_messages_with_errors(node, hashes=non_hex_hash, page_size=50)
|
||||||
|
|
||||||
assert (
|
assert (
|
||||||
"waku message hash parsing error: Incorrect base64 string" in store_response["error_message"]
|
"Exception converting hex string to bytes: # is not a hexadecimal character" in store_response["error_message"]
|
||||||
), f"Expected 'Incorrect base64 string' error, got {store_response['error_message']}"
|
), f"Expected '# is not a hexadecimal character' error, got {store_response['error_message']}"
|
||||||
|
|
||||||
# Test when duplicate valid hashes are provided.
|
# Test when duplicate valid hashes are provided.
|
||||||
def test_store_with_duplicate_hashes(self):
|
def test_store_with_duplicate_hashes(self):
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user