test: use setup_main_nodes fixture

- add disperse_data
This commit is contained in:
Roman 2025-01-17 14:23:52 +08:00
parent a5a3f179af
commit 2fc0cd1974
No known key found for this signature in database
GPG Key ID: B8FE070B54E11B75
6 changed files with 50 additions and 23 deletions

View File

@ -24,8 +24,8 @@ class REST(BaseClient):
status_response = self.rest_call("get", "cryptarchia/info")
return status_response.json()
def disperse_data(self, dispersal_request):
return self.rest_call("post", "disperse-data", json.dumps(dispersal_request))
def send_dispersal_request(self, data):
return self.rest_call("post", "disperse-data", json.dumps(data))
def get_range(self, app_id, data_range):
return self.rest_call("post", "da/get-range", json.dumps({app_id, data_range}))
return self.rest_call("post", "da/get-range", json.dumps({"app_id": app_id, "data_range": data_range}))

View File

@ -145,3 +145,6 @@ class NomosNode:
matches = self._docker_manager.search_log_for_keywords(self._log_path, keywords, False)
assert not matches, f"Found errors {matches}"
def send_dispersal_request(self, data):
return self._api.send_dispersal_request(data)

19
src/steps/da.py Normal file
View File

@ -0,0 +1,19 @@
import allure
from src.steps.common import StepsCommon
def prepare_dispersal_data(data):
dispersal_data = {"data": data, "metadata": {"app_id": 10, "index": 0}}
return dispersal_data
class StepsDataAvailability(StepsCommon):
@allure.step
def disperse_data(self, data):
dispersal_data = prepare_dispersal_data(data)
try:
self.node3.send_dispersal_request(dispersal_data)
except Exception as ex:
assert "Bad Request" in str(ex) or "Internal Server Error" in str(ex)

View File

@ -24,3 +24,13 @@ LOG_ERROR_KEYWORDS = [
"race condition",
"double free",
]
DATA_TO_DISPERSE = {
"Hello World!",
"1234567890",
'{"key": "value"}',
"这是一些中文",
"🚀🌟✨",
"Lorem ipsum dolor sit amet",
"<html><body>Hello</body></html>",
}

View File

@ -1,4 +1,11 @@
class TestDataIntegrity:
import pytest
from src.steps.da import StepsDataAvailability
from src.test_data import DATA_TO_DISPERSE
@pytest.mark.usefixtures("setup_main_nodes")
class TestDataIntegrity(StepsDataAvailability):
main_nodes = []
def test_da_identify_retrieve_missing_columns(self):
@ -6,9 +13,7 @@ class TestDataIntegrity:
print(node)
def test_da_sampling_determines_data_presence(self):
for node in self.main_nodes:
print(node)
self.disperse_data(DATA_TO_DISPERSE[0])
# Disperse data
# Get data from range
# Compare

View File

@ -1,24 +1,14 @@
import pytest
from src.env_vars import CFGSYNC, NOMOS, NOMOS_EXECUTOR
from src.libs.custom_logger import get_custom_logger
from src.node.nomos_node import NomosNode
from src.steps.common import StepsCommon
logger = get_custom_logger(__name__)
class Test2NodeClAlive:
class Test2NodeClAlive(StepsCommon):
@pytest.mark.usefixtures("setup_main_nodes")
def test_cluster_start(self):
self.node1 = NomosNode(CFGSYNC, "cfgsync")
self.node2 = NomosNode(NOMOS, "nomos_node_0")
self.node3 = NomosNode(NOMOS_EXECUTOR, "nomos_node_1")
self.node1.start()
self.node2.start()
self.node3.start()
try:
self.node2.ensure_ready()
self.node3.ensure_ready()
except Exception as ex:
logger.error(f"REST service did not become ready in time: {ex}")
raise
logger.debug("Two nodes cluster started successfully!")