self.has_opened = True
def wait_for_open(self):
+ if not self.has_real_tray:
+ return
+
timeout = time.clock() + 3
while not self.has_opened and time.clock() < timeout:
self.process_events()
self.fail('Timeout while waiting for the tray to open')
def wait_for_close(self):
+ if not self.has_real_tray:
+ return
+
timeout = time.clock() + 3
while not self.has_closed and time.clock() < timeout:
self.process_events()
self.wait_for_close()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
+ if self.has_real_tray:
+ self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', new_img)
def test_blockdev_change_medium(self):
self.wait_for_close()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
+ if self.has_real_tray:
+ self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', new_img)
def test_eject(self):
self.wait_for_open()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', True)
+ if self.has_real_tray:
+ self.assert_qmp(result, 'return[0]/tray_open', True)
self.assert_qmp_absent(result, 'return[0]/inserted')
def test_tray_eject_change(self):
self.wait_for_open()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', True)
+ if self.has_real_tray:
+ self.assert_qmp(result, 'return[0]/tray_open', True)
self.assert_qmp_absent(result, 'return[0]/inserted')
result = self.vm.qmp('blockdev-change-medium', device='drive0',
self.wait_for_close()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
+ if self.has_real_tray:
+ self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', new_img)
def test_tray_open_close(self):
self.wait_for_open()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', True)
+ if self.has_real_tray:
+ self.assert_qmp(result, 'return[0]/tray_open', True)
if self.was_empty == True:
self.assert_qmp_absent(result, 'return[0]/inserted')
else:
self.wait_for_close()
result = self.vm.qmp('query-block')
- if self.has_real_tray or not self.was_empty:
+ if self.has_real_tray:
self.assert_qmp(result, 'return[0]/tray_open', False)
- else:
- self.assert_qmp(result, 'return[0]/tray_open', True)
if self.was_empty == True:
self.assert_qmp_absent(result, 'return[0]/inserted')
else:
self.wait_for_open()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', True)
+ if self.has_real_tray:
+ self.assert_qmp(result, 'return[0]/tray_open', True)
self.assert_qmp_absent(result, 'return[0]/inserted')
result = self.vm.qmp('blockdev-close-tray', device='drive0')
self.assert_qmp(result, 'return', {})
- if self.has_real_tray:
- self.wait_for_close()
+ self.wait_for_close()
result = self.vm.qmp('query-block')
if self.has_real_tray:
self.assert_qmp(result, 'return[0]/tray_open', False)
- else:
- self.assert_qmp(result, 'return[0]/tray_open', True)
self.assert_qmp_absent(result, 'return[0]/inserted')
def test_tray_open_change(self):
self.wait_for_open()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', True)
+ if self.has_real_tray:
+ self.assert_qmp(result, 'return[0]/tray_open', True)
if self.was_empty == True:
self.assert_qmp_absent(result, 'return[0]/inserted')
else:
self.wait_for_close()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
+ if self.has_real_tray:
+ self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', new_img)
def test_cycle(self):
self.wait_for_open()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', True)
+ if self.has_real_tray:
+ self.assert_qmp(result, 'return[0]/tray_open', True)
if self.was_empty == True:
self.assert_qmp_absent(result, 'return[0]/inserted')
else:
self.assert_qmp(result, 'return', {})
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', True)
+ if self.has_real_tray:
+ self.assert_qmp(result, 'return[0]/tray_open', True)
self.assert_qmp_absent(result, 'return[0]/inserted')
result = self.vm.qmp('x-blockdev-insert-medium', device='drive0',
self.assert_qmp(result, 'return', {})
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', True)
+ if self.has_real_tray:
+ self.assert_qmp(result, 'return[0]/tray_open', True)
self.assert_qmp(result, 'return[0]/inserted/image/filename', new_img)
result = self.vm.qmp('blockdev-close-tray', device='drive0')
self.wait_for_close()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
+ if self.has_real_tray:
+ self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', new_img)
def test_close_on_closed(self):
self.assertEquals(self.vm.get_qmp_events(wait=False), [])
def test_remove_on_closed(self):
- if self.has_opened:
- # Empty floppy drive
+ if not self.has_real_tray:
return
result = self.vm.qmp('x-blockdev-remove-medium', device='drive0')
self.assert_qmp(result, 'error/class', 'GenericError')
def test_insert_on_closed(self):
- if self.has_opened:
- # Empty floppy drive
+ if not self.has_real_tray:
return
result = self.vm.qmp('blockdev-add',
self.vm.launch()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', True)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
read_only_mode='retain')
self.assert_qmp(result, 'return', {})
- self.wait_for_open()
- self.wait_for_close()
-
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', True)
self.assert_qmp(result, 'return[0]/inserted/image/filename', new_img)
self.vm.launch()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', True)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
read_only_mode='retain')
self.assert_qmp(result, 'return', {})
- self.wait_for_open()
- self.wait_for_close()
-
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', True)
self.assert_qmp(result, 'return[0]/inserted/image/filename', new_img)
self.vm.launch()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
self.assertEquals(self.vm.get_qmp_events(wait=False), [])
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
self.vm.launch()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', True)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
read_only_mode='read-write')
self.assert_qmp(result, 'return', {})
- self.wait_for_open()
- self.wait_for_close()
-
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', new_img)
self.vm.launch()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
read_only_mode='read-only')
self.assert_qmp(result, 'return', {})
- self.wait_for_open()
- self.wait_for_close()
-
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', True)
self.assert_qmp(result, 'return[0]/inserted/image/filename', new_img)
self.vm.launch()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
read_only_mode='read-only')
self.assert_qmp(result, 'return', {})
- self.wait_for_open()
- self.wait_for_close()
-
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', True)
self.assert_qmp(result, 'return[0]/inserted/image/filename', new_img)
self.vm.launch()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
read_only_mode='read-write')
self.assert_qmp(result, 'error/class', 'GenericError')
- self.assertEquals(self.vm.get_qmp_events(wait=False), [])
-
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
self.vm.launch()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', True)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
read_only_mode='retain')
self.assert_qmp(result, 'return', {})
- self.wait_for_open()
- self.wait_for_close()
-
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', True)
self.assert_qmp(result, 'return[0]/inserted/image/filename', new_img)
self.vm.launch()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
read_only_mode='retain')
self.assert_qmp(result, 'error/class', 'GenericError')
- self.assertEquals(self.vm.get_qmp_events(wait=False), [])
-
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
self.vm.launch()
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
'driver': 'file'}})
self.assert_qmp(result, 'return', {})
- result = self.vm.qmp('blockdev-open-tray', device='drive0', force=True)
- self.assert_qmp(result, 'return', {})
-
- self.wait_for_open()
-
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', True)
self.assert_qmp(result, 'return[0]/inserted/ro', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
self.assert_qmp(result, 'return', {})
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', True)
self.assert_qmp_absent(result, 'return[0]/inserted')
result = self.vm.qmp('x-blockdev-insert-medium', device='drive0',
self.assert_qmp(result, 'return', {})
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', True)
self.assert_qmp(result, 'return[0]/inserted/ro', True)
self.assert_qmp(result, 'return[0]/inserted/image/filename', new_img)
- result = self.vm.qmp('blockdev-close-tray', device='drive0')
- self.assert_qmp(result, 'return', {})
-
- self.wait_for_close()
-
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/ro', True)
self.assert_qmp(result, 'return[0]/inserted/image/filename', new_img)
self.assert_qmp(result, 'return', {})
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/image/format', 'null-co')
# For device-less BBs, calling blockdev-open-tray or blockdev-close-tray
self.assert_qmp(result, 'return', {})
result = self.vm.qmp('query-block')
- self.assert_qmp(result, 'return[0]/tray_open', False)
self.assert_qmp(result, 'return[0]/inserted/image/filename', old_img)
def tearDown(self):