This is an automated email from the ASF dual-hosted git repository.
humbedooh pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/incubator-ponymail-unit-tests.git
commit fb8025f06013811eed9e2ea3e4f7946dde1eea16
Author: Daniel Gruno <[email protected]>
AuthorDate: Wed Jun 2 14:02:14 2021 +0200
--dropin for quickly reconfiguring unit tests on the fly
---
runall.py | 7 ++++++-
tests/test-generators.py | 11 +++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/runall.py b/runall.py
index 556eec8..4b735cb 100755
--- a/runall.py
+++ b/runall.py
@@ -20,7 +20,10 @@ if __name__ == '__main__':
parser.add_argument('--gtype', dest='gtype', type=str, nargs='+',
help="Run only specified generators (medium, cluster,
dkim, full, etc)")
parser.add_argument('--yamldir', dest='yamldir', type=str, action='store',
- help="Load yaml specs from alternate directory")
+ help="Load yaml specs from alternate directory")
+ parser.add_argument('--dropin', dest='dropin', type=str, action='store',
+ help="If set to a specific generator name, replaces its
unit test results with the current "
+ "output in the yaml tests")
parser.add_argument('--nomboxo', dest = 'nomboxo', action='store_true',
help = 'Skip Mboxo processing')
parser.add_argument('--fof', dest='failonfail', action='store_true',
@@ -69,6 +72,8 @@ if __name__ == '__main__':
if args.gtype and test_type == 'generators':
cliargs.append('--generators')
cliargs.extend(args.gtype)
+ if args.dropin:
+ cliargs.extend(['--dropin', args.dropin])
if args.skipnodate and test_type == 'generators':
cliargs.append('--skipnodate')
rv = subprocess.check_output(cliargs, env=env)
diff --git a/tests/test-generators.py b/tests/test-generators.py
index aaa3daa..670d732 100755
--- a/tests/test-generators.py
+++ b/tests/test-generators.py
@@ -10,6 +10,7 @@ import yaml
import argparse
import collections
import interfacer
+import time
import email.utils
parse_html = False
@@ -150,9 +151,17 @@ def run_tests(args):
errors += 1
sys.stderr.write("""[FAIL] %s, index %2u: Expected '%s', got
'%s'!\n""" %
(gen_type, key, expected, actual))
+ if args.dropin and gen_type == args.dropin:
+ if expected != actual:
+ test['generated'] = actual
+ else:
+ test['alternate'] = actual
else:
print("[PASS] %s index %u" % (gen_type, key))
mboxfiles = [] # reset for the next set of tests
+ if args.dropin and errors:
+ sys.stderr.write("Writing replacement yaml as --dropin was
specified\n")
+ yaml.safe_dump(yml, open(args.load, "w"), sort_keys=False)
print("[DONE] %u tests run, %u failed." % (tests_run, errors))
if errors:
sys.exit(-1)
@@ -174,6 +183,8 @@ def main():
help="Root directory of Apache Pony Mail")
parser.add_argument('--nomboxo', dest = 'nomboxo', action='store_true',
help = 'Skip Mboxo processing')
+ parser.add_argument('--dropin', dest = 'dropin', type=str,
+ help = 'Perform drop-in replacement of unit test
results for the specified generator type [devs only!]')
parser.add_argument('--skipnodate', dest = 'skipnodate',
action='store_true',
help = 'Skip emails with no Date: header (useful for
medium generator tests)')
args = parser.parse_args()