From 410eb43bdba2a1814978adff4a0b96dd270a5b2e Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 29 May 2025 17:12:57 +0800 Subject: [PATCH] test: read config file from container as tar buffer --- cluster_config/scripts/run_customized_node.sh | 3 +-- .../test_data_confidentiality.py | 26 ++++++++++++++++--- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/cluster_config/scripts/run_customized_node.sh b/cluster_config/scripts/run_customized_node.sh index 8440bff..734cb20 100755 --- a/cluster_config/scripts/run_customized_node.sh +++ b/cluster_config/scripts/run_customized_node.sh @@ -9,5 +9,4 @@ export CFG_FILE_PATH="/etc/nomos/config.yaml" \ LOG_LEVEL="INFO" \ RISC0_DEV_MODE=true -/usr/bin/cfgsync-client && \ - exec /usr/bin/nomos-node /etc/nomos/config.yaml +exec /usr/bin/nomos-node /etc/nomos/config.yaml diff --git a/tests/data_confidentiality/test_data_confidentiality.py b/tests/data_confidentiality/test_data_confidentiality.py index 9389ff9..1562d05 100644 --- a/tests/data_confidentiality/test_data_confidentiality.py +++ b/tests/data_confidentiality/test_data_confidentiality.py @@ -1,4 +1,6 @@ +import io import json +import tarfile import pytest @@ -29,11 +31,18 @@ class TestDataConfidentiality(StepsDataAvailability): assert DATA_TO_DISPERSE[1] == decoded_data, "Retrieved data are not same with original data" # Copy the config file from first node - cfg_file = open("./cluster_config/config.yaml", "wb") stream, _stat = self.node2.get_archive("/config.yaml") - for chunk in stream: - cfg_file.write(chunk) - cfg_file.close() + + # Join stream into bytes and load into a memory buffer + tar_bytes = io.BytesIO(b"".join(stream)) + + # Extract and write only the actual text file + with tarfile.open(fileobj=tar_bytes) as tar: + member = tar.getmembers()[0] + file_obj = tar.extractfile(member) + if file_obj: + with open("./cluster_config/config.yaml", "wb") as f: + f.write(file_obj.read()) self.node2.stop() @@ -48,3 +57,12 @@ class TestDataConfidentiality(StepsDataAvailability): raise delay(600) + + # delay(CONSENSUS_SLOT_TIME) + # + # self.disperse_data(DATA_TO_DISPERSE[2], to_app_id(2), to_index(0)) + # delay(CONSENSUS_SLOT_TIME) + # try: + # rcv_data = self.get_data_range(self.nodeX, to_app_id(2), to_index(0), to_index(5)) + # except AssertionError as ae: + # assert "Get data range response is empty" in str(ae), "Get data range response should be empty"