Skip to content

Commit 44f6040

Browse files
committed
Update conftest
1 parent bf8ae17 commit 44f6040

File tree

1 file changed

+53
-51
lines changed

1 file changed

+53
-51
lines changed

tests/testnet/conftest.py

Lines changed: 53 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,19 @@ def pytest_terminal_summary(terminalreporter, exitstatus, config):
8282
# Wait a moment for any pending file writes
8383
time.sleep(1)
8484

85+
# Get all test nodes from the environment
86+
node_to_test = os.getenv("NODE_TO_TEST")
87+
88+
if node_to_test:
89+
# Test specific nodes
90+
nodes_to_check = [node.strip() for node in node_to_test.split(",")]
91+
else:
92+
# Check all possible nodes
93+
nodes_to_check = [
94+
"Node 01", "Node 04", "Node 05", "Node 06", "Node 07", "Node 08",
95+
"Node 09", "Node 10", "Node 13", "Node 14", "Node 21", "Node 23", "Node 37"
96+
]
97+
8598
# Get global stats
8699
global_stats_file = "test_output/global_stats.json"
87100
global_stats = {}
@@ -92,63 +105,52 @@ def pytest_terminal_summary(terminalreporter, exitstatus, config):
92105
except Exception:
93106
pass
94107

95-
# Display blockchain summaries
108+
# Display blockchain summaries only for the tested nodes
96109
for blockchain, nodes in global_stats.items():
97110
print(f"\n🔗 Blockchain: {blockchain}")
98111
for node_name, node_stats in nodes.items():
99-
print(f" • {node_name}:")
100-
101-
# Publish stats
102-
p_success = node_stats.get('publish_success', 0)
103-
p_failed = node_stats.get('publish_failed', 0)
104-
p_rate = round(p_success / (p_success + p_failed) * 100, 2) if (p_success + p_failed) > 0 else 0.0
105-
print(f" 🔸 Publish: ✅ {p_success} / ❌ {p_failed} -> {p_rate}%")
106-
107-
# Query stats
108-
q_success = node_stats.get('query_success', 0)
109-
q_failed = node_stats.get('query_failed', 0)
110-
q_rate = round(q_success / (q_success + q_failed) * 100, 2) if (q_success + q_failed) > 0 else 0.0
111-
print(f" 🔸 Query: ✅ {q_success} / ❌ {q_failed} -> {q_rate}%")
112-
113-
# Local Get stats
114-
lg_success = node_stats.get('local_get_success', 0)
115-
lg_failed = node_stats.get('local_get_failed', 0)
116-
lg_rate = round(lg_success / (lg_success + lg_failed) * 100, 2) if (lg_success + lg_failed) > 0 else 0.0
117-
print(f" 🔸 Local Get: ✅ {lg_success} / ❌ {lg_failed} -> {lg_rate}%")
118-
119-
# Remote Get stats
120-
rg_success = node_stats.get('remote_get_success', 0)
121-
rg_failed = node_stats.get('remote_get_failed', 0)
122-
rg_rate = round(rg_success / (rg_success + rg_failed) * 100, 2) if (rg_success + rg_failed) > 0 else 0.0
123-
print(f" 🔸 Get: ✅ {rg_success} / ❌ {rg_failed} -> {rg_rate}%")
124-
125-
# Timing stats
126-
def format_time(seconds):
127-
return f"{int(seconds // 60)} min {seconds % 60:.2f} sec" if seconds >= 60 else f"{seconds:.2f} seconds"
128-
129-
def avg_time(times):
130-
return sum(times) / len(times) if times else 0.0
131-
132-
print(f" ⏱️ Avg Publish Time: {format_time(avg_time(node_stats.get('publish_times', [])))}")
133-
print(f" ⏱️ Avg Query Time: {format_time(avg_time(node_stats.get('query_times', [])))}")
134-
print(f" ⏱️ Avg Local Get Time: {format_time(avg_time(node_stats.get('local_get_times', [])))}")
135-
print(f" ⏱️ Avg Get Time: {format_time(avg_time(node_stats.get('remote_get_times', [])))}")
112+
# Only show stats for nodes that were actually tested
113+
if node_name in nodes_to_check:
114+
print(f" • {node_name}:")
115+
116+
# Publish stats
117+
p_success = node_stats.get('publish_success', 0)
118+
p_failed = node_stats.get('publish_failed', 0)
119+
p_rate = round(p_success / (p_success + p_failed) * 100, 2) if (p_success + p_failed) > 0 else 0.0
120+
print(f" 🔸 Publish: ✅ {p_success} / ❌ {p_failed} -> {p_rate}%")
121+
122+
# Query stats
123+
q_success = node_stats.get('query_success', 0)
124+
q_failed = node_stats.get('query_failed', 0)
125+
q_rate = round(q_success / (q_success + q_failed) * 100, 2) if (q_success + q_failed) > 0 else 0.0
126+
print(f" 🔸 Query: ✅ {q_success} / ❌ {q_failed} -> {q_rate}%")
127+
128+
# Local Get stats
129+
lg_success = node_stats.get('local_get_success', 0)
130+
lg_failed = node_stats.get('local_get_failed', 0)
131+
lg_rate = round(lg_success / (lg_success + lg_failed) * 100, 2) if (lg_success + lg_failed) > 0 else 0.0
132+
print(f" 🔸 Local Get: ✅ {lg_success} / ❌ {lg_failed} -> {lg_rate}%")
133+
134+
# Remote Get stats
135+
rg_success = node_stats.get('remote_get_success', 0)
136+
rg_failed = node_stats.get('remote_get_failed', 0)
137+
rg_rate = round(rg_success / (rg_success + rg_failed) * 100, 2) if (rg_success + rg_failed) > 0 else 0.0
138+
print(f" 🔸 Get: ✅ {rg_success} / ❌ {rg_failed} -> {rg_rate}%")
139+
140+
# Timing stats
141+
def format_time(seconds):
142+
return f"{int(seconds // 60)} min {seconds % 60:.2f} sec" if seconds >= 60 else f"{seconds:.2f} seconds"
143+
144+
def avg_time(times):
145+
return sum(times) / len(times) if times else 0.0
146+
147+
print(f" ⏱️ Avg Publish Time: {format_time(avg_time(node_stats.get('publish_times', [])))}")
148+
print(f" ⏱️ Avg Query Time: {format_time(avg_time(node_stats.get('query_times', [])))}")
149+
print(f" ⏱️ Avg Local Get Time: {format_time(avg_time(node_stats.get('local_get_times', [])))}")
150+
print(f" ⏱️ Avg Get Time: {format_time(avg_time(node_stats.get('remote_get_times', [])))}")
136151

137152
print("\n📊 Error Breakdown by Node:")
138153

139-
# Get all test nodes from the environment
140-
node_to_test = os.getenv("NODE_TO_TEST")
141-
142-
if node_to_test:
143-
# Test specific nodes
144-
nodes_to_check = [node.strip() for node in node_to_test.split(",")]
145-
else:
146-
# Check all possible nodes
147-
nodes_to_check = [
148-
"Node 01", "Node 04", "Node 05", "Node 06", "Node 07", "Node 08",
149-
"Node 09", "Node 10", "Node 13", "Node 14", "Node 21", "Node 23", "Node 37"
150-
]
151-
152154
# Process each node for errors
153155
for node_name in nodes_to_check:
154156
print(f"\n🔧 {node_name}")

0 commit comments

Comments
 (0)