From d8a906e53110721efb94b09776a96b22a06d5148 Mon Sep 17 00:00:00 2001 From: Konstantin Ryabitsev Date: Fri, 11 Jun 2021 10:06:07 -0400 Subject: Test to make sure mbox files contain unixfrom Start a test suite for generated mbox files. Signed-off-by: Konstantin Ryabitsev --- tests/test___init__.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'tests') diff --git a/tests/test___init__.py b/tests/test___init__.py index 5a09584..d78667e 100644 --- a/tests/test___init__.py +++ b/tests/test___init__.py @@ -1,5 +1,7 @@ import pytest # noqa import b4 +import re +import os @pytest.mark.parametrize('source,expected', [ @@ -13,3 +15,36 @@ def test_check_gpg_status(source, expected): with open(f'tests/samples/gpg-{source}.txt', 'r') as fh: status = fh.read() assert b4.check_gpg_status(status) == expected + + +@pytest.mark.parametrize('source,regex,flags,ismbox', [ + (None, r'^From git@z ', 0, False), + (None, r'\n\nFrom git@z ', 0, False), +]) +def test_save_git_am_mbox(tmpdir, source, regex, flags, ismbox): + import re + if source is not None: + if ismbox: + import mailbox + mbx = mailbox.mbox(f'tests/samples/{source}.txt') + msgs = list(mbx) + else: + import email + with open(f'tests/samples/{source}.txt', 'rb') as fh: + msg = email.message_from_binary_file(fh) + msgs = [msg] + else: + import email.message + msgs = list() + for x in range(0, 3): + msg = email.message.EmailMessage() + msg.set_payload(f'Hello world {x}\n') + msg['Subject'] = f'Hello world {x}' + msg['From'] = f'Me{x} ' + msgs.append(msg) + dest = os.path.join(tmpdir, 'out') + with open(dest, 'w') as fh: + b4.save_git_am_mbox(msgs, fh) + with open(dest, 'r') as fh: + res = fh.read() + assert re.search(regex, res, flags=flags) -- cgit v1.2.3