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