Skip to content
This repository was archived by the owner on Jan 23, 2026. It is now read-only.

Commit 87b67fa

Browse files
committed
improve tests robustness
1 parent 59b82b9 commit 87b67fa

2 files changed

Lines changed: 9 additions & 9 deletions

File tree

packages/jumpstarter-driver-qemu/jumpstarter_driver_qemu/driver.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from jumpstarter_driver_opendal.driver import FlasherInterface
2222
from jumpstarter_driver_power.driver import PowerInterface, PowerReading
2323
from jumpstarter_driver_pyserial.driver import PySerial
24-
from pydantic import BaseModel, ByteSize, Field, TypeAdapter, validate_call
24+
from pydantic import BaseModel, ByteSize, Field, TypeAdapter, ValidationError, validate_call
2525
from qemu.qmp import QMPClient
2626
from qemu.qmp.protocol import ConnectError, Runstate
2727

@@ -411,7 +411,7 @@ def _validate_size(self, size: str) -> None:
411411
try:
412412
s = size
413413
TypeAdapter(ByteSize).validate_python(s + "iB" if s[-1] in "kmgtKMGT" else s)
414-
except Exception:
414+
except (ValidationError, IndexError):
415415
raise ValueError(f"Invalid size: '{size}'. Use e.g. '20G', '512M', '2T'") from None
416416

417417
@export

packages/jumpstarter-driver-qemu/jumpstarter_driver_qemu/driver_test.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -162,16 +162,16 @@ async def test_resize_succeeds(resize_test):
162162

163163
with patch("jumpstarter_driver_qemu.driver.run_process", side_effect=_mock_qemu_img_info(current)) as mock_run:
164164
with patch("jumpstarter_driver_qemu.driver.shutil.disk_usage", return_value=mock_usage):
165-
with patch("jumpstarter_driver_qemu.driver.Popen"):
166-
try:
165+
# Mock Popen to stop before actually starting QEMU VM
166+
with patch("jumpstarter_driver_qemu.driver.Popen", side_effect=RuntimeError("mock popen")):
167+
with pytest.raises(RuntimeError, match="mock popen"):
167168
await driver.children["power"].on()
168-
except Exception:
169-
pass # Expected to fail at Popen
170169

171-
# Find the resize call
172-
resize_calls = [c for c in mock_run.call_args_list if "resize" in c[0][0]]
170+
# Find the resize call and verify size argument
171+
resize_calls = [c for c in mock_run.call_args_list if "resize" in c.args[0]]
173172
assert resize_calls, "qemu-img resize should be called"
174-
assert resize_calls[0][0][0][-1] == str(20 * 1024**3)
173+
resize_cmd = resize_calls[0].args[0] # ['qemu-img', 'resize', path, size]
174+
assert resize_cmd[-1] == str(20 * 1024**3)
175175

176176

177177
def test_set_disk_size_valid():

0 commit comments

Comments
 (0)