Merge ~jbfzs/dkimpy:beautifold into dkimpy:master

Proposed by Jonathan Bastien-Filiatrault
Status: Merged
Approved by: Scott Kitterman
Approved revision: 10af791a671e5544d805ed12d4ae4743dd40545f
Merge reported by: Scott Kitterman
Merged at revision: 10af791a671e5544d805ed12d4ae4743dd40545f
Proposed branch: ~jbfzs/dkimpy:beautifold
Merge into: dkimpy:master
Diff against target: 65 lines (+14/-12)
2 files modified
dkim/__init__.py (+13/-11)
dkim/tests/test_arc.py (+1/-1)
Reviewer Review Type Date Requested Status
Scott Kitterman Approve
Review via email: mp+360866@code.launchpad.net

Commit message

Better folding in general. Removes trailing whitespace and better uses the whole line length.

To post a comment you must log in.
Revision history for this message
Scott Kitterman (kitterman) wrote :

Thanks. Merged. Feel free to include an appropriate ChangeLog entry in the future.

Scott K

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/dkim/__init__.py b/dkim/__init__.py
2index ed54d1f..f68cf31 100644
3--- a/dkim/__init__.py
4+++ b/dkim/__init__.py
5@@ -371,7 +371,7 @@ def fold(header, namelen=0):
6 >>> text(fold(b'foo'))
7 'foo'
8 >>> text(fold(b'foo '+b'foo'*24).splitlines()[0])
9- 'foo '
10+ 'foo '
11 >>> text(fold(b'foo'*25).splitlines()[-1])
12 ' foo'
13 >>> len(fold(b'foo'*25).splitlines()[0])
14@@ -386,7 +386,7 @@ def fold(header, namelen=0):
15 maxleng = 72 - namelen
16 if len(header) <= maxleng:
17 return header
18- if len(header) - header.rfind(b"\r\n") == 2 and len(header) <= maxleng +2:
19+ if header.endswith(b"\r\n") and len(header) - 2 <= maxleng:
20 return header
21 i = header.rfind(b"\r\n ")
22 if i == -1:
23@@ -399,19 +399,21 @@ def fold(header, namelen=0):
24 i = header[:maxleng].rfind(b" ")
25 if i == -1:
26 j = maxleng
27+ pre += header[:j] + b"\r\n "
28 else:
29 j = i + 1
30- pre += header[:j] + b"\r\n "
31+ pre += header[:i] + b"\r\n "
32 header = header[j:]
33- namelen = 0
34- if len(header) > 2:
35- return pre + header
36- else:
37- if pre[0] == b' ':
38- return pre[:-1]
39- else:
40- return pre + header
41
42+ if header == b"\r\n":
43+ # If only a CRLF is left to fold, remove the space added
44+ # and we are done.
45+ pre = pre[:-1]
46+ header = b""
47+
48+ maxleng = 72
49+
50+ return pre + header
51
52 def load_pk_from_dns(name, dnsfunc=get_txt):
53 s = dnsfunc(name)
54diff --git a/dkim/tests/test_arc.py b/dkim/tests/test_arc.py
55index 18719a3..286b25c 100644
56--- a/dkim/tests/test_arc.py
57+++ b/dkim/tests/test_arc.py
58@@ -74,7 +74,7 @@ Y+vtSBczUiKERHv1yRbcaQtZFh5wtiRrN04BLUTD21MycBX5jYchHjPY/wIDAQAB"""
59 sig_lines = dkim.arc_sign(
60 self.message, b"test", b"example.com", self.key, b"lists.example.org", timestamp="12345")
61
62- expected_sig = [b'ARC-Seal: i=1; cv=none; a=rsa-sha256; d=example.com; s=test; t=12345; \r\n b=2DTLaiAcKznJwwNOWoOG8WBsdTq+/S92TZbURDxkgjGCmsSw8czQiisf02sC92\r\n 0nswz3JItA80l70iguM00onrj3eCe41yRDzB8lQL3kbrDyM+wUewmyhPoifRTsng\r\n t9ELTFrax4kCeHv6SdNz3uJfGYwQc+WCFEchXt3szNTRM=\r\n', b'ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; \r\n d=example.com; s=test; t=12345; h=message-id : \r\n date : from : to : subject : from; \r\n bh=wE7NXSkgnx9PGiavN4OZhJztvkqPDlemV3OGuEnLwNo=; \r\n b=a0f6qc3k9eECTSR155A0TQS+LjqPFWfI/brQBA83EUz00SNxj\r\n 1wmWykvs1hhBVeM0r1kEQc6CKbzRYaBNSiFj4q8JBpRIujLz1qL\r\n yGmPuAI6ddu/Z/1hQxgpVcp/odmI1UMV2R+d+yQ7tUp3EQxF/GY\r\n Nt22rV4rNmDmANZVqJ90=\r\n', b'ARC-Authentication-Results: i=1; lists.example.org; arc=none;\r\n spf=pass smtp.mfrom=jqd@d1.example;\r\n dkim=pass (1024-bit key) header.i=@d1.example;\r\n dmarc=pass\r\n']
63+ expected_sig = [b'ARC-Seal: i=1; cv=none; a=rsa-sha256; d=example.com; s=test; t=12345;\r\n b=AwwfB+haHcusCH1o5kKebsCtsGWBa2sW1jJRHPNLRv8e5fuDl8VMYtj/r5LIZRgj+2ubPc\r\n hjLhoj6/Nf3Sv5m3P6iW9nnXM/HV0CLFxD5RjLhNy0Wsi6POBHVQ2KTT85xv7AyBURBv00Np\r\n kgGt+v3g7wtDQ3T+MwquceXqPmRjM=\r\n', b'ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;\r\n d=example.com; s=test; t=12345; h=message-id : date : from : to :\r\n subject : from; bh=wE7NXSkgnx9PGiavN4OZhJztvkqPDlemV3OGuEnLwNo=;\r\n b=a0f6qc3k9eECTSR155A0TQS+LjqPFWfI/brQBA83EUz00SNxj1wmWykvs1hhBVeM0r1kEQ\r\n c6CKbzRYaBNSiFj4q8JBpRIujLz1qLyGmPuAI6ddu/Z/1hQxgpVcp/odmI1UMV2R+d+yQ7tU\r\n p3EQxF/GYNt22rV4rNmDmANZVqJ90=\r\n', b'ARC-Authentication-Results: i=1; lists.example.org; arc=none;\r\n spf=pass smtp.mfrom=jqd@d1.example;\r\n dkim=pass (1024-bit key) header.i=@d1.example;\r\n dmarc=pass\r\n']
64
65 self.assertEqual(expected_sig, sig_lines)
66

Subscribers

People subscribed via source and target branches