@@ -150,7 +150,7 @@ def test_000_from_appvm(self, mock_storage, mock_makedirs, mock_symlink):
150150 mock_symlink .assert_not_called ()
151151
152152 @mock .patch ("qubes.storage.Storage" )
153- def test_000_from_appvm_preload_reject_max (self , mock_storage ):
153+ def test_001_from_appvm_preload_reject_max (self , mock_storage ):
154154 mock_storage .return_value .create .side_effect = self .mock_coro
155155 self .appvm .template_for_dispvms = True
156156 orig_getitem = self .app .domains .__getitem__
@@ -174,7 +174,7 @@ def test_000_from_appvm_preload_reject_max(self, mock_storage):
174174 @mock .patch ("os.symlink" )
175175 @mock .patch ("os.makedirs" )
176176 @mock .patch ("qubes.storage.Storage" )
177- def test_000_from_appvm_preload_use (
177+ def test_002_from_appvm_preload_use (
178178 self ,
179179 mock_storage ,
180180 mock_makedirs ,
@@ -223,10 +223,8 @@ def test_000_from_appvm_preload_use(
223223 mock_qube .features = dispvm .features
224224 mock_qube .unpause = self .mock_coro
225225 mock_qube .request_preload .return_value = dispvm
226- mock_qube .is_preload_outdated = dispvm . is_preload_outdated
226+ mock_qube .is_preload_outdated . return_value = {}
227227 mock_qube .get_preload = mock .AsyncMock ()
228- mock_qube .volumes = {}
229- dispvm .volume_config = self .appvm .volume_config
230228 fresh_dispvm = self .loop .run_until_complete (
231229 qubes .vm .dispvm .DispVM .from_appvm (self .appvm )
232230 )
@@ -244,7 +242,7 @@ def test_000_from_appvm_preload_use(
244242 @mock .patch ("os.symlink" )
245243 @mock .patch ("os.makedirs" )
246244 @mock .patch ("qubes.storage.Storage" )
247- def test_000_from_appvm_preload_fill_gap (
245+ def test_003_from_appvm_preload_fill_gap (
248246 self ,
249247 mock_storage ,
250248 mock_makedirs ,
@@ -295,7 +293,7 @@ def test_000_from_appvm_preload_fill_gap(
295293 mock_symlink .assert_not_called ()
296294 mock_makedirs .assert_called_once ()
297295
298- def test_000_get_preload_max (self ):
296+ def test_004_get_preload_max (self ):
299297 self .assertEqual (qubes .vm .dispvm .get_preload_max (self .appvm ), None )
300298 self .appvm .features ["supported-rpc.qubes.WaitForRunningSystem" ] = True
301299 self .appvm .features ["preload-dispvm-max" ] = 1
@@ -306,7 +304,7 @@ def test_000_get_preload_max(self):
306304 self .adminvm .features ["preload-dispvm-max" ] = 2
307305 self .assertEqual (qubes .vm .dispvm .get_preload_max (self .adminvm ), 2 )
308306
309- def test_000_get_preload_templates (self ):
307+ def test_005_get_preload_templates (self ):
310308 get_preload_templates = qubes .vm .dispvm .get_preload_templates
311309 self .assertEqual (get_preload_templates (self .app ), [])
312310 self .appvm .template_for_dispvms = True
@@ -338,14 +336,14 @@ def test_000_get_preload_templates(self):
338336 get_preload_templates (self .app ), [self .appvm , self .appvm_alt ]
339337 )
340338
341- def test_001_from_appvm_reject_not_allowed (self ):
339+ def test_006_from_appvm_reject_not_allowed (self ):
342340 with self .assertRaises (qubes .exc .QubesException ):
343341 self .loop .run_until_complete (
344342 qubes .vm .dispvm .DispVM .from_appvm (self .appvm )
345343 )
346344
347345 @unittest .skip ("test is broken" )
348- def test_002_template_change (self ):
346+ def test_007_template_change (self ):
349347 self .appvm .template_for_dispvms = True
350348 orig_getitem = self .app .domains .__getitem__
351349 with mock .patch .object (
@@ -372,7 +370,7 @@ def test_002_template_change(self):
372370 self .loop .run_until_complete (dispvm .kill ())
373371 dispvm .template = self .appvm
374372
375- def test_003_dvmtemplate_template_change (self ):
373+ def test_008_dvmtemplate_template_change (self ):
376374 self .appvm .template_for_dispvms = True
377375 orig_domains = self .app .domains
378376 with mock .patch .object (
@@ -394,7 +392,7 @@ def test_003_dvmtemplate_template_change(self):
394392 with self .assertRaises (qubes .exc .QubesValueError ):
395393 self .appvm .template = qubes .property .DEFAULT
396394
397- def test_004_dvmtemplate_allowed_change (self ):
395+ def test_009_dvmtemplate_allowed_change (self ):
398396 self .appvm .template_for_dispvms = True
399397 orig_domains = self .app .domains
400398 with mock .patch .object (
@@ -660,23 +658,17 @@ def test_023_inherit_ephemeral(self, _mock_makedirs, _mock_symlink):
660658 self .assertIs (dispvm .template , self .appvm )
661659 self .assertTrue (dispvm .volumes ["volatile" ].ephemeral )
662660
663- @mock .patch ("qubes.vm.qubesvm.QubesVM.start" )
664661 @mock .patch ("os.symlink" )
665662 @mock .patch ("os.makedirs" )
666- @mock .patch ("qubes.storage.Storage" )
667- def test_024_is_preload_outdated (
668- self ,
669- mock_storage ,
670- mock_makedirs ,
671- mock_symlink ,
672- mock_start ,
673- ):
674- mock_storage .return_value .create .side_effect = self .mock_coro
675- mock_makedirs .return_value = self .mock_coro
676- mock_symlink .return_value = self .mock_coro
677- mock_start .side_effect = self .mock_coro
663+ def test_024_is_preload_outdated (self , _mock_makedirs , _mock_symlink ):
664+ self .app .pools ["alternative" ] = qubes .tests .vm .appvm .TestPool (
665+ name = "alternative"
666+ )
678667 self .appvm .template_for_dispvms = True
679-
668+ self .loop .run_until_complete (self .template .create_on_disk ())
669+ self .loop .run_until_complete (
670+ self .appvm .create_on_disk (pool = "alternative" )
671+ )
680672 self .appvm .features ["supported-rpc.qubes.WaitForRunningSystem" ] = True
681673 self .appvm .features ["preload-dispvm-max" ] = "1"
682674 orig_getitem = self .app .domains .__getitem__
@@ -685,12 +677,6 @@ def test_024_is_preload_outdated(
685677 ) as mock_domains :
686678 mock_qube = mock .Mock ()
687679 mock_qube .template = self .appvm
688- mock_qube .qrexec_timeout = self .appvm .qrexec_timeout
689- mock_qube .preload_complete = mock .Mock (spec = asyncio .Event )
690- mock_qube .preload_complete .is_set .return_value = True
691- mock_qube .preload_complete .set = self .mock_coro
692- mock_qube .preload_complete .clear = self .mock_coro
693- mock_qube .preload_complete .wait = self .mock_coro
694680 mock_domains .configure_mock (
695681 ** {
696682 "get_new_unused_dispid" : mock .Mock (return_value = 42 ),
@@ -700,24 +686,35 @@ def test_024_is_preload_outdated(
700686 ),
701687 }
702688 )
703- dispvm = self .loop . run_until_complete (
704- qubes .vm .dispvm .DispVM . from_appvm ( self . appvm , preload = True )
689+ dispvm = self .app . add_new_vm (
690+ qubes .vm .dispvm .DispVM , name = "disp42" , template = self . appvm
705691 )
706- dispvm . volume_config = self .appvm .volume_config
692+ self .appvm .features [ "preload-dispvm" ] = "disp42"
707693
708- self .assertFalse (dispvm .is_preload_outdated ())
709- self .appvm .debug = not self .appvm .debug
710- self .assertEqual (
711- dispvm .is_preload_outdated (), {"properties" : ["debug" ]}
712- )
713- self .appvm .debug = not self .appvm .debug
694+ self .loop .run_until_complete (dispvm .create_on_disk ())
714695
715- self .assertFalse (dispvm .is_preload_outdated ())
716- self .appvm_alt .provides_network = True
717- self .assertFalse (dispvm .is_preload_outdated ())
718- self .appvm .netvm = self .appvm_alt
719- self .assertIn ("properties" , dispvm .is_preload_outdated ().keys ())
720- self .assertEqual (
721- sorted (dispvm .is_preload_outdated ()["properties" ]),
722- sorted (["netvm" , "dns" , "visible_netmask" ]),
723- )
696+ with mock .patch .object (
697+ dispvm .volumes ["root" ], "is_outdated" , return_value = False
698+ ), mock .patch .object (
699+ dispvm .volumes ["private" ], "is_outdated" , return_value = False
700+ ), mock .patch .object (
701+ dispvm .volumes ["volatile" ], "is_outdated" , return_value = False
702+ ), mock .patch .object (
703+ dispvm .volumes ["kernel" ], "is_outdated" , return_value = False
704+ ):
705+ self .assertFalse (dispvm .is_preload_outdated ())
706+ self .appvm .debug = not self .appvm .debug
707+ self .assertEqual (
708+ dispvm .is_preload_outdated (), {"properties" : ["debug" ]}
709+ )
710+ self .appvm .debug = not self .appvm .debug
711+
712+ self .assertFalse (dispvm .is_preload_outdated ())
713+ self .appvm_alt .provides_network = True
714+ self .assertFalse (dispvm .is_preload_outdated ())
715+ self .appvm .netvm = self .appvm_alt
716+ self .assertIn ("properties" , dispvm .is_preload_outdated ().keys ())
717+ self .assertEqual (
718+ sorted (dispvm .is_preload_outdated ()["properties" ]),
719+ sorted (["netvm" , "dns" , "visible_netmask" ]),
720+ )
0 commit comments