1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import unittest
20
21 from dkim.util import (
22 DuplicateTag,
23 InvalidTagSpec,
24 parse_tag_value,
25 get_linesep,
26 )
27
28
30 """Tag=Value parsing tests."""
31
36
41
43 self.assertEqual(
44 {b'foo': b'bar', b'baz': b'foo'},
45 parse_tag_value(b'foo=bar;baz=foo'))
46
48 self.assertEqual(
49 {b'foo': b'bar', b'baz': b'foo=bar'},
50 parse_tag_value(b'foo=bar;baz=foo=bar'))
51
53 self.assertEqual(
54 {b'foo': b'bar', b'baz': b'f oo=bar'},
55 parse_tag_value(b' foo \t= bar;\tbaz= f oo=bar '))
56
60
64
66 hval = b'''v=1; a=rsa-sha256; d=facebookmail.com; s=s1024-2011-q2; c=relaxed/simple;
67 q=dns/txt; i=@facebookmail.com; t=1308078492;
68 h=From:Subject:Date:To:MIME-Version:Content-Type;
69 bh=+qPyCOiDQkusTPstCoGjimgDgeZbUaJWIr1mdE6RFxk=;
70 b=EUmDmdnAsNtjSEHGHNTa8PXgGaEUtOVezagmninX5Bs/Q26R9r3AMgawyUSKkbHp
71 /bQZU6QPZfdvmLMPdIWCQPo8SP+gsz4dpox2efO61DlvgYaxBRhwFedAW9LjYhQc
72 3KzW0yB9JHwiDCw1EioVkv+OMHhAYzoIypA0bQyi2bc=;
73 '''
74 sig = parse_tag_value(hval)
75 self.assertEqual(sig[b't'],b'1308078492')
76 self.assertEqual(len(sig),11)
77
78
80 """Line seperator probing tests."""
81
83 self.assertEqual(
84 b'\r\n',
85 get_linesep(b'abc'))
86
88 self.assertEqual(
89 b'\r\n',
90 get_linesep(b'abc\r\n'))
91
93 self.assertEqual(
94 b'\n',
95 get_linesep(b'abc\n'))
96
98 self.assertEqual(
99 b'\r\n',
100 get_linesep(b'a'))
101
102
104 from unittest import TestLoader
105 return TestLoader().loadTestsFromName(__name__)
106