summaryrefslogtreecommitdiff
path: root/selftest/subunithelper.py
diff options
context:
space:
mode:
Diffstat (limited to 'selftest/subunithelper.py')
-rw-r--r--selftest/subunithelper.py41
1 files changed, 27 insertions, 14 deletions
diff --git a/selftest/subunithelper.py b/selftest/subunithelper.py
index c17036defba..fab7d6f0b41 100644
--- a/selftest/subunithelper.py
+++ b/selftest/subunithelper.py
@@ -20,6 +20,7 @@ __all__ = ['parse_results']
import datetime
import re
import sys
+import os
from samba import subunit
from samba.subunit.run import TestProtocolClient
from samba.subunit import iso8601
@@ -228,21 +229,33 @@ class SubunitOps(TestProtocolClient,TestsuiteEnabledTestResult):
self._stream.write(msg)
-def read_test_regexes(name):
+def read_test_regexes(*names):
ret = {}
- f = open(name, 'r')
- try:
- for l in f:
- l = l.strip()
- if l == "" or l[0] == "#":
- continue
- if "#" in l:
- (regex, reason) = l.split("#", 1)
- ret[regex.strip()] = reason.strip()
- else:
- ret[l] = None
- finally:
- f.close()
+ files = []
+ for name in names:
+ # if we are given a directory, we read all the files it contains
+ # (except the ones that end with "~").
+ if os.path.isdir(name):
+ files.extend([os.path.join(name, x)
+ for x in os.listdir(name)
+ if x[-1] != '~'])
+ else:
+ files.append(name)
+
+ for filename in files:
+ f = open(filename, 'r')
+ try:
+ for l in f:
+ l = l.strip()
+ if l == "" or l[0] == "#":
+ continue
+ if "#" in l:
+ (regex, reason) = l.split("#", 1)
+ ret[regex.strip()] = reason.strip()
+ else:
+ ret[l] = None
+ finally:
+ f.close()
return ret