aboutsummaryrefslogtreecommitdiff
path: root/tests/qemu-iotests/iotests.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/qemu-iotests/iotests.py')
-rw-r--r--tests/qemu-iotests/iotests.py23
1 files changed, 10 insertions, 13 deletions
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index 635ec99..1799338 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -448,14 +448,14 @@ class Timeout:
def file_pattern(name):
return "{0}-{1}".format(os.getpid(), name)
-class FilePaths:
+class FilePath:
"""
Context manager generating multiple file names. The generated files are
removed when exiting the context.
Example usage:
- with FilePaths('a.img', 'b.img') as (img_a, img_b):
+ with FilePath('a.img', 'b.img') as (img_a, img_b):
# Use img_a and img_b here...
# a.img and b.img are automatically removed here.
@@ -463,7 +463,10 @@ class FilePaths:
By default images are created in iotests.test_dir. To create sockets use
iotests.sock_dir:
- with FilePaths('a.sock', base_dir=iotests.sock_dir) as (sock,):
+ with FilePath('a.sock', base_dir=iotests.sock_dir) as sock:
+
+ For convenience, calling with one argument yields a single file instead of
+ a tuple with one item.
"""
def __init__(self, *names, base_dir=test_dir):
@@ -472,7 +475,10 @@ class FilePaths:
self.paths.append(os.path.join(base_dir, file_pattern(name)))
def __enter__(self):
- return self.paths
+ if len(self.paths) == 1:
+ return self.paths[0]
+ else:
+ return self.paths
def __exit__(self, exc_type, exc_val, exc_tb):
for path in self.paths:
@@ -482,15 +488,6 @@ class FilePaths:
pass
return False
-class FilePath(FilePaths):
- """
- FilePath is a specialization of FilePaths that takes a single filename.
- """
- def __init__(self, name, base_dir=test_dir):
- super(FilePath, self).__init__(name, base_dir=base_dir)
-
- def __enter__(self):
- return self.paths[0]
def file_path_remover():
for path in reversed(file_path_remover.paths):