From 5c9f52b0c1c52f7320dbe70ab0b906065d789f87 Mon Sep 17 00:00:00 2001 From: Scott Kitterman Date: Sun, 28 Apr 2013 15:24:38 -0400 Subject: [PATCH] Add test case for message with no 5322.From - Should get ParameterError and fail to sign. --- dkim/tests/data/test_nofrom.message | 7 +++++++ dkim/tests/test_dkim.py | 14 ++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 dkim/tests/data/test_nofrom.message diff --git a/dkim/tests/data/test_nofrom.message b/dkim/tests/data/test_nofrom.message new file mode 100644 index 0000000..94a8dc2 --- /dev/null +++ b/dkim/tests/data/test_nofrom.message @@ -0,0 +1,7 @@ +Received: from localhost +Message-ID: +Date: Mon, 01 Jan 2013 01:02:03 +0400 +To: somebody@example.com +Subject: Testing + +This is a test message. diff --git a/dkim/tests/test_dkim.py b/dkim/tests/test_dkim.py index ed18ce1..bc00077 100644 --- a/dkim/tests/test_dkim.py +++ b/dkim/tests/test_dkim.py @@ -192,6 +192,20 @@ b/mPfjC0QJTocVBq6Za/PlzfV+Py92VaCak19F4WrbVTK5Gg5tW220MCAwEAAQ==""" res = dkim.verify(sig+message, dnsfunc=self.dnsfunc) self.assertFalse(res) + def test_no_from_fails(self): + # Body From is mandatory to be in the message and mandatory to sign + sigerror = False + sig = '' + message = read_test_data('test_nofrom.message') + selector = 'test' + domain = 'example.com' + identity = None + try: + sig = dkim.sign(message, selector, domain, read_test_data('test.private'), identity = identity) + except dkim.ParameterError as sigerror: + pass + self.assertTrue(sigerror) + def test_suite(): from unittest import TestLoader return TestLoader().loadTestsFromName(__name__)