diff --git a/src/node/api_clients/rest.py b/src/node/api_clients/rest.py index 0b697ab..604a6ed 100644 --- a/src/node/api_clients/rest.py +++ b/src/node/api_clients/rest.py @@ -27,5 +27,5 @@ class REST(BaseClient): 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": app_id, "data_range": data_range})) + def send_get_range(self, query): + return self.rest_call("post", "da/get-range", json.dumps(query)) diff --git a/src/node/nomos_node.py b/src/node/nomos_node.py index bf74887..6a838bc 100644 --- a/src/node/nomos_node.py +++ b/src/node/nomos_node.py @@ -148,3 +148,6 @@ class NomosNode: def send_dispersal_request(self, data): return self._api.send_dispersal_request(data) + + def send_get_data_range_request(self, data): + return self._api.send_get_range(data) diff --git a/src/steps/da.py b/src/steps/da.py index f3e6123..fe9ce18 100644 --- a/src/steps/da.py +++ b/src/steps/da.py @@ -3,18 +3,31 @@ import allure from src.steps.common import StepsCommon -def prepare_dispersal_data(data): +def prepare_dispersal_request(data, app_id, index): data_bytes = data.encode("utf-8") dispersal_data = {"data": list(data_bytes), "metadata": {"app_id": [1] + [0] * 31, "index": [0] * 8}} 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): @allure.step - def disperse_data(self, data): - dispersal_data = prepare_dispersal_data(data) + def disperse_data(self, data, app_id, index): + request = prepare_dispersal_request(data) try: - self.node3.send_dispersal_request(dispersal_data) + self.node3.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, app_id, start, end): + query = prepare_get_range_request(app_id, start, end) + try: + self.node2.send_get_data_range_request(query) except Exception as ex: assert "Bad Request" in str(ex) or "Internal Server Error" in str(ex) diff --git a/tests/data_integrity/test_data_integrity.py b/tests/data_integrity/test_data_integrity.py index 6be91a1..4c2c5f4 100644 --- a/tests/data_integrity/test_data_integrity.py +++ b/tests/data_integrity/test_data_integrity.py @@ -13,7 +13,6 @@ class TestDataIntegrity(StepsDataAvailability): print(node) def test_da_sampling_determines_data_presence(self): - self.disperse_data(DATA_TO_DISPERSE[0]) - - # Get data from range - # Compare + self.disperse_data(DATA_TO_DISPERSE[0], [0] * 31 + [1], [0] * 8) + received_data = self.get_data_range([0] * 31 + [1], [0] * 8, [0] * 7 + [5]) + assert DATA_TO_DISPERSE[0] == received_data