You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ponymail.apache.org by hu...@apache.org on 2020/08/15 13:53:43 UTC
[incubator-ponymail-unit-tests] branch master updated: Work with <=
0.11 of PM
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
The following commit(s) were added to refs/heads/master by this push:
new bdf6bb4 Work with <= 0.11 of PM
bdf6bb4 is described below
commit bdf6bb45d23a125bee3a23f5117579f841b262af
Author: Daniel Gruno <hu...@apache.org>
AuthorDate: Sat Aug 15 15:53:30 2020 +0200
Work with <= 0.11 of PM
FWIW, we don't really need to detect in the generate functions, as we
should be using foal as a reference, but I added some detection
nonetheless.
This build works with foal, 0.12+formatFlowed patch, fails with 0.11 on
56 tests (as expected).
---
tests/test-generators.py | 39 +++++++++++++++++++++++++++++----------
tests/test-parsing.py | 37 +++++++++++++++++++++++++++----------
2 files changed, 56 insertions(+), 20 deletions(-)
diff --git a/tests/test-generators.py b/tests/test-generators.py
index a8f4e89..fdd253f 100644
--- a/tests/test-generators.py
+++ b/tests/test-generators.py
@@ -22,12 +22,19 @@ def generate_specs(args):
import generators
except:
import plugins.generators as generators
- archie = archiver.Archiver(parse_html=parse_html)
- expected_parameters = inspect.signature(archie.compute_updates).parameters
+ expected_archie_parameters = inspect.signature(archiver.Archiver).parameters
+ expected_compute_parameters = inspect.signature(archiver.Archiver.compute_updates).parameters
yml = {}
for gen_type in generators.generator_names():
+ # <= 0.11:
+ if 'parseHTML' in expected_archie_parameters:
+ archiver.archiver_generator = gen_type
+ archie = archiver.Archiver(parseHTML=parse_html)
+ # current master and foal
+ else:
+ archie = archiver.Archiver(generator=gen_type, parse_html=parse_html)
sys.stderr.write("Generating specs for type '%s'...\n" % gen_type)
- archiver.archiver_generator = gen_type
+
gen_spec = []
mbox = mailbox.mbox(args.mboxfile, None, create=False)
for key in mbox.keys():
@@ -35,7 +42,7 @@ def generate_specs(args):
message = mbox.get(key)
lid = args.lid or archiver.normalize_lid(message.get('list-id', '??'))
# Foal parameters
- if 'raw_msg' in expected_parameters:
+ if 'raw_msg' in expected_compute_parameters:
json, _, _, _ = archie.compute_updates(fake_args, lid, False, message, message_raw)
# PM <= 0.12 parameters
else:
@@ -60,13 +67,21 @@ def run_tests(args):
errors = 0
tests_run = 0
yml = yaml.safe_load(open(args.load, 'r'))
+ expected_archie_parameters = inspect.signature(archiver.Archiver).parameters
+ expected_compute_parameters = inspect.signature(archiver.Archiver.compute_updates).parameters
+ generator_names = generators.generator_names() if hasattr(generators, 'generator_names') else ['full', 'medium', 'cluster', 'legacy']
for mboxfile, run in yml['generators'].items():
for gen_type, tests in run.items():
- if gen_type not in generators.generator_names():
+ if gen_type not in generator_names:
sys.stderr.write("Warning: generators.py does not have the '%s' generator, skipping tests\n" % gen_type)
continue
- archie = archiver.Archiver(generator=gen_type, parse_html=parse_html)
- expected_parameters = inspect.signature(archie.compute_updates).parameters
+ # <= 0.11:
+ if 'parseHTML' in expected_archie_parameters:
+ archiver.archiver_generator = gen_type
+ archie = archiver.Archiver(parseHTML=parse_html)
+ # current master and foal
+ else:
+ archie = archiver.Archiver(generator=gen_type, parse_html=parse_html)
mbox = mailbox.mbox(mboxfile, None, create=False)
no_messages = len(mbox.keys())
no_tests = len(tests)
@@ -79,11 +94,15 @@ def run_tests(args):
message = mbox.get(test['index'])
lid = args.lid or archiver.normalize_lid(message.get('list-id', '??'))
# Foal parameters
- if 'raw_msg' in expected_parameters:
+ if 'raw_msg' in expected_compute_parameters:
json, _, _, _ = archie.compute_updates(fake_args, lid, False, message, message_raw)
- # PM <= 0.12 parameters
- else:
+ # PM 0.12 parameters
+ elif 'args' in expected_compute_parameters:
json, _, _, _ = archie.compute_updates(fake_args, lid, False, message)
+ # PM <= 0.11 parameters (missing args)
+ else:
+ json, _, _, _ = archie.compute_updates(lid, False, message)
+
if json['mid'] != test['generated']:
errors += 1
sys.stderr.write("""[FAIL] %s, index %u: Expected '%s', got '%s'!\n""" %
diff --git a/tests/test-parsing.py b/tests/test-parsing.py
index c5054d0..7ab0b1f 100644
--- a/tests/test-parsing.py
+++ b/tests/test-parsing.py
@@ -18,8 +18,13 @@ fake_args = collections.namedtuple('fakeargs', ['verbose', 'ibody'])(False, None
def generate_specs(args):
import archiver
- archie = archiver.Archiver(parse_html=args.html)
- expected_parameters = inspect.signature(archie.compute_updates).parameters
+ expected_archie_args = inspect.signature(archiver.Archiver).parameters
+ # <= 0.11:
+ if 'parseHTML' in expected_archie_args:
+ archie = archiver.Archiver(parseHTML=args.html)
+ else:
+ archie = archiver.Archiver(parse_html=args.html)
+ expected_compute_parameters = inspect.signature(archie.compute_updates).parameters
sys.stderr.write("Generating parsing specs for file '%s'...\n" % args.mboxfile)
items = {}
for mboxfile in args.mboxfile:
@@ -30,11 +35,14 @@ def generate_specs(args):
message = mbox.get(key)
lid = archiver.normalize_lid(message.get('list-id', '??'))
# Foal parameters
- if 'raw_msg' in expected_parameters:
+ if 'raw_msg' in expected_compute_parameters:
json, _, _, _ = archie.compute_updates(fake_args, lid, False, message, message_raw)
- # PM <= 0.12 parameters
- else:
+ # PM 0.12 parameters
+ elif 'args' in expected_compute_parameters:
json, _, _, _ = archie.compute_updates(fake_args, lid, False, message)
+ # PM <= 0.11 parameters (missing args)
+ else:
+ json, _, _, _ = archie.compute_updates(lid, False, message)
body_sha3_256 = None
if json and json.get('body') is not None:
body_sha3_256 = hashlib.sha3_256(json['body'].encode('utf-8')).hexdigest()
@@ -56,8 +64,14 @@ def run_tests(args):
tests_run = 0
yml = yaml.safe_load(open(args.load, 'r'))
parse_html = yml.get('args', {}).get('parse_html', False)
- archie = archiver.Archiver(parse_html=parse_html)
- expected_parameters = inspect.signature(archie.compute_updates).parameters
+ expected_archie_parameters = inspect.signature(archiver.Archiver).parameters
+ expected_compute_parameters = inspect.signature(archiver.Archiver.compute_updates).parameters
+ # <= 0.11:
+ if 'parseHTML' in expected_archie_parameters:
+ archie = archiver.Archiver(parseHTML=parse_html)
+ else:
+ archie = archiver.Archiver(parse_html=parse_html)
+
for mboxfile, tests in yml['parsing'].items():
mbox = mailbox.mbox(mboxfile, None, create=False)
no_messages = len(mbox.keys())
@@ -71,11 +85,14 @@ def run_tests(args):
message = mbox.get(test['index'])
lid = archiver.normalize_lid(message.get('list-id', '??'))
# Foal parameters
- if 'raw_msg' in expected_parameters:
+ if 'raw_msg' in expected_compute_parameters:
json, _, _, _ = archie.compute_updates(fake_args, lid, False, message, message_raw)
- # PM <= 0.12 parameters
- else:
+ # PM 0.12 parameters
+ elif 'args' in expected_compute_parameters:
json, _, _, _ = archie.compute_updates(fake_args, lid, False, message)
+ # PM <= 0.11 parameters (missing args)
+ else:
+ json, _, _, _ = archie.compute_updates(lid, False, message)
body_sha3_256 = None
if json and json.get('body') is not None:
body_sha3_256 = hashlib.sha3_256(json['body'].encode('utf-8')).hexdigest()