1from getmailcore.message import Message
2
3import smtplib, ssl
4from email.mime.text import MIMEText
5from email.mime.multipart import MIMEMultipart
6from email.message import EmailMessage
7
8greetru = "привет"
9greetde = "Grüße"
10byeru = 'пока'
11
12def test_add_header():
13    m = EmailMessage()
14    m["Subject"] = "test"
15    m["From"] = "my@gmail.com"
16    m["To"] = "your@gmail.com"
17    t = greetru.encode('Windows-1251')
18    m.set_content(t,'text','plain')
19    #m.as_string()
20    #m.get_content()
21    #m.get_content_charset()
22    #m.get_charsets()
23    gm = Message(fromstring=m.as_bytes())
24    #te.decode('Windows-1251')
25    gm.add_header('X-byeru',byeru)
26    assert gm.content()['X-byeru'] == byeru
27    ge = greetde.encode('latin1')
28    gm.add_header('X-greetde',ge)
29    #gm.content()['X-greetde']
30    assert gm.content()['X-greetde'] != greetde
31
32def test_add_header1():
33    m = EmailMessage()
34    m["Subject"] = "test"
35    m["From"] = "my@gmail.com"
36    m["To"] = "your@gmail.com"
37    t = greetru.encode('Windows-1251')
38    m.set_content(t,'text','plain')
39    m.set_param('charset','Windows-1251')
40    #m.as_string()
41    #m.get_content()
42    #m.get_content_charset()
43    #m.get_charsets()
44    gm = Message(fromstring=m.as_bytes())
45    te = byeru.encode('Windows-1251')
46    #te.decode('Windows-1251')
47    gm.add_header('X-byeru',te)
48    assert gm.content()['X-byeru'] == byeru
49    ge = greetde.encode('latin1')
50    gm.add_header('X-greetde',ge)
51    #gm.content()['X-greetde']
52    ### if coding is really wrong: no way
53    assert gm.content()['X-greetde'] != greetde
54
55def test_add_header2():
56    mm = MIMEMultipart("alternative")
57    mm["Subject"] = "multipart test"
58    mm["From"] = "my@gmail.com"
59    mm["To"] = "your@gmail.com"
60    p1 = MIMEText(greetru, "plain")
61    p1.set_param('charset','Windows-1251')
62    p2 = MIMEText(greetde, "plain")
63    p2.set_param('charset','latin1')
64    mm.attach(p1)
65    mm.attach(p2)
66    #mm.get_charsets()
67    gmm = Message(fromstring=mm.as_bytes())
68    te = byeru.encode('Windows-1251')
69    #te.decode('Windows-1251')
70    gmm.add_header('X-byeru',te)
71    assert gmm.content()['X-byeru'] == byeru
72    ge = greetde.encode('latin1')
73    gmm.add_header('X-greetde',ge)
74    #gmm.content()['X-greetde']
75    ### if coding is really wrong: no way
76    assert gmm.content()['X-greetde'] != greetde
77    #mm.as_string()
78
79
80