You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ponymail.apache.org by se...@apache.org on 2020/08/26 23:32:49 UTC
[incubator-ponymail-unit-tests] branch master updated: Fix up tests
for mboxo handling
This is an automated email from the ASF dual-hosted git repository.
sebb 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 e3b988a Fix up tests for mboxo handling
e3b988a is described below
commit e3b988a3077d25de71a610d8320ca1409b4173d0
Author: Sebb <se...@apache.org>
AuthorDate: Thu Aug 27 00:32:23 2020 +0100
Fix up tests for mboxo handling
---
tests/test-generators.py | 29 ++++++++++++++++++++---------
tests/test-parsing.py | 31 +++++++++++++++++++++----------
yaml/generators-dkim-multimbox.yaml | 32 ++++++++++++++++----------------
3 files changed, 57 insertions(+), 35 deletions(-)
diff --git a/tests/test-generators.py b/tests/test-generators.py
index bc9b530..0037f4c 100755
--- a/tests/test-generators.py
+++ b/tests/test-generators.py
@@ -15,12 +15,23 @@ parse_html = False
nonce = None
fake_args = collections.namedtuple('fakeargs', ['verbose', 'ibody'])(False, None)
+# get raw message, allowing for mboxo translation
+def _raw(args, mbox, key):
+ if args.nomboxo: # No need to filter the data
+ message_raw = mbox.get_bytes(key, True)
+ else:
+ from mboxo_patch import MboxoReader
+ file=mbox.get_file(key, True)
+ file=MboxoReader(file)
+ message_raw=file.read()
+ file.close()
+ return message_raw
def generate_specs(args):
if not args.nomboxo:
# Temporary patch to fix Python email package limitation
# It must be removed when the Python package is fixed
- from mboxo_patch import MboxoFactory, MboxoReader
+ from mboxo_patch import MboxoFactory
import archiver
if args.generators:
generator_names = args.generators
@@ -40,7 +51,7 @@ def generate_specs(args):
gen_spec = []
mbox = mailbox.mbox(args.mboxfile, None if args.nomboxo else MboxoFactory, create=False)
for key in mbox.keys():
- message_raw = mbox.get_bytes(key) # True raw format, as opposed to calling .as_bytes()
+ message_raw = _raw(args, mbox, key)
message = mbox.get(key)
lid = args.lid or archiver.normalize_lid(message.get('list-id', '??'))
json = archie.compute_updates(fake_args, lid, False, message, message_raw)
@@ -60,7 +71,7 @@ def run_tests(args):
if not args.nomboxo:
# Temporary patch to fix Python email package limitation
# It must be removed when the Python package is fixed
- from mboxo_patch import MboxoFactory, MboxoReader
+ from mboxo_patch import MboxoFactory
import archiver
import logging
verbose_logger = logging.getLogger()
@@ -91,13 +102,13 @@ def run_tests(args):
(gen_type, mboxfile, no_tests, no_messages))
for test in tests:
tests_run += 1
- # TODO does get_bytes take account of MboxoFactory?
- message_raw = mbox.get_bytes(test['index']) # True raw format, as opposed to calling .as_bytes()
- message = mbox.get(test['index'])
+ key = test['index']
+ message_raw = _raw(args, mbox, key)
+ message = mbox.get(key)
msgid =(message.get('message-id') or '').strip()
if msgid != test['message-id']:
sys.stderr.write("""[SEQ?] %s, index %2u: Expected '%s', got '%s'!\n""" %
- (gen_type, test['index'], test['message-id'], msgid))
+ (gen_type, key, test['message-id'], msgid))
continue # no point continuing
lid = args.lid or archiver.normalize_lid(message.get('list-id', '??'))
json = archie.compute_updates(fake_args, lid, False, message, message_raw)
@@ -105,9 +116,9 @@ def run_tests(args):
if json['mid'] != test['generated']:
errors += 1
sys.stderr.write("""[FAIL] %s, index %2u: Expected '%s', got '%s'!\n""" %
- (gen_type, test['index'], test['generated'], json['mid']))
+ (gen_type, key, test['generated'], json['mid']))
else:
- print("[PASS] %s index %u" % (gen_type, test['index']))
+ print("[PASS] %s index %u" % (gen_type, key))
print("[DONE] %u tests run, %u failed." % (tests_run, errors))
if errors:
sys.exit(-1)
diff --git a/tests/test-parsing.py b/tests/test-parsing.py
index 12ec894..7c1fbb1 100755
--- a/tests/test-parsing.py
+++ b/tests/test-parsing.py
@@ -15,12 +15,23 @@ import interfacer
nonce = None
fake_args = collections.namedtuple('fakeargs', ['verbose', 'ibody'])(False, None)
+# get raw message, allowing for mboxo translation
+def _raw(args, mbox, key):
+ if args.nomboxo: # No need to filter the data
+ message_raw = mbox.get_bytes(key, True)
+ else:
+ from mboxo_patch import MboxoReader
+ file=mbox.get_file(key, True)
+ file=MboxoReader(file)
+ message_raw=file.read()
+ file.close()
+ return message_raw
def generate_specs(args):
if not args.nomboxo:
# Temporary patch to fix Python email package limitation
# It must be removed when the Python package is fixed
- from mboxo_patch import MboxoFactory, MboxoReader
+ from mboxo_patch import MboxoFactory
import archiver
cli_args = collections.namedtuple('testargs', ['parse_html'])(args.html)
archie = interfacer.Archiver(archiver, cli_args)
@@ -31,7 +42,7 @@ def generate_specs(args):
tests = []
mbox = mailbox.mbox(mboxfile, None if args.nomboxo else MboxoFactory, create=False)
for key in mbox.keys():
- message_raw = mbox.get_bytes(key) # True raw format, as opposed to calling .as_bytes()
+ message_raw = _raw(args, mbox, key)
message = mbox.get(key)
lid = archiver.normalize_lid(message.get('list-id', '??'))
json = archie.compute_updates(fake_args, lid, False, message, message_raw)
@@ -54,7 +65,7 @@ def run_tests(args):
if not args.nomboxo:
# Temporary patch to fix Python email package limitation
# It must be removed when the Python package is fixed
- from mboxo_patch import MboxoFactory, MboxoReader
+ from mboxo_patch import MboxoFactory
import archiver
import logging
verbose_logger = logging.getLogger()
@@ -78,13 +89,13 @@ def run_tests(args):
('TBA', mboxfile, no_tests, no_messages))
for test in tests:
tests_run += 1
- # TODO does get_bytes take account of MboxoFactory?
- message_raw = mbox.get_bytes(test['index']) # True raw format, as opposed to calling .as_bytes()
- message = mbox.get(test['index'])
+ key = test['index']
+ message_raw = _raw(args, mbox, key)
+ message = mbox.get(key)
msgid =(message.get('message-id') or '').strip()
if msgid != test['message-id']:
sys.stderr.write("""[SEQ?] index %2u: Expected '%s', got '%s'!\n""" %
- (test['index'], test['message-id'], msgid))
+ (key, test['message-id'], msgid))
continue # no point continuing
lid = archiver.normalize_lid(message.get('list-id', '??'))
json = archie.compute_updates(fake_args, lid, False, message, message_raw)
@@ -94,15 +105,15 @@ def run_tests(args):
if body_sha3_256 != test['body_sha3_256']:
errors += 1
sys.stderr.write("""[FAIL] parsing index %2u: Expected: %s Got: %s\n""" %
- (test['index'], test['body_sha3_256'], body_sha3_256))
+ (key, test['body_sha3_256'], body_sha3_256))
att = json['attachments'] if json else []
att_expected = test['attachments'] or []
if att != att_expected:
errors += 1
sys.stderr.write("""[FAIL] attachments index %2u: Expected: %s Got: %s\n""" %
- (test['index'], att_expected, att))
+ (key, att_expected, att))
else:
- print("[PASS] index %u" % (test['index']))
+ print("[PASS] index %u" % (key))
print("[DONE] %u tests run, %u failed." % (tests_run, errors))
if errors:
sys.exit(-1)
diff --git a/yaml/generators-dkim-multimbox.yaml b/yaml/generators-dkim-multimbox.yaml
index 68109b1..42b495c 100644
--- a/yaml/generators-dkim-multimbox.yaml
+++ b/yaml/generators-dkim-multimbox.yaml
@@ -84,7 +84,7 @@ generators:
generated: x8zmjx82cfosfdpk
- index: 26
message-id: <15...@webmail.messagingengine.com>
- generated: kkly7br02tp3wo1x
+ generated: hrnro1xyftf0r0q5
- index: 27
message-id: <15...@webmail.messagingengine.com>
generated: lddltxp8k8sg2zfw
@@ -102,7 +102,7 @@ generators:
generated: tffgm6926q3oqq11
- index: 32
message-id: <15...@webmail.messagingengine.com>
- generated: 2kvy8ogom9zsgq1v
+ generated: v8rcxskh25n2wsz0
- index: 33
message-id: <15...@webmail.messagingengine.com>
generated: vdof63z8ycqrgqxp
@@ -606,7 +606,7 @@ generators:
generated: 61hbjjv4053cw840
- index: 200
message-id: <20...@dd17332.kasserver.com>
- generated: rpjw18yntokdop6g
+ generated: j49wvrjkxcg6c12q
- index: 201
message-id: <20...@dd17332.kasserver.com>
generated: b5pgglfmzzb7v7zq
@@ -807,7 +807,7 @@ generators:
generated: hbfdyr4lso07ds3z
- index: 267
message-id: <20...@dd17332.kasserver.com>
- generated: 4mv9c5o3hj6ch593
+ generated: osrc71twvnjopt0g
- index: 268
message-id: <20...@dd17332.kasserver.com>
generated: 3q8mf8ohzlxhmwx1
@@ -1536,7 +1536,7 @@ generators:
generated: 8p38x7756myrrp4j
- index: 510
message-id: <CA...@mail.gmail.com>
- generated: 9xwwt6czrcj7kc7q
+ generated: xplss80k3qvro3yp
- index: 511
message-id: <CA...@mail.gmail.com>
generated: pqs8wsn3yz2ks136
@@ -1944,7 +1944,7 @@ generators:
generated: 1xwvkdnqydh8mtrv
- index: 646
message-id: <CA...@mail.gmail.com>
- generated: stf5votyjy9j3c2p
+ generated: wg3rqxz7o80no2yz
- index: 647
message-id: <CA...@mail.gmail.com>
generated: wk48tv3qo474w4wl
@@ -1971,7 +1971,7 @@ generators:
generated: s1z18l4vlovzls59
- index: 655
message-id: <CA...@mail.gmail.com>
- generated: 98l06s1qvtd4pgyw
+ generated: 8fhv11owcxmvxjmw
- index: 656
message-id: <CA...@mail.gmail.com>
generated: vdtsnqobwr62roc3
@@ -2457,7 +2457,7 @@ generators:
generated: mknzw9381221godt
- index: 817
message-id: <CA...@mail.gmail.com>
- generated: drvj0cyhtpm4sjs7
+ generated: vfqrfo84o4vf2zz6
- index: 818
message-id: <CA...@mail.gmail.com>
generated: qd1259rqpr0nyl1g
@@ -3272,7 +3272,7 @@ generators:
generated: x8zmjx82cfosfdpk
- index: 26
message-id: <15...@webmail.messagingengine.com>
- generated: kkly7br02tp3wo1x
+ generated: hrnro1xyftf0r0q5
- index: 27
message-id: <15...@webmail.messagingengine.com>
generated: lddltxp8k8sg2zfw
@@ -3290,7 +3290,7 @@ generators:
generated: tffgm6926q3oqq11
- index: 32
message-id: <15...@webmail.messagingengine.com>
- generated: 2kvy8ogom9zsgq1v
+ generated: v8rcxskh25n2wsz0
- index: 33
message-id: <15...@webmail.messagingengine.com>
generated: vdof63z8ycqrgqxp
@@ -3794,7 +3794,7 @@ generators:
generated: 61hbjjv4053cw840
- index: 200
message-id: <20...@dd17332.kasserver.com>
- generated: rpjw18yntokdop6g
+ generated: j49wvrjkxcg6c12q
- index: 201
message-id: <20...@dd17332.kasserver.com>
generated: b5pgglfmzzb7v7zq
@@ -3995,7 +3995,7 @@ generators:
generated: hbfdyr4lso07ds3z
- index: 267
message-id: <20...@dd17332.kasserver.com>
- generated: 4mv9c5o3hj6ch593
+ generated: osrc71twvnjopt0g
- index: 268
message-id: <20...@dd17332.kasserver.com>
generated: 3q8mf8ohzlxhmwx1
@@ -4724,7 +4724,7 @@ generators:
generated: 8p38x7756myrrp4j
- index: 510
message-id: <CA...@mail.gmail.com>
- generated: 9xwwt6czrcj7kc7q
+ generated: xplss80k3qvro3yp
- index: 511
message-id: <CA...@mail.gmail.com>
generated: pqs8wsn3yz2ks136
@@ -5132,7 +5132,7 @@ generators:
generated: 1xwvkdnqydh8mtrv
- index: 646
message-id: <CA...@mail.gmail.com>
- generated: stf5votyjy9j3c2p
+ generated: wg3rqxz7o80no2yz
- index: 647
message-id: <CA...@mail.gmail.com>
generated: wk48tv3qo474w4wl
@@ -5159,7 +5159,7 @@ generators:
generated: s1z18l4vlovzls59
- index: 655
message-id: <CA...@mail.gmail.com>
- generated: 98l06s1qvtd4pgyw
+ generated: 8fhv11owcxmvxjmw
- index: 656
message-id: <CA...@mail.gmail.com>
generated: vdtsnqobwr62roc3
@@ -5645,7 +5645,7 @@ generators:
generated: mknzw9381221godt
- index: 817
message-id: <CA...@mail.gmail.com>
- generated: drvj0cyhtpm4sjs7
+ generated: vfqrfo84o4vf2zz6
- index: 818
message-id: <CA...@mail.gmail.com>
generated: qd1259rqpr0nyl1g