46 lines
1.4 KiB
Python

import allure
from src.env_vars import NOMOS_EXECUTOR
from src.steps.common import StepsCommon
def prepare_dispersal_request(data, app_id, index):
data_bytes = data.encode("utf-8")
dispersal_data = {"data": list(data_bytes), "metadata": {"app_id": app_id, "index": index}}
return dispersal_data
def prepare_get_range_request(app_id, start_index, end_index):
query_data = {"app_id": app_id, "range": {"start": start_index, "end": end_index}}
return query_data
class StepsDataAvailability(StepsCommon):
def find_executor_node(self):
executor = {}
for node in self.main_nodes:
if node.node_type() == NOMOS_EXECUTOR:
executor = node
return executor
@allure.step
def disperse_data(self, data, app_id, index):
request = prepare_dispersal_request(data, app_id, index)
executor = self.find_executor_node()
try:
executor.send_dispersal_request(request)
except Exception as ex:
assert "Bad Request" in str(ex) or "Internal Server Error" in str(ex)
@allure.step
def get_data_range(self, node, app_id, start, end):
response = []
query = prepare_get_range_request(app_id, start, end)
try:
response = node.send_get_data_range_request(query)
except Exception as ex:
assert "Bad Request" in str(ex) or "Internal Server Error" in str(ex)
return response