|
1 | 1 | import pytest |
2 | 2 |
|
3 | 3 | from labgrid.driver import QEMUDriver |
| 4 | +from labgrid.driver.exception import ExecutionError |
4 | 5 | from labgrid import Environment |
5 | 6 |
|
6 | 7 | @pytest.fixture |
@@ -61,6 +62,12 @@ def qemu_mock(mocker): |
61 | 62 | socket_mock = mocker.patch('socket.socket') |
62 | 63 | socket_mock.return_value.accept.return_value = mocker.MagicMock(), '' |
63 | 64 |
|
| 65 | +@pytest.fixture |
| 66 | +def qemu_qmp_mock(mocker): |
| 67 | + monitor_mock = mocker.patch('labgrid.driver.qemudriver.QMPMonitor') |
| 68 | + monitor_mock.return_value.execute.return_value = {'return': {}} |
| 69 | + return monitor_mock |
| 70 | + |
64 | 71 | @pytest.fixture |
65 | 72 | def qemu_version_mock(mocker): |
66 | 73 | run_mock = mocker.patch('subprocess.run') |
@@ -91,6 +98,27 @@ def test_qemu_on_off(qemu_target, qemu_driver, qemu_mock, qemu_version_mock): |
91 | 98 |
|
92 | 99 | qemu_target.deactivate(qemu_driver) |
93 | 100 |
|
| 101 | +def test_qemu_prepare(qemu_target, qemu_driver, qemu_mock, qemu_version_mock): |
| 102 | + qemu_target.activate(qemu_driver) |
| 103 | + |
| 104 | + qemu_driver.prepare() |
| 105 | + qemu_driver.on() |
| 106 | + |
| 107 | +def test_qemu_monitor_command_without_prepare(qemu_target, qemu_driver, qemu_mock, qemu_version_mock, qemu_qmp_mock): |
| 108 | + qemu_target.activate(qemu_driver) |
| 109 | + |
| 110 | + with pytest.raises(ExecutionError): |
| 111 | + qemu_driver.monitor_command("info") |
| 112 | + qemu_qmp_mock.assert_not_called() |
| 113 | + |
| 114 | +def test_qemu_prepare_with_monitor_command(qemu_target, qemu_driver, qemu_mock, qemu_version_mock, qemu_qmp_mock): |
| 115 | + qemu_target.activate(qemu_driver) |
| 116 | + |
| 117 | + qemu_driver.prepare() |
| 118 | + qemu_driver.monitor_command("info") |
| 119 | + qemu_qmp_mock.assert_called_once() |
| 120 | + qemu_qmp_mock.return_value.execute.assert_called_with("info", {}) |
| 121 | + |
94 | 122 | def test_qemu_read_write(qemu_target, qemu_driver, qemu_mock, qemu_version_mock): |
95 | 123 | qemu_target.activate(qemu_driver) |
96 | 124 |
|
|
0 commit comments