iotests.py: Add @base_dir to FilePaths etc.

Specifying this optional parameter allows creating temporary files in
other directories than the test_dir; for example in sock_dir.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20191017133155.5327-4-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
Max Reitz 2019-10-17 15:31:35 +02:00
parent 32558ce7a4
commit 93b78ea5f6
1 changed files with 6 additions and 6 deletions

View File

@ -386,10 +386,10 @@ class FilePaths(object):
qemu_img('create', img_path, '1G')
# migration_sock_path is automatically deleted
"""
def __init__(self, names):
def __init__(self, names, base_dir=test_dir):
self.paths = []
for name in names:
self.paths.append(os.path.join(test_dir, file_pattern(name)))
self.paths.append(os.path.join(base_dir, file_pattern(name)))
def __enter__(self):
return self.paths
@ -406,8 +406,8 @@ class FilePath(FilePaths):
"""
FilePath is a specialization of FilePaths that takes a single filename.
"""
def __init__(self, name):
super(FilePath, self).__init__([name])
def __init__(self, name, base_dir=test_dir):
super(FilePath, self).__init__([name], base_dir)
def __enter__(self):
return self.paths[0]
@ -420,7 +420,7 @@ def file_path_remover():
pass
def file_path(*names):
def file_path(*names, base_dir=test_dir):
''' Another way to get auto-generated filename that cleans itself up.
Use is as simple as:
@ -436,7 +436,7 @@ def file_path(*names):
paths = []
for name in names:
filename = file_pattern(name)
path = os.path.join(test_dir, filename)
path = os.path.join(base_dir, filename)
file_path_remover.paths.append(path)
paths.append(path)