iotests: add file_path helper
Simple way to have auto generated filenames with auto cleanup. Like FilePath but without using 'with' statement and without additional indentation of the whole test. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20180312152126.286890-8-vsementsov@virtuozzo.com> Reviewed-by: Eric Blake <eblake@redhat.com> [eblake: grammar tweak] Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
		
							parent
							
								
									02f3a91199
								
							
						
					
					
						commit
						ef6e92280e
					
				| @ -27,6 +27,7 @@ import struct | ||||
| import json | ||||
| import signal | ||||
| import logging | ||||
| import atexit | ||||
| 
 | ||||
| sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'scripts')) | ||||
| import qtest | ||||
| @ -250,6 +251,37 @@ class FilePath(object): | ||||
|         return False | ||||
| 
 | ||||
| 
 | ||||
| def file_path_remover(): | ||||
|     for path in reversed(file_path_remover.paths): | ||||
|         try: | ||||
|             os.remove(path) | ||||
|         except OSError: | ||||
|             pass | ||||
| 
 | ||||
| 
 | ||||
| def file_path(*names): | ||||
|     ''' Another way to get auto-generated filename that cleans itself up. | ||||
| 
 | ||||
|     Use is as simple as: | ||||
| 
 | ||||
|     img_a, img_b = file_path('a.img', 'b.img') | ||||
|     sock = file_path('socket') | ||||
|     ''' | ||||
| 
 | ||||
|     if not hasattr(file_path_remover, 'paths'): | ||||
|         file_path_remover.paths = [] | ||||
|         atexit.register(file_path_remover) | ||||
| 
 | ||||
|     paths = [] | ||||
|     for name in names: | ||||
|         filename = '{0}-{1}'.format(os.getpid(), name) | ||||
|         path = os.path.join(test_dir, filename) | ||||
|         file_path_remover.paths.append(path) | ||||
|         paths.append(path) | ||||
| 
 | ||||
|     return paths[0] if len(paths) == 1 else paths | ||||
| 
 | ||||
| 
 | ||||
| class VM(qtest.QEMUQtestMachine): | ||||
|     '''A QEMU VM''' | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Vladimir Sementsov-Ogievskiy
						Vladimir Sementsov-Ogievskiy