11import  asyncio 
22import  logging 
3+ import  tempfile 
34from  asyncio .subprocess  import  Process 
45from  pathlib  import  Path 
56
@@ -53,12 +54,25 @@ async def test_create_qemu_instance(mocker):
5354    No network. 
5455    We don't actually check that the system ping since there is no network 
5556    """ 
57+ 
5658    mocker .patch .object (settings , "ALLOW_VM_NETWORKING" , False )
5759    mocker .patch .object (settings , "USE_FAKE_INSTANCE_BASE" , True )
5860    mocker .patch .object (settings , "FAKE_INSTANCE_MESSAGE" , settings .FAKE_INSTANCE_QEMU_MESSAGE )
59-     mocker .patch .object (settings , "FAKE_INSTANCE_BASE" , settings .FAKE_INSTANCE_QEMU_MESSAGE )
61+     mocker .patch .object (settings , "FAKE_INSTANCE_BASE" , settings .FAKE_QEMU_INSTANCE_BASE )
6062    mocker .patch .object (settings , "ENABLE_CONFIDENTIAL_COMPUTING" , False )
6163    mocker .patch .object (settings , "USE_JAILER" , False )
64+     tmp_dir  =  tempfile .TemporaryDirectory (dir = "/tmp/alephtest/" )
65+     tmp_path  =  Path (tmp_dir .name )
66+     cache_root  =  tmp_path  /  "cache" 
67+     exec_root  =  tmp_path  /  "exec" 
68+     mocker .patch .object (settings , "CACHE_ROOT" , cache_root )
69+     mocker .patch .object (settings , "EXECUTION_ROOT" , exec_root )
70+     mocker .patch .object (settings , "PERSISTENT_VOLUMES_DIR" , exec_root  /  "volumes"  /  "persistent" )
71+     mocker .patch .object (settings , "JAILER_BASE_DIRECTORY" , exec_root  /  "jailer" )
72+     mocker .patch .object (settings , "EXECUTION_LOG_DIRECTORY" , exec_root  /  "executions" )
73+ 
74+     # Patch journal.stream so the output of qemu proecss is shown in the test output 
75+     mocker .patch ("aleph.vm.hypervisors.qemu.qemuvm.journal.stream" , return_value = None )
6276
6377    # Patch journal.stream so the output of qemu proecss is shown in the test output 
6478    mocker .patch ("aleph.vm.hypervisors.qemu.qemuvm.journal.stream" , return_value = None )
@@ -69,10 +83,12 @@ async def test_create_qemu_instance(mocker):
6983        )
7084
7185    logging .basicConfig (level = logging .DEBUG )
72- 
86+      logger   =   logging . getLogger ( __name__ ) 
7387    # Ensure that the settings are correct and required files present. 
7488    settings .setup ()
7589    settings .check ()
90+     logger .info (settings .EXECUTION_ROOT )
91+     logger .info (settings .PERSISTENT_VOLUMES_DIR )
7692
7793    # The database is required for the metrics and is currently not optional. 
7894    engine  =  metrics .setup_engine ()
@@ -121,10 +137,20 @@ async def test_create_qemu_instance_online(mocker):
121137    mocker .patch .object (settings , "ALLOW_VM_NETWORKING" , True )
122138    mocker .patch .object (settings , "USE_FAKE_INSTANCE_BASE" , True )
123139    mocker .patch .object (settings , "FAKE_INSTANCE_MESSAGE" , settings .FAKE_INSTANCE_QEMU_MESSAGE )
124-     mocker .patch .object (settings , "FAKE_INSTANCE_BASE" , settings .FAKE_INSTANCE_QEMU_MESSAGE )
140+     mocker .patch .object (settings , "FAKE_INSTANCE_BASE" , settings .FAKE_QEMU_INSTANCE_BASE )
125141    mocker .patch .object (settings , "ENABLE_CONFIDENTIAL_COMPUTING" , False )
126142    mocker .patch .object (settings , "USE_JAILER" , False )
127143
144+     tmp_dir  =  tempfile .TemporaryDirectory (dir = "/tmp/alephtest/" )
145+     tmp_path  =  Path (tmp_dir .name )
146+     cache_root  =  tmp_path  /  "cache" 
147+     exec_root  =  tmp_path  /  "exec" 
148+     mocker .patch .object (settings , "CACHE_ROOT" , cache_root )
149+     mocker .patch .object (settings , "EXECUTION_ROOT" , exec_root )
150+     mocker .patch .object (settings , "PERSISTENT_VOLUMES_DIR" , exec_root  /  "volumes"  /  "persistent" )
151+     mocker .patch .object (settings , "JAILER_BASE_DIRECTORY" , exec_root  /  "jailer" )
152+     mocker .patch .object (settings , "EXECUTION_LOG_DIRECTORY" , exec_root  /  "executions" )
153+ 
128154    # Patch journal.stream so the output of qemu proecss is shown in the test output 
129155    mocker .patch ("aleph.vm.hypervisors.qemu.qemuvm.journal.stream" , return_value = None )
130156
@@ -134,10 +160,12 @@ async def test_create_qemu_instance_online(mocker):
134160                settings .FAKE_QEMU_INSTANCE_BASE 
135161            )
136162        )
163+     logger  =  logging .getLogger (__name__ )
137164    # Ensure that the settings are correct and required files present. 
138165    settings .setup ()
139166    settings .check ()
140- 
167+     logger .info (settings .EXECUTION_ROOT )
168+     logger .info (settings .PERSISTENT_VOLUMES_DIR )
141169    # The database is required for the metrics and is currently not optional. 
142170    engine  =  metrics .setup_engine ()
143171    await  metrics .create_tables (engine )
0 commit comments