diff --git a/tests/store/test_page_size.py b/tests/store/test_page_size.py index ee65453e..42cbea77 100644 --- a/tests/store/test_page_size.py +++ b/tests/store/test_page_size.py @@ -1,6 +1,9 @@ import pytest from src.libs.common import to_base64 from src.steps.store import StepsStore +from src.libs.custom_logger import get_custom_logger + +logger = get_custom_logger(__name__) @pytest.mark.usefixtures("node_setup") @@ -33,3 +36,31 @@ class TestPageSize(StepsStore): for node in self.store_nodes: store_response = self.get_messages_from_store(node, page_size=page_size) assert len(store_response.messages) == page_size, "Message count mismatch" + + def test_extreme_number_page_size(self): + for i in range(150): + self.publish_message(message=self.create_message(payload=to_base64(f"Message_{i}"))) + for node in self.store_nodes: + store_response = self.get_messages_from_store(node, page_size=1000000) + assert len(store_response.messages) == 100, "Message count mismatch" + + def test_negative_number_page_size(self): + page_size = -1 + for i in range(10): + self.publish_message(message=self.create_message(payload=to_base64(f"Message_{i}"))) + logger.debug(f"requesting stored message with wrong page_size = {page_size}") + for node in self.store_nodes: + store_response = self.get_messages_from_store(node, page_size=page_size) + assert len(store_response.messages) == 10, "Message count mismatch" + + def test_invalid_page_size(self): + page_size = "$2" + for i in range(10): + self.publish_message(message=self.create_message(payload=to_base64(f"Message_{i}"))) + for node in self.store_nodes: + try: + store_response = self.get_messages_from_store(node, page_size=page_size) + raise Exception(f"invalid page number {page_size} was acepted !!") + except Exception as e: + logger.debug(f"the invalid page_size {page_size} wasn't accepted ") + assert e.args[0].find("400 Client Error: Bad Request for url"), "Error logged isn't for bad url" diff --git a/tests/store/test_sorting.py b/tests/store/test_sorting.py index 512e44b7..1e8373aa 100644 --- a/tests/store/test_sorting.py +++ b/tests/store/test_sorting.py @@ -1,6 +1,9 @@ import pytest from src.libs.common import to_base64 from src.steps.store import StepsStore +from src.libs.custom_logger import get_custom_logger + +logger = get_custom_logger(__name__) @pytest.mark.usefixtures("node_setup") @@ -21,3 +24,18 @@ class TestSorting(StepsStore): assert response_message_hash_list == expected_message_hash_list[:5], "Message hash mismatch for acending order" else: assert response_message_hash_list == expected_message_hash_list[5:], "Message hash mismatch for descending order" + + def test_store_invalid_ascending(self): + expected_message_hash_list = [] + ascending = "##" + for i in range(4): + message = self.create_message(payload=to_base64(f"Message_{i}")) + self.publish_message(message=message) + expected_message_hash_list.append(self.compute_message_hash(self.test_pubsub_topic, message)) + logger.debug(f"requesting stored messages with invalid ascending ={ascending}") + for node in self.store_nodes: + store_response = self.get_messages_from_store(node, ascending=ascending, page_size=2) + response_message_hash_list = [] + for index in range(len(store_response.messages)): + response_message_hash_list.append(store_response.message_hash(index)) + assert response_message_hash_list == expected_message_hash_list[:2], "pages aren't forward as expected"