|
@@ -343,6 +343,9 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|
|
b'0\0disp123'
|
|
|
self.app.expected_calls[('disp123', 'admin.vm.Kill', None, None)] = \
|
|
|
b'0\0'
|
|
|
+ self.app.expected_calls[
|
|
|
+ ('disp123', 'admin.vm.property.Get', 'qrexec_timeout', None)] = \
|
|
|
+ b'0\0default=yes type=int 30'
|
|
|
ret = qubesadmin.tools.qvm_run.main(
|
|
|
['--dispvm', '--service', 'test.service'], app=self.app)
|
|
|
self.assertEqual(ret, 0)
|
|
@@ -352,6 +355,7 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|
|
'stdout': subprocess.DEVNULL,
|
|
|
'stderr': subprocess.DEVNULL,
|
|
|
'user': None,
|
|
|
+ 'connect_timeout': 30,
|
|
|
}),
|
|
|
('disp123', 'test.service', b''),
|
|
|
])
|
|
@@ -364,6 +368,9 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|
|
b'0\0disp123'
|
|
|
self.app.expected_calls[('disp123', 'admin.vm.Kill', None, None)] = \
|
|
|
b'0\0'
|
|
|
+ self.app.expected_calls[
|
|
|
+ ('disp123', 'admin.vm.property.Get', 'qrexec_timeout', None)] = \
|
|
|
+ b'0\0default=yes type=int 30'
|
|
|
ret = qubesadmin.tools.qvm_run.main(
|
|
|
['--dispvm=test-vm', '--service', 'test.service'], app=self.app)
|
|
|
self.assertEqual(ret, 0)
|
|
@@ -373,6 +380,7 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|
|
'stdout': subprocess.DEVNULL,
|
|
|
'stderr': subprocess.DEVNULL,
|
|
|
'user': None,
|
|
|
+ 'connect_timeout': 30,
|
|
|
}),
|
|
|
('disp123', 'test.service', b''),
|
|
|
])
|
|
@@ -420,3 +428,54 @@ class TC_00_qvm_run(qubesadmin.tests.QubesTestCase):
|
|
|
self.assertEqual(ret, 0)
|
|
|
self.assertEqual(self.app.service_calls, [])
|
|
|
self.assertAllCalled()
|
|
|
+
|
|
|
+ def test_014_dispvm_local_gui(self):
|
|
|
+ self.app.qubesd_connection_type = 'socket'
|
|
|
+ self.app.expected_calls[
|
|
|
+ ('dom0', 'admin.vm.CreateDisposable', None, None)] = \
|
|
|
+ b'0\0disp123'
|
|
|
+ self.app.expected_calls[('disp123', 'admin.vm.Kill', None, None)] = \
|
|
|
+ b'0\0'
|
|
|
+ self.app.expected_calls[
|
|
|
+ ('disp123', 'admin.vm.property.Get', 'qrexec_timeout', None)] = \
|
|
|
+ b'0\0default=yes type=int 30'
|
|
|
+ ret = qubesadmin.tools.qvm_run.main(
|
|
|
+ ['--dispvm', '--', 'test.command'], app=self.app)
|
|
|
+ self.assertEqual(ret, 0)
|
|
|
+ self.assertEqual(self.app.service_calls, [
|
|
|
+ ('disp123', 'qubes.VMShell+WaitForSession', {
|
|
|
+ 'localcmd': None,
|
|
|
+ 'stdout': subprocess.DEVNULL,
|
|
|
+ 'stderr': subprocess.DEVNULL,
|
|
|
+ 'user': None,
|
|
|
+ 'connect_timeout': 30,
|
|
|
+ }),
|
|
|
+ ('disp123', 'qubes.VMShell+WaitForSession',
|
|
|
+ b'test.command; exit\n'),
|
|
|
+ ])
|
|
|
+ self.assertAllCalled()
|
|
|
+
|
|
|
+ def test_015_dispvm_local_no_gui(self):
|
|
|
+ self.app.qubesd_connection_type = 'socket'
|
|
|
+ self.app.expected_calls[
|
|
|
+ ('dom0', 'admin.vm.CreateDisposable', None, None)] = \
|
|
|
+ b'0\0disp123'
|
|
|
+ self.app.expected_calls[('disp123', 'admin.vm.Kill', None, None)] = \
|
|
|
+ b'0\0'
|
|
|
+ self.app.expected_calls[
|
|
|
+ ('disp123', 'admin.vm.property.Get', 'qrexec_timeout', None)] = \
|
|
|
+ b'0\0default=yes type=int 30'
|
|
|
+ ret = qubesadmin.tools.qvm_run.main(
|
|
|
+ ['--dispvm', '--no-gui', 'test.command'], app=self.app)
|
|
|
+ self.assertEqual(ret, 0)
|
|
|
+ self.assertEqual(self.app.service_calls, [
|
|
|
+ ('disp123', 'qubes.VMShell', {
|
|
|
+ 'localcmd': None,
|
|
|
+ 'stdout': subprocess.DEVNULL,
|
|
|
+ 'stderr': subprocess.DEVNULL,
|
|
|
+ 'user': None,
|
|
|
+ 'connect_timeout': 30,
|
|
|
+ }),
|
|
|
+ ('disp123', 'qubes.VMShell', b'test.command; exit\n'),
|
|
|
+ ])
|
|
|
+ self.assertAllCalled()
|