Skip to content

Commit a7e251a

Browse files
committed
Update system test to changed output
1 parent 8ea562f commit a7e251a

3 files changed

Lines changed: 25 additions & 40 deletions

File tree

.coveragerc

Lines changed: 0 additions & 3 deletions
This file was deleted.

manager.py

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,9 @@ def stop_node(self, node: Node):
203203
"""
204204
print(f"Stopping {node.type} {node.name} on port {node.port}")
205205
url = f"{node.base_url}/mgmt/v1/stop"
206-
self.http_request("POST", url)
206+
self.http_request(
207+
"POST", url, f"stop {node.type} {node.name}", quiet_success=True
208+
)
207209

208210
def selected_nodes_description(self):
209211
"""
@@ -280,26 +282,13 @@ def status_topology(self):
280282
for node in self.selected_nodes():
281283
self.status_node(node)
282284

283-
def report_response(self, response: httpx.Response):
284-
"""
285-
Report a response from a node.
286-
"""
287-
if response.status_code != 200:
288-
print(f"Status code: {response.status_code}")
289-
try:
290-
response_json = response.json()
291-
print(json.dumps(response_json, indent=2))
292-
except json.JSONDecodeError:
293-
print(response.text)
294-
295285
def status_node(self, node: Node):
296286
"""
297287
Report status for a node.
298288
"""
299289
print(f"Status for {node.type} {node.name} on port {node.port}")
300290
url = f"{node.base_url}/mgmt/v1/status"
301-
response = self.http_request("GET", url)
302-
self.report_response(response)
291+
self.http_request("GET", url, "get status")
303292

304293
def etsi_qkd(self):
305294
"""
@@ -338,8 +327,7 @@ def etsi_qkd_status(self, master_node: Node, slave_node: Node):
338327
f"Invoke ETSI QKD Status API for client {master_node.name} on port {master_node.port}"
339328
)
340329
url = f"{master_node.base_url}/etsi/api/v1/keys/{slave_node.name}/status"
341-
response = self.http_request("GET", url)
342-
self.report_response(response)
330+
self.http_request("GET", url, "get status")
343331

344332
def etsi_qkd_get_key(self, master_node: Node, slave_node: Node) -> None | dict:
345333
"""
@@ -349,8 +337,9 @@ def etsi_qkd_get_key(self, master_node: Node, slave_node: Node) -> None | dict:
349337
f"Invoke ETSI QKD Get Key API for client {master_node.name} on port {master_node.port}"
350338
)
351339
url = f"{master_node.base_url}/etsi/api/v1/keys/{slave_node.name}/enc_keys"
352-
response = self.http_request("GET", url)
353-
self.report_response(response)
340+
response = self.http_request("GET", url, "get key")
341+
if response is None:
342+
return None
354343
return response.json()
355344

356345
def etsi_qkd_get_key_with_key_ids(
@@ -364,8 +353,9 @@ def etsi_qkd_get_key_with_key_ids(
364353
f"on port {slave_node.port}"
365354
)
366355
url = f"{slave_node.base_url}/etsi/api/v1/keys/{master_node.name}/dec_keys?key_ID={key_id}"
367-
response = self.http_request("GET", url)
368-
self.report_response(response)
356+
response = self.http_request("GET", url, "get key with key IDs")
357+
if response is None:
358+
return None
369359
return response.json()
370360

371361
def etsi_qkd_get_key_pair(self, master_node: Node, slave_node: Node):
@@ -384,20 +374,28 @@ def etsi_qkd_get_key_pair(self, master_node: Node, slave_node: Node):
384374
else:
385375
print("Key values do not match")
386376

387-
def http_request(self, method: str, url: str) -> httpx.Response:
377+
def http_request(
378+
self, method: str, url: str, action: str | None, quiet_success=False
379+
) -> httpx.Response:
388380
"""
389381
Make an HTTP request.
390382
"""
391383
try:
392384
response = httpx.request(method, url, timeout=1.0)
393385
except httpx.HTTPError as exc:
394-
self.error(f"Failed to make HTTP request {method} {url}: {exc}")
386+
if action is not None:
387+
print(f"Failed to {action}: {method} {url} raised exception {exc}")
395388
return None
396389
if response.status_code != 200:
397-
self.error(
398-
f"HTTP request {method} {url} failed "
399-
f"with status code {response.status_code}: {response.text}"
390+
print(
391+
f"Failed to {action}: {method} {url} returned status code {response.status_code}"
400392
)
393+
if not quiet_success:
394+
try:
395+
response_json = response.json()
396+
print(json.dumps(response_json, indent=2))
397+
except json.JSONDecodeError:
398+
print(response.text)
401399
return response
402400

403401

system_tests/system_test_common.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -55,23 +55,14 @@ def stop_topology(
5555
if not_started:
5656
expect_failure = True
5757
elif stopped_nodes is not None:
58-
print("Checking stopped nodes...", file=sys.stderr)
5958
expect_failure = False
6059
for stopped_node_type_str, stopped_node_name in stopped_nodes:
6160
stopped_node_type = NodeType.from_str(stopped_node_type_str)
62-
print(
63-
f"{stopped_node_name=} {stopped_node_type=} {node=}",
64-
file=sys.stderr,
65-
)
6661
if node.type == stopped_node_type and node.name == stopped_node_name:
6762
expect_failure = True
6863
break
6964
else:
7065
expect_failure = False
71-
print(
72-
f"expect_failure={expect_failure} for {node.type} {node.name}",
73-
file=sys.stderr,
74-
)
7566
line = rf"Failed to stop {node.type} {node.name}"
7667
if expect_failure:
7768
assert next_output_matches(output, line)
@@ -205,7 +196,7 @@ def check_output(
205196
Check output from the manager.
206197
"""
207198
if expected_status_code != 200:
208-
assert some_output_matches(output, rf"Status code: {expected_status_code}")
199+
assert some_output_matches(output, rf"status code {expected_status_code}")
209200
if expected_output_lines is not None:
210201
for expected_output_line in expected_output_lines:
211202
assert some_output_matches(output, expected_output_line)
@@ -299,6 +290,5 @@ def _run_manager(args):
299290
check=False,
300291
)
301292
assert result.returncode == 0
302-
assert result.stderr == b""
303293
output = result.stdout.decode(encoding="utf-8").split("\n")
304294
return output

0 commit comments

Comments
 (0)