@@ -282,7 +282,10 @@ def test_vm_status(vm_dir):
282
282
283
283
284
284
def test_vm_lifecycle (vm_dir ):
285
- """Test methods controlling the VM - init(), up(), halt(), destroy()."""
285
+ """Test methods controlling the VM - init(), up(), suspend(), halt(), destroy()."""
286
+ VAGRANT_DIR = f"{ os .environ ['HOME' ]} /.vagrant.d"
287
+ VAGRANTFILE_CREATED = False
288
+
286
289
v = vagrant .Vagrant (vm_dir )
287
290
288
291
# Test init by removing Vagrantfile, since v.init() will create one.
@@ -291,9 +294,24 @@ def test_vm_lifecycle(vm_dir):
291
294
except FileNotFoundError :
292
295
pass
293
296
297
+ try :
298
+ os .mkdir (VAGRANT_DIR , mode = 0o755 )
299
+ except FileExistsError :
300
+ pass
301
+
302
+ if not os .path .isfile (f"{ VAGRANT_DIR } /Vagrantfile" ):
303
+ with open (f"{ VAGRANT_DIR } /Vagrantfile" , "w" , encoding = "UTF-8" ) as config :
304
+ config .write (
305
+ 'Vagrant.configure("2") do |config|\n config.vbguest.auto_update = false if Vagrant.has_plugin?("vagrant-vbguest")\n end\n '
306
+ )
307
+ VAGRANTFILE_CREATED = True
308
+
294
309
v .init (TEST_BOX_NAME )
295
310
assert v .NOT_CREATED == v .status ()[0 ].state
296
311
312
+ validation = v .validate (vm_dir )
313
+ assert validation .returncode == 0
314
+
297
315
v .up ()
298
316
assert v .RUNNING == v .status ()[0 ].state
299
317
@@ -306,12 +324,14 @@ def test_vm_lifecycle(vm_dir):
306
324
v .destroy ()
307
325
assert v .NOT_CREATED == v .status ()[0 ].state
308
326
327
+ if VAGRANTFILE_CREATED :
328
+ os .unlink (f"{ VAGRANT_DIR } /Vagrantfile" )
329
+
309
330
310
331
def test_valid_config (vm_dir ):
311
332
v = vagrant .Vagrant (vm_dir )
312
333
v .up ()
313
334
validation = v .validate (vm_dir )
314
-
315
335
assert validation .returncode == 0
316
336
317
337
0 commit comments