Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_mailbox.py @ 54294:dba767bc3155 legacy-trunk
remove mention of old ctypes version
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Sat, 23 May 2009 20:59:09 +0000 |
| parents | e0cede7f521b |
| children | 6768b2350c57 |
| rev | line source |
|---|---|
|
15298
85a509faccc7
Added test for regression on SourceForge bug #117490.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
1 import os |
|
39436
6ab4c39fd7a3
Fix the failures on cygwin (2006-08-10 fixed the actual locking issue).
Neal Norwitz <nnorwitz@gmail.com>
parents:
39151
diff
changeset
|
2 import sys |
|
17885
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
3 import time |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
4 import stat |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
5 import socket |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
6 import email |
|
40689
b23711be2b3e
Use new email module names (#1637162, #1637159, #1637157).
Georg Brandl <georg@python.org>
parents:
40348
diff
changeset
|
7 import email.message |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
8 import rfc822 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
9 import re |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
10 import StringIO |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
11 from test import test_support |
|
17885
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
12 import unittest |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
13 import mailbox |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
14 import glob |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
15 try: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
16 import fcntl |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
17 except ImportError: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
18 pass |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
19 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
20 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
21 class TestBase(unittest.TestCase): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
22 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
23 def _check_sample(self, msg): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
24 # Inspect a mailbox.Message representation of the sample message |
|
40689
b23711be2b3e
Use new email module names (#1637162, #1637159, #1637157).
Georg Brandl <georg@python.org>
parents:
40348
diff
changeset
|
25 self.assert_(isinstance(msg, email.message.Message)) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
26 self.assert_(isinstance(msg, mailbox.Message)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
27 for key, value in _sample_headers.iteritems(): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
28 self.assert_(value in msg.get_all(key)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
29 self.assert_(msg.is_multipart()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
30 self.assert_(len(msg.get_payload()) == len(_sample_payloads)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
31 for i, payload in enumerate(_sample_payloads): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
32 part = msg.get_payload(i) |
|
40689
b23711be2b3e
Use new email module names (#1637162, #1637159, #1637157).
Georg Brandl <georg@python.org>
parents:
40348
diff
changeset
|
33 self.assert_(isinstance(part, email.message.Message)) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
34 self.assert_(not isinstance(part, mailbox.Message)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
35 self.assert_(part.get_payload() == payload) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
36 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
37 def _delete_recursively(self, target): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
38 # Delete a file or delete a directory recursively |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
39 if os.path.isdir(target): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
40 for path, dirs, files in os.walk(target, topdown=False): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
41 for name in files: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
42 os.remove(os.path.join(path, name)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
43 for name in dirs: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
44 os.rmdir(os.path.join(path, name)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
45 os.rmdir(target) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
46 elif os.path.exists(target): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
47 os.remove(target) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
48 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
49 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
50 class TestMailbox(TestBase): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
51 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
52 _factory = None # Overridden by subclasses to reuse tests |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
53 _template = 'From: foo\n\n%s' |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
54 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
55 def setUp(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
56 self._path = test_support.TESTFN |
|
41244
5a771b4a8b78
Try to make this test more resistant to dropping from previous runs (ie, files that may exist but cause the test to fail). Should be backported (assuming it works :-)
Neal Norwitz <nnorwitz@gmail.com>
parents:
40732
diff
changeset
|
57 self._delete_recursively(self._path) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
58 self._box = self._factory(self._path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
59 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
60 def tearDown(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
61 self._box.close() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
62 self._delete_recursively(self._path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
63 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
64 def test_add(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
65 # Add copies of a sample message |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
66 keys = [] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
67 keys.append(self._box.add(self._template % 0)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
68 self.assert_(len(self._box) == 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
69 keys.append(self._box.add(mailbox.Message(_sample_message))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
70 self.assert_(len(self._box) == 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
71 keys.append(self._box.add(email.message_from_string(_sample_message))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
72 self.assert_(len(self._box) == 3) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
73 keys.append(self._box.add(StringIO.StringIO(_sample_message))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
74 self.assert_(len(self._box) == 4) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
75 keys.append(self._box.add(_sample_message)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
76 self.assert_(len(self._box) == 5) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
77 self.assert_(self._box.get_string(keys[0]) == self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
78 for i in (1, 2, 3, 4): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
79 self._check_sample(self._box[keys[i]]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
80 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
81 def test_remove(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
82 # Remove messages using remove() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
83 self._test_remove_or_delitem(self._box.remove) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
84 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
85 def test_delitem(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
86 # Remove messages using __delitem__() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
87 self._test_remove_or_delitem(self._box.__delitem__) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
88 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
89 def _test_remove_or_delitem(self, method): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
90 # (Used by test_remove() and test_delitem().) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
91 key0 = self._box.add(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
92 key1 = self._box.add(self._template % 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
93 self.assert_(len(self._box) == 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
94 method(key0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
95 l = len(self._box) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
96 self.assert_(l == 1, "actual l: %s" % l) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
97 self.assertRaises(KeyError, lambda: self._box[key0]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
98 self.assertRaises(KeyError, lambda: method(key0)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
99 self.assert_(self._box.get_string(key1) == self._template % 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
100 key2 = self._box.add(self._template % 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
101 self.assert_(len(self._box) == 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
102 method(key2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
103 l = len(self._box) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
104 self.assert_(l == 1, "actual l: %s" % l) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
105 self.assertRaises(KeyError, lambda: self._box[key2]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
106 self.assertRaises(KeyError, lambda: method(key2)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
107 self.assert_(self._box.get_string(key1) == self._template % 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
108 method(key1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
109 self.assert_(len(self._box) == 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
110 self.assertRaises(KeyError, lambda: self._box[key1]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
111 self.assertRaises(KeyError, lambda: method(key1)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
112 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
113 def test_discard(self, repetitions=10): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
114 # Discard messages |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
115 key0 = self._box.add(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
116 key1 = self._box.add(self._template % 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
117 self.assert_(len(self._box) == 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
118 self._box.discard(key0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
119 self.assert_(len(self._box) == 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
120 self.assertRaises(KeyError, lambda: self._box[key0]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
121 self._box.discard(key0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
122 self.assert_(len(self._box) == 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
123 self.assertRaises(KeyError, lambda: self._box[key0]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
124 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
125 def test_get(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
126 # Retrieve messages using get() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
127 key0 = self._box.add(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
128 msg = self._box.get(key0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
129 self.assert_(msg['from'] == 'foo') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
130 self.assert_(msg.get_payload() == '0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
131 self.assert_(self._box.get('foo') is None) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
132 self.assert_(self._box.get('foo', False) is False) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
133 self._box.close() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
134 self._box = self._factory(self._path, factory=rfc822.Message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
135 key1 = self._box.add(self._template % 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
136 msg = self._box.get(key1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
137 self.assert_(msg['from'] == 'foo') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
138 self.assert_(msg.fp.read() == '1') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
139 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
140 def test_getitem(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
141 # Retrieve message using __getitem__() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
142 key0 = self._box.add(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
143 msg = self._box[key0] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
144 self.assert_(msg['from'] == 'foo') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
145 self.assert_(msg.get_payload() == '0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
146 self.assertRaises(KeyError, lambda: self._box['foo']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
147 self._box.discard(key0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
148 self.assertRaises(KeyError, lambda: self._box[key0]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
149 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
150 def test_get_message(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
151 # Get Message representations of messages |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
152 key0 = self._box.add(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
153 key1 = self._box.add(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
154 msg0 = self._box.get_message(key0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
155 self.assert_(isinstance(msg0, mailbox.Message)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
156 self.assert_(msg0['from'] == 'foo') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
157 self.assert_(msg0.get_payload() == '0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
158 self._check_sample(self._box.get_message(key1)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
159 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
160 def test_get_string(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
161 # Get string representations of messages |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
162 key0 = self._box.add(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
163 key1 = self._box.add(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
164 self.assert_(self._box.get_string(key0) == self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
165 self.assert_(self._box.get_string(key1) == _sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
166 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
167 def test_get_file(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
168 # Get file representations of messages |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
169 key0 = self._box.add(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
170 key1 = self._box.add(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
171 self.assert_(self._box.get_file(key0).read().replace(os.linesep, '\n') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
172 == self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
173 self.assert_(self._box.get_file(key1).read().replace(os.linesep, '\n') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
174 == _sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
175 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
176 def test_iterkeys(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
177 # Get keys using iterkeys() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
178 self._check_iteration(self._box.iterkeys, do_keys=True, do_values=False) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
179 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
180 def test_keys(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
181 # Get keys using keys() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
182 self._check_iteration(self._box.keys, do_keys=True, do_values=False) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
183 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
184 def test_itervalues(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
185 # Get values using itervalues() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
186 self._check_iteration(self._box.itervalues, do_keys=False, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
187 do_values=True) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
188 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
189 def test_iter(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
190 # Get values using __iter__() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
191 self._check_iteration(self._box.__iter__, do_keys=False, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
192 do_values=True) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
193 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
194 def test_values(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
195 # Get values using values() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
196 self._check_iteration(self._box.values, do_keys=False, do_values=True) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
197 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
198 def test_iteritems(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
199 # Get keys and values using iteritems() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
200 self._check_iteration(self._box.iteritems, do_keys=True, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
201 do_values=True) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
202 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
203 def test_items(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
204 # Get keys and values using items() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
205 self._check_iteration(self._box.items, do_keys=True, do_values=True) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
206 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
207 def _check_iteration(self, method, do_keys, do_values, repetitions=10): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
208 for value in method(): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
209 self.fail("Not empty") |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
210 keys, values = [], [] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
211 for i in xrange(repetitions): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
212 keys.append(self._box.add(self._template % i)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
213 values.append(self._template % i) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
214 if do_keys and not do_values: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
215 returned_keys = list(method()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
216 elif do_values and not do_keys: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
217 returned_values = list(method()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
218 else: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
219 returned_keys, returned_values = [], [] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
220 for key, value in method(): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
221 returned_keys.append(key) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
222 returned_values.append(value) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
223 if do_keys: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
224 self.assert_(len(keys) == len(returned_keys)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
225 self.assert_(set(keys) == set(returned_keys)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
226 if do_values: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
227 count = 0 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
228 for value in returned_values: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
229 self.assert_(value['from'] == 'foo') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
230 self.assert_(int(value.get_payload()) < repetitions) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
231 count += 1 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
232 self.assert_(len(values) == count) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
233 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
234 def test_has_key(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
235 # Check existence of keys using has_key() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
236 self._test_has_key_or_contains(self._box.has_key) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
237 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
238 def test_contains(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
239 # Check existence of keys using __contains__() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
240 self._test_has_key_or_contains(self._box.__contains__) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
241 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
242 def _test_has_key_or_contains(self, method): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
243 # (Used by test_has_key() and test_contains().) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
244 self.assert_(not method('foo')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
245 key0 = self._box.add(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
246 self.assert_(method(key0)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
247 self.assert_(not method('foo')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
248 key1 = self._box.add(self._template % 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
249 self.assert_(method(key1)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
250 self.assert_(method(key0)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
251 self.assert_(not method('foo')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
252 self._box.remove(key0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
253 self.assert_(not method(key0)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
254 self.assert_(method(key1)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
255 self.assert_(not method('foo')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
256 self._box.remove(key1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
257 self.assert_(not method(key1)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
258 self.assert_(not method(key0)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
259 self.assert_(not method('foo')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
260 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
261 def test_len(self, repetitions=10): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
262 # Get message count |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
263 keys = [] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
264 for i in xrange(repetitions): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
265 self.assert_(len(self._box) == i) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
266 keys.append(self._box.add(self._template % i)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
267 self.assert_(len(self._box) == i + 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
268 for i in xrange(repetitions): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
269 self.assert_(len(self._box) == repetitions - i) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
270 self._box.remove(keys[i]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
271 self.assert_(len(self._box) == repetitions - i - 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
272 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
273 def test_set_item(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
274 # Modify messages using __setitem__() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
275 key0 = self._box.add(self._template % 'original 0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
276 self.assert_(self._box.get_string(key0) == \ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
277 self._template % 'original 0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
278 key1 = self._box.add(self._template % 'original 1') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
279 self.assert_(self._box.get_string(key1) == \ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
280 self._template % 'original 1') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
281 self._box[key0] = self._template % 'changed 0' |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
282 self.assert_(self._box.get_string(key0) == \ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
283 self._template % 'changed 0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
284 self._box[key1] = self._template % 'changed 1' |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
285 self.assert_(self._box.get_string(key1) == \ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
286 self._template % 'changed 1') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
287 self._box[key0] = _sample_message |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
288 self._check_sample(self._box[key0]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
289 self._box[key1] = self._box[key0] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
290 self._check_sample(self._box[key1]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
291 self._box[key0] = self._template % 'original 0' |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
292 self.assert_(self._box.get_string(key0) == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
293 self._template % 'original 0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
294 self._check_sample(self._box[key1]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
295 self.assertRaises(KeyError, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
296 lambda: self._box.__setitem__('foo', 'bar')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
297 self.assertRaises(KeyError, lambda: self._box['foo']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
298 self.assert_(len(self._box) == 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
299 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
300 def test_clear(self, iterations=10): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
301 # Remove all messages using clear() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
302 keys = [] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
303 for i in xrange(iterations): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
304 self._box.add(self._template % i) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
305 for i, key in enumerate(keys): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
306 self.assert_(self._box.get_string(key) == self._template % i) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
307 self._box.clear() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
308 self.assert_(len(self._box) == 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
309 for i, key in enumerate(keys): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
310 self.assertRaises(KeyError, lambda: self._box.get_string(key)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
311 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
312 def test_pop(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
313 # Get and remove a message using pop() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
314 key0 = self._box.add(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
315 self.assert_(key0 in self._box) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
316 key1 = self._box.add(self._template % 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
317 self.assert_(key1 in self._box) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
318 self.assert_(self._box.pop(key0).get_payload() == '0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
319 self.assert_(key0 not in self._box) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
320 self.assert_(key1 in self._box) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
321 key2 = self._box.add(self._template % 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
322 self.assert_(key2 in self._box) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
323 self.assert_(self._box.pop(key2).get_payload() == '2') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
324 self.assert_(key2 not in self._box) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
325 self.assert_(key1 in self._box) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
326 self.assert_(self._box.pop(key1).get_payload() == '1') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
327 self.assert_(key1 not in self._box) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
328 self.assert_(len(self._box) == 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
329 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
330 def test_popitem(self, iterations=10): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
331 # Get and remove an arbitrary (key, message) using popitem() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
332 keys = [] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
333 for i in xrange(10): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
334 keys.append(self._box.add(self._template % i)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
335 seen = [] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
336 for i in xrange(10): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
337 key, msg = self._box.popitem() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
338 self.assert_(key in keys) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
339 self.assert_(key not in seen) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
340 seen.append(key) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
341 self.assert_(int(msg.get_payload()) == keys.index(key)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
342 self.assert_(len(self._box) == 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
343 for key in keys: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
344 self.assertRaises(KeyError, lambda: self._box[key]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
345 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
346 def test_update(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
347 # Modify multiple messages using update() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
348 key0 = self._box.add(self._template % 'original 0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
349 key1 = self._box.add(self._template % 'original 1') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
350 key2 = self._box.add(self._template % 'original 2') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
351 self._box.update({key0: self._template % 'changed 0', |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
352 key2: _sample_message}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
353 self.assert_(len(self._box) == 3) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
354 self.assert_(self._box.get_string(key0) == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
355 self._template % 'changed 0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
356 self.assert_(self._box.get_string(key1) == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
357 self._template % 'original 1') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
358 self._check_sample(self._box[key2]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
359 self._box.update([(key2, self._template % 'changed 2'), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
360 (key1, self._template % 'changed 1'), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
361 (key0, self._template % 'original 0')]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
362 self.assert_(len(self._box) == 3) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
363 self.assert_(self._box.get_string(key0) == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
364 self._template % 'original 0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
365 self.assert_(self._box.get_string(key1) == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
366 self._template % 'changed 1') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
367 self.assert_(self._box.get_string(key2) == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
368 self._template % 'changed 2') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
369 self.assertRaises(KeyError, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
370 lambda: self._box.update({'foo': 'bar', |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
371 key0: self._template % "changed 0"})) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
372 self.assert_(len(self._box) == 3) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
373 self.assert_(self._box.get_string(key0) == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
374 self._template % "changed 0") |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
375 self.assert_(self._box.get_string(key1) == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
376 self._template % "changed 1") |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
377 self.assert_(self._box.get_string(key2) == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
378 self._template % "changed 2") |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
379 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
380 def test_flush(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
381 # Write changes to disk |
|
46099
8f6ccd075a24
Ensure that the mailbox is closed to prevent problems on Windows with removing
Neal Norwitz <nnorwitz@gmail.com>
parents:
45140
diff
changeset
|
382 self._test_flush_or_close(self._box.flush, True) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
383 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
384 def test_lock_unlock(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
385 # Lock and unlock the mailbox |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
386 self.assert_(not os.path.exists(self._get_lock_path())) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
387 self._box.lock() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
388 self.assert_(os.path.exists(self._get_lock_path())) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
389 self._box.unlock() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
390 self.assert_(not os.path.exists(self._get_lock_path())) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
391 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
392 def test_close(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
393 # Close mailbox and flush changes to disk |
|
46099
8f6ccd075a24
Ensure that the mailbox is closed to prevent problems on Windows with removing
Neal Norwitz <nnorwitz@gmail.com>
parents:
45140
diff
changeset
|
394 self._test_flush_or_close(self._box.close, False) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
395 |
|
46099
8f6ccd075a24
Ensure that the mailbox is closed to prevent problems on Windows with removing
Neal Norwitz <nnorwitz@gmail.com>
parents:
45140
diff
changeset
|
396 def _test_flush_or_close(self, method, should_call_close): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
397 contents = [self._template % i for i in xrange(3)] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
398 self._box.add(contents[0]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
399 self._box.add(contents[1]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
400 self._box.add(contents[2]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
401 method() |
|
46099
8f6ccd075a24
Ensure that the mailbox is closed to prevent problems on Windows with removing
Neal Norwitz <nnorwitz@gmail.com>
parents:
45140
diff
changeset
|
402 if should_call_close: |
|
8f6ccd075a24
Ensure that the mailbox is closed to prevent problems on Windows with removing
Neal Norwitz <nnorwitz@gmail.com>
parents:
45140
diff
changeset
|
403 self._box.close() |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
404 self._box = self._factory(self._path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
405 keys = self._box.keys() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
406 self.assert_(len(keys) == 3) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
407 for key in keys: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
408 self.assert_(self._box.get_string(key) in contents) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
409 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
410 def test_dump_message(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
411 # Write message representations to disk |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
412 for input in (email.message_from_string(_sample_message), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
413 _sample_message, StringIO.StringIO(_sample_message)): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
414 output = StringIO.StringIO() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
415 self._box._dump_message(input, output) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
416 self.assert_(output.getvalue() == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
417 _sample_message.replace('\n', os.linesep)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
418 output = StringIO.StringIO() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
419 self.assertRaises(TypeError, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
420 lambda: self._box._dump_message(None, output)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
421 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
422 def _get_lock_path(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
423 # Return the path of the dot lock file. May be overridden. |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
424 return self._path + '.lock' |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
425 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
426 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
427 class TestMailboxSuperclass(TestBase): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
428 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
429 def test_notimplemented(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
430 # Test that all Mailbox methods raise NotImplementedException. |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
431 box = mailbox.Mailbox('path') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
432 self.assertRaises(NotImplementedError, lambda: box.add('')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
433 self.assertRaises(NotImplementedError, lambda: box.remove('')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
434 self.assertRaises(NotImplementedError, lambda: box.__delitem__('')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
435 self.assertRaises(NotImplementedError, lambda: box.discard('')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
436 self.assertRaises(NotImplementedError, lambda: box.__setitem__('', '')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
437 self.assertRaises(NotImplementedError, lambda: box.iterkeys()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
438 self.assertRaises(NotImplementedError, lambda: box.keys()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
439 self.assertRaises(NotImplementedError, lambda: box.itervalues().next()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
440 self.assertRaises(NotImplementedError, lambda: box.__iter__().next()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
441 self.assertRaises(NotImplementedError, lambda: box.values()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
442 self.assertRaises(NotImplementedError, lambda: box.iteritems().next()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
443 self.assertRaises(NotImplementedError, lambda: box.items()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
444 self.assertRaises(NotImplementedError, lambda: box.get('')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
445 self.assertRaises(NotImplementedError, lambda: box.__getitem__('')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
446 self.assertRaises(NotImplementedError, lambda: box.get_message('')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
447 self.assertRaises(NotImplementedError, lambda: box.get_string('')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
448 self.assertRaises(NotImplementedError, lambda: box.get_file('')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
449 self.assertRaises(NotImplementedError, lambda: box.has_key('')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
450 self.assertRaises(NotImplementedError, lambda: box.__contains__('')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
451 self.assertRaises(NotImplementedError, lambda: box.__len__()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
452 self.assertRaises(NotImplementedError, lambda: box.clear()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
453 self.assertRaises(NotImplementedError, lambda: box.pop('')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
454 self.assertRaises(NotImplementedError, lambda: box.popitem()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
455 self.assertRaises(NotImplementedError, lambda: box.update((('', ''),))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
456 self.assertRaises(NotImplementedError, lambda: box.flush()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
457 self.assertRaises(NotImplementedError, lambda: box.lock()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
458 self.assertRaises(NotImplementedError, lambda: box.unlock()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
459 self.assertRaises(NotImplementedError, lambda: box.close()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
460 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
461 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
462 class TestMaildir(TestMailbox): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
463 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
464 _factory = lambda self, path, factory=None: mailbox.Maildir(path, factory) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
465 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
466 def setUp(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
467 TestMailbox.setUp(self) |
|
39436
6ab4c39fd7a3
Fix the failures on cygwin (2006-08-10 fixed the actual locking issue).
Neal Norwitz <nnorwitz@gmail.com>
parents:
39151
diff
changeset
|
468 if os.name in ('nt', 'os2') or sys.platform == 'cygwin': |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
469 self._box.colon = '!' |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
470 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
471 def test_add_MM(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
472 # Add a MaildirMessage instance |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
473 msg = mailbox.MaildirMessage(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
474 msg.set_subdir('cur') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
475 msg.set_info('foo') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
476 key = self._box.add(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
477 self.assert_(os.path.exists(os.path.join(self._path, 'cur', '%s%sfoo' % |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
478 (key, self._box.colon)))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
479 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
480 def test_get_MM(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
481 # Get a MaildirMessage instance |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
482 msg = mailbox.MaildirMessage(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
483 msg.set_subdir('cur') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
484 msg.set_flags('RF') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
485 key = self._box.add(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
486 msg_returned = self._box.get_message(key) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
487 self.assert_(isinstance(msg_returned, mailbox.MaildirMessage)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
488 self.assert_(msg_returned.get_subdir() == 'cur') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
489 self.assert_(msg_returned.get_flags() == 'FR') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
490 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
491 def test_set_MM(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
492 # Set with a MaildirMessage instance |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
493 msg0 = mailbox.MaildirMessage(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
494 msg0.set_flags('TP') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
495 key = self._box.add(msg0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
496 msg_returned = self._box.get_message(key) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
497 self.assert_(msg_returned.get_subdir() == 'new') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
498 self.assert_(msg_returned.get_flags() == 'PT') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
499 msg1 = mailbox.MaildirMessage(self._template % 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
500 self._box[key] = msg1 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
501 msg_returned = self._box.get_message(key) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
502 self.assert_(msg_returned.get_subdir() == 'new') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
503 self.assert_(msg_returned.get_flags() == '') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
504 self.assert_(msg_returned.get_payload() == '1') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
505 msg2 = mailbox.MaildirMessage(self._template % 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
506 msg2.set_info('2,S') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
507 self._box[key] = msg2 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
508 self._box[key] = self._template % 3 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
509 msg_returned = self._box.get_message(key) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
510 self.assert_(msg_returned.get_subdir() == 'new') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
511 self.assert_(msg_returned.get_flags() == 'S') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
512 self.assert_(msg_returned.get_payload() == '3') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
513 |
|
44783
4a7afff52ea7
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42280
diff
changeset
|
514 def test_consistent_factory(self): |
|
4a7afff52ea7
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42280
diff
changeset
|
515 # Add a message. |
|
4a7afff52ea7
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42280
diff
changeset
|
516 msg = mailbox.MaildirMessage(self._template % 0) |
|
4a7afff52ea7
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42280
diff
changeset
|
517 msg.set_subdir('cur') |
|
4a7afff52ea7
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42280
diff
changeset
|
518 msg.set_flags('RF') |
|
4a7afff52ea7
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42280
diff
changeset
|
519 key = self._box.add(msg) |
|
4a7afff52ea7
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42280
diff
changeset
|
520 |
|
4a7afff52ea7
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42280
diff
changeset
|
521 # Create new mailbox with |
|
4a7afff52ea7
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42280
diff
changeset
|
522 class FakeMessage(mailbox.MaildirMessage): |
|
4a7afff52ea7
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42280
diff
changeset
|
523 pass |
|
4a7afff52ea7
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42280
diff
changeset
|
524 box = mailbox.Maildir(self._path, factory=FakeMessage) |
|
45140
a3fe7485f5c5
Correct test_mailbox on win32: since the test sets a custom 'colon' attribute
Amaury Forgeot d'Arc <amauryfa@gmail.com>
parents:
44783
diff
changeset
|
525 box.colon = self._box.colon |
|
44783
4a7afff52ea7
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42280
diff
changeset
|
526 msg2 = box.get_message(key) |
|
4a7afff52ea7
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42280
diff
changeset
|
527 self.assert_(isinstance(msg2, FakeMessage)) |
|
4a7afff52ea7
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42280
diff
changeset
|
528 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
529 def test_initialize_new(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
530 # Initialize a non-existent mailbox |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
531 self.tearDown() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
532 self._box = mailbox.Maildir(self._path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
533 self._check_basics(factory=rfc822.Message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
534 self._delete_recursively(self._path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
535 self._box = self._factory(self._path, factory=None) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
536 self._check_basics() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
537 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
538 def test_initialize_existing(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
539 # Initialize an existing mailbox |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
540 self.tearDown() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
541 for subdir in '', 'tmp', 'new', 'cur': |
|
39151
b58f7952e38a
Get mailbox module working on OS/2 EMX port.
Andrew MacIntyre <andymac@bullseye.apana.org.au>
parents:
38961
diff
changeset
|
542 os.mkdir(os.path.normpath(os.path.join(self._path, subdir))) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
543 self._box = mailbox.Maildir(self._path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
544 self._check_basics(factory=rfc822.Message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
545 self._box = mailbox.Maildir(self._path, factory=None) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
546 self._check_basics() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
547 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
548 def _check_basics(self, factory=None): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
549 # (Used by test_open_new() and test_open_existing().) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
550 self.assertEqual(self._box._path, os.path.abspath(self._path)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
551 self.assertEqual(self._box._factory, factory) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
552 for subdir in '', 'tmp', 'new', 'cur': |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
553 path = os.path.join(self._path, subdir) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
554 mode = os.stat(path)[stat.ST_MODE] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
555 self.assert_(stat.S_ISDIR(mode), "Not a directory: '%s'" % path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
556 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
557 def test_list_folders(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
558 # List folders |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
559 self._box.add_folder('one') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
560 self._box.add_folder('two') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
561 self._box.add_folder('three') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
562 self.assert_(len(self._box.list_folders()) == 3) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
563 self.assert_(set(self._box.list_folders()) == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
564 set(('one', 'two', 'three'))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
565 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
566 def test_get_folder(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
567 # Open folders |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
568 self._box.add_folder('foo.bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
569 folder0 = self._box.get_folder('foo.bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
570 folder0.add(self._template % 'bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
571 self.assert_(os.path.isdir(os.path.join(self._path, '.foo.bar'))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
572 folder1 = self._box.get_folder('foo.bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
573 self.assert_(folder1.get_string(folder1.keys()[0]) == \ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
574 self._template % 'bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
575 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
576 def test_add_and_remove_folders(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
577 # Delete folders |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
578 self._box.add_folder('one') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
579 self._box.add_folder('two') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
580 self.assert_(len(self._box.list_folders()) == 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
581 self.assert_(set(self._box.list_folders()) == set(('one', 'two'))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
582 self._box.remove_folder('one') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
583 self.assert_(len(self._box.list_folders()) == 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
584 self.assert_(set(self._box.list_folders()) == set(('two',))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
585 self._box.add_folder('three') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
586 self.assert_(len(self._box.list_folders()) == 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
587 self.assert_(set(self._box.list_folders()) == set(('two', 'three'))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
588 self._box.remove_folder('three') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
589 self.assert_(len(self._box.list_folders()) == 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
590 self.assert_(set(self._box.list_folders()) == set(('two',))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
591 self._box.remove_folder('two') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
592 self.assert_(len(self._box.list_folders()) == 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
593 self.assert_(self._box.list_folders() == []) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
594 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
595 def test_clean(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
596 # Remove old files from 'tmp' |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
597 foo_path = os.path.join(self._path, 'tmp', 'foo') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
598 bar_path = os.path.join(self._path, 'tmp', 'bar') |
|
38086
ac72900e1919
Hopefully this will fix the spurious failures of test_mailbox.py that I'm
Guido van Rossum <guido@python.org>
parents:
37917
diff
changeset
|
599 f = open(foo_path, 'w') |
|
ac72900e1919
Hopefully this will fix the spurious failures of test_mailbox.py that I'm
Guido van Rossum <guido@python.org>
parents:
37917
diff
changeset
|
600 f.write("@") |
|
ac72900e1919
Hopefully this will fix the spurious failures of test_mailbox.py that I'm
Guido van Rossum <guido@python.org>
parents:
37917
diff
changeset
|
601 f.close() |
|
ac72900e1919
Hopefully this will fix the spurious failures of test_mailbox.py that I'm
Guido van Rossum <guido@python.org>
parents:
37917
diff
changeset
|
602 f = open(bar_path, 'w') |
|
ac72900e1919
Hopefully this will fix the spurious failures of test_mailbox.py that I'm
Guido van Rossum <guido@python.org>
parents:
37917
diff
changeset
|
603 f.write("@") |
|
ac72900e1919
Hopefully this will fix the spurious failures of test_mailbox.py that I'm
Guido van Rossum <guido@python.org>
parents:
37917
diff
changeset
|
604 f.close() |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
605 self._box.clean() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
606 self.assert_(os.path.exists(foo_path)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
607 self.assert_(os.path.exists(bar_path)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
608 foo_stat = os.stat(foo_path) |
|
38086
ac72900e1919
Hopefully this will fix the spurious failures of test_mailbox.py that I'm
Guido van Rossum <guido@python.org>
parents:
37917
diff
changeset
|
609 os.utime(foo_path, (time.time() - 129600 - 2, |
|
ac72900e1919
Hopefully this will fix the spurious failures of test_mailbox.py that I'm
Guido van Rossum <guido@python.org>
parents:
37917
diff
changeset
|
610 foo_stat.st_mtime)) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
611 self._box.clean() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
612 self.assert_(not os.path.exists(foo_path)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
613 self.assert_(os.path.exists(bar_path)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
614 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
615 def test_create_tmp(self, repetitions=10): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
616 # Create files in tmp directory |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
617 hostname = socket.gethostname() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
618 if '/' in hostname: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
619 hostname = hostname.replace('/', r'\057') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
620 if ':' in hostname: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
621 hostname = hostname.replace(':', r'\072') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
622 pid = os.getpid() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
623 pattern = re.compile(r"(?P<time>\d+)\.M(?P<M>\d{1,6})P(?P<P>\d+)" |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
624 r"Q(?P<Q>\d+)\.(?P<host>[^:/]+)") |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
625 previous_groups = None |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
626 for x in xrange(repetitions): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
627 tmp_file = self._box._create_tmp() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
628 head, tail = os.path.split(tmp_file.name) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
629 self.assertEqual(head, os.path.abspath(os.path.join(self._path, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
630 "tmp")), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
631 "File in wrong location: '%s'" % head) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
632 match = pattern.match(tail) |
|
46197
01a7e66525c2
#2503 make singletons compared with "is" not == or !=
Benjamin Peterson <benjamin@python.org>
parents:
46099
diff
changeset
|
633 self.assert_(match is not None, "Invalid file name: '%s'" % tail) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
634 groups = match.groups() |
|
46197
01a7e66525c2
#2503 make singletons compared with "is" not == or !=
Benjamin Peterson <benjamin@python.org>
parents:
46099
diff
changeset
|
635 if previous_groups is not None: |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
636 self.assert_(int(groups[0] >= previous_groups[0]), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
637 "Non-monotonic seconds: '%s' before '%s'" % |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
638 (previous_groups[0], groups[0])) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
639 self.assert_(int(groups[1] >= previous_groups[1]) or |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
640 groups[0] != groups[1], |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
641 "Non-monotonic milliseconds: '%s' before '%s'" % |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
642 (previous_groups[1], groups[1])) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
643 self.assert_(int(groups[2]) == pid, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
644 "Process ID mismatch: '%s' should be '%s'" % |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
645 (groups[2], pid)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
646 self.assert_(int(groups[3]) == int(previous_groups[3]) + 1, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
647 "Non-sequential counter: '%s' before '%s'" % |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
648 (previous_groups[3], groups[3])) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
649 self.assert_(groups[4] == hostname, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
650 "Host name mismatch: '%s' should be '%s'" % |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
651 (groups[4], hostname)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
652 previous_groups = groups |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
653 tmp_file.write(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
654 tmp_file.seek(0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
655 self.assert_(tmp_file.read() == _sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
656 tmp_file.close() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
657 file_count = len(os.listdir(os.path.join(self._path, "tmp"))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
658 self.assert_(file_count == repetitions, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
659 "Wrong file count: '%s' should be '%s'" % |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
660 (file_count, repetitions)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
661 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
662 def test_refresh(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
663 # Update the table of contents |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
664 self.assert_(self._box._toc == {}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
665 key0 = self._box.add(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
666 key1 = self._box.add(self._template % 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
667 self.assert_(self._box._toc == {}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
668 self._box._refresh() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
669 self.assert_(self._box._toc == {key0: os.path.join('new', key0), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
670 key1: os.path.join('new', key1)}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
671 key2 = self._box.add(self._template % 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
672 self.assert_(self._box._toc == {key0: os.path.join('new', key0), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
673 key1: os.path.join('new', key1)}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
674 self._box._refresh() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
675 self.assert_(self._box._toc == {key0: os.path.join('new', key0), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
676 key1: os.path.join('new', key1), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
677 key2: os.path.join('new', key2)}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
678 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
679 def test_lookup(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
680 # Look up message subpaths in the TOC |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
681 self.assertRaises(KeyError, lambda: self._box._lookup('foo')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
682 key0 = self._box.add(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
683 self.assert_(self._box._lookup(key0) == os.path.join('new', key0)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
684 os.remove(os.path.join(self._path, 'new', key0)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
685 self.assert_(self._box._toc == {key0: os.path.join('new', key0)}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
686 self.assertRaises(KeyError, lambda: self._box._lookup(key0)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
687 self.assert_(self._box._toc == {}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
688 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
689 def test_lock_unlock(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
690 # Lock and unlock the mailbox. For Maildir, this does nothing. |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
691 self._box.lock() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
692 self._box.unlock() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
693 |
|
40316
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
694 def test_folder (self): |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
695 # Test for bug #1569790: verify that folders returned by .get_folder() |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
696 # use the same factory function. |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
697 def dummy_factory (s): |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
698 return None |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
699 box = self._factory(self._path, factory=dummy_factory) |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
700 folder = box.add_folder('folder1') |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
701 self.assert_(folder._factory is dummy_factory) |
|
40732
5dae0d7f683a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
40689
diff
changeset
|
702 |
|
40316
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
703 folder1_alias = box.get_folder('folder1') |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
704 self.assert_(folder1_alias._factory is dummy_factory) |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
705 |
|
42280
8af07e11f197
Avoid exception if there's a stray directory inside a Maildir folder.
Andrew M. Kuchling <amk@amk.ca>
parents:
41245
diff
changeset
|
706 def test_directory_in_folder (self): |
|
8af07e11f197
Avoid exception if there's a stray directory inside a Maildir folder.
Andrew M. Kuchling <amk@amk.ca>
parents:
41245
diff
changeset
|
707 # Test that mailboxes still work if there's a stray extra directory |
|
8af07e11f197
Avoid exception if there's a stray directory inside a Maildir folder.
Andrew M. Kuchling <amk@amk.ca>
parents:
41245
diff
changeset
|
708 # in a folder. |
|
8af07e11f197
Avoid exception if there's a stray directory inside a Maildir folder.
Andrew M. Kuchling <amk@amk.ca>
parents:
41245
diff
changeset
|
709 for i in range(10): |
|
8af07e11f197
Avoid exception if there's a stray directory inside a Maildir folder.
Andrew M. Kuchling <amk@amk.ca>
parents:
41245
diff
changeset
|
710 self._box.add(mailbox.Message(_sample_message)) |
|
40732
5dae0d7f683a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
40689
diff
changeset
|
711 |
|
42280
8af07e11f197
Avoid exception if there's a stray directory inside a Maildir folder.
Andrew M. Kuchling <amk@amk.ca>
parents:
41245
diff
changeset
|
712 # Create a stray directory |
|
8af07e11f197
Avoid exception if there's a stray directory inside a Maildir folder.
Andrew M. Kuchling <amk@amk.ca>
parents:
41245
diff
changeset
|
713 os.mkdir(os.path.join(self._path, 'cur', 'stray-dir')) |
|
8af07e11f197
Avoid exception if there's a stray directory inside a Maildir folder.
Andrew M. Kuchling <amk@amk.ca>
parents:
41245
diff
changeset
|
714 |
|
8af07e11f197
Avoid exception if there's a stray directory inside a Maildir folder.
Andrew M. Kuchling <amk@amk.ca>
parents:
41245
diff
changeset
|
715 # Check that looping still works with the directory present. |
|
8af07e11f197
Avoid exception if there's a stray directory inside a Maildir folder.
Andrew M. Kuchling <amk@amk.ca>
parents:
41245
diff
changeset
|
716 for msg in self._box: |
|
8af07e11f197
Avoid exception if there's a stray directory inside a Maildir folder.
Andrew M. Kuchling <amk@amk.ca>
parents:
41245
diff
changeset
|
717 pass |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
718 |
|
48182
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
719 def test_file_permissions(self): |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
720 # Verify that message files are created without execute permissions |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
721 if not hasattr(os, "stat") or not hasattr(os, "umask"): |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
722 return |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
723 msg = mailbox.MaildirMessage(self._template % 0) |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
724 orig_umask = os.umask(0) |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
725 try: |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
726 key = self._box.add(msg) |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
727 finally: |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
728 os.umask(orig_umask) |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
729 path = os.path.join(self._path, self._box._lookup(key)) |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
730 mode = os.stat(path).st_mode |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
731 self.assert_(mode & 0111 == 0) |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
732 |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
733 def test_folder_file_perms(self): |
|
48162
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
734 # From bug #3228, we want to verify that the file created inside a Maildir |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
735 # subfolder isn't marked as executable. |
|
48182
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
736 if not hasattr(os, "stat") or not hasattr(os, "umask"): |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
737 return |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
738 |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
739 orig_umask = os.umask(0) |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
740 try: |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
741 subfolder = self._box.add_folder('subfolder') |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
742 finally: |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
743 os.umask(orig_umask) |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
744 |
|
48162
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
745 path = os.path.join(subfolder._path, 'maildirfolder') |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
746 st = os.stat(path) |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
747 perms = st.st_mode |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
748 self.assertFalse((perms & 0111)) # Execute bits should all be off. |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
749 |
|
53686
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
750 def test_reread(self): |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
751 # Wait for 2 seconds |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
752 time.sleep(2) |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
753 |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
754 # Initially, the mailbox has not been read and the time is null. |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
755 assert getattr(self._box, '_last_read', None) is None |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
756 |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
757 # Refresh mailbox; the times should now be set to something. |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
758 self._box._refresh() |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
759 assert getattr(self._box, '_last_read', None) is not None |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
760 |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
761 # Try calling _refresh() again; the modification times shouldn't have |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
762 # changed, so the mailbox should not be re-reading. Re-reading causes |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
763 # the ._toc attribute to be assigned a new dictionary object, so |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
764 # we'll check that the ._toc attribute isn't a different object. |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
765 orig_toc = self._box._toc |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
766 def refreshed(): |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
767 return self._box._toc is not orig_toc |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
768 |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
769 time.sleep(1) # Wait 1sec to ensure time.time()'s value changes |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
770 self._box._refresh() |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
771 assert not refreshed() |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
772 |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
773 # Now, write something into cur and remove it. This changes |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
774 # the mtime and should cause a re-read. |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
775 filename = os.path.join(self._path, 'cur', 'stray-file') |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
776 f = open(filename, 'w') |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
777 f.close() |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
778 os.unlink(filename) |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
779 self._box._refresh() |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
780 assert refreshed() |
|
48162
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
781 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
782 class _TestMboxMMDF(TestMailbox): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
783 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
784 def tearDown(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
785 self._box.close() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
786 self._delete_recursively(self._path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
787 for lock_remnant in glob.glob(self._path + '.*'): |
|
41245
45669c414db4
Try to be a little more resilient to errors. This might help the test
Neal Norwitz <nnorwitz@gmail.com>
parents:
41244
diff
changeset
|
788 test_support.unlink(lock_remnant) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
789 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
790 def test_add_from_string(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
791 # Add a string starting with 'From ' to the mailbox |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
792 key = self._box.add('From foo@bar blah\nFrom: foo\n\n0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
793 self.assert_(self._box[key].get_from() == 'foo@bar blah') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
794 self.assert_(self._box[key].get_payload() == '0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
795 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
796 def test_add_mbox_or_mmdf_message(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
797 # Add an mboxMessage or MMDFMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
798 for class_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
799 msg = class_('From foo@bar blah\nFrom: foo\n\n0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
800 key = self._box.add(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
801 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
802 def test_open_close_open(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
803 # Open and inspect previously-created mailbox |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
804 values = [self._template % i for i in xrange(3)] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
805 for value in values: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
806 self._box.add(value) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
807 self._box.close() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
808 mtime = os.path.getmtime(self._path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
809 self._box = self._factory(self._path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
810 self.assert_(len(self._box) == 3) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
811 for key in self._box.iterkeys(): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
812 self.assert_(self._box.get_string(key) in values) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
813 self._box.close() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
814 self.assert_(mtime == os.path.getmtime(self._path)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
815 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
816 def test_add_and_close(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
817 # Verifying that closing a mailbox doesn't change added items |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
818 self._box.add(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
819 for i in xrange(3): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
820 self._box.add(self._template % i) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
821 self._box.add(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
822 self._box._file.flush() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
823 self._box._file.seek(0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
824 contents = self._box._file.read() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
825 self._box.close() |
|
38087
b706b100c8fc
Use open() instead of file()
Andrew M. Kuchling <amk@amk.ca>
parents:
38086
diff
changeset
|
826 self.assert_(contents == open(self._path, 'rb').read()) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
827 self._box = self._factory(self._path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
828 |
|
38932
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
829 def test_lock_conflict(self): |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
830 # Fork off a subprocess that will lock the file for 2 seconds, |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
831 # unlock it, and then exit. |
|
38933
35cf0f87983e
Windows doesn't have os.fork(). I'll just disable this test for now
Andrew M. Kuchling <amk@amk.ca>
parents:
38932
diff
changeset
|
832 if not hasattr(os, 'fork'): |
|
35cf0f87983e
Windows doesn't have os.fork(). I'll just disable this test for now
Andrew M. Kuchling <amk@amk.ca>
parents:
38932
diff
changeset
|
833 return |
|
38932
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
834 pid = os.fork() |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
835 if pid == 0: |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
836 # In the child, lock the mailbox. |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
837 self._box.lock() |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
838 time.sleep(2) |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
839 self._box.unlock() |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
840 os._exit(0) |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
841 |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
842 # In the parent, sleep a bit to give the child time to acquire |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
843 # the lock. |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
844 time.sleep(0.5) |
|
39436
6ab4c39fd7a3
Fix the failures on cygwin (2006-08-10 fixed the actual locking issue).
Neal Norwitz <nnorwitz@gmail.com>
parents:
39151
diff
changeset
|
845 try: |
|
6ab4c39fd7a3
Fix the failures on cygwin (2006-08-10 fixed the actual locking issue).
Neal Norwitz <nnorwitz@gmail.com>
parents:
39151
diff
changeset
|
846 self.assertRaises(mailbox.ExternalClashError, |
|
6ab4c39fd7a3
Fix the failures on cygwin (2006-08-10 fixed the actual locking issue).
Neal Norwitz <nnorwitz@gmail.com>
parents:
39151
diff
changeset
|
847 self._box.lock) |
|
6ab4c39fd7a3
Fix the failures on cygwin (2006-08-10 fixed the actual locking issue).
Neal Norwitz <nnorwitz@gmail.com>
parents:
39151
diff
changeset
|
848 finally: |
|
6ab4c39fd7a3
Fix the failures on cygwin (2006-08-10 fixed the actual locking issue).
Neal Norwitz <nnorwitz@gmail.com>
parents:
39151
diff
changeset
|
849 # Wait for child to exit. Locking should now succeed. |
|
6ab4c39fd7a3
Fix the failures on cygwin (2006-08-10 fixed the actual locking issue).
Neal Norwitz <nnorwitz@gmail.com>
parents:
39151
diff
changeset
|
850 exited_pid, status = os.waitpid(pid, 0) |
|
38945
095546ddb2f1
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
38934
diff
changeset
|
851 |
|
38932
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
852 self._box.lock() |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
853 self._box.unlock() |
|
38945
095546ddb2f1
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
38934
diff
changeset
|
854 |
|
40202
770c718bc97e
[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
Andrew M. Kuchling <amk@amk.ca>
parents:
39436
diff
changeset
|
855 def test_relock(self): |
|
770c718bc97e
[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
Andrew M. Kuchling <amk@amk.ca>
parents:
39436
diff
changeset
|
856 # Test case for bug #1575506: the mailbox class was locking the |
|
770c718bc97e
[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
Andrew M. Kuchling <amk@amk.ca>
parents:
39436
diff
changeset
|
857 # wrong file object in its flush() method. |
|
770c718bc97e
[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
Andrew M. Kuchling <amk@amk.ca>
parents:
39436
diff
changeset
|
858 msg = "Subject: sub\n\nbody\n" |
|
770c718bc97e
[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
Andrew M. Kuchling <amk@amk.ca>
parents:
39436
diff
changeset
|
859 key1 = self._box.add(msg) |
|
770c718bc97e
[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
Andrew M. Kuchling <amk@amk.ca>
parents:
39436
diff
changeset
|
860 self._box.flush() |
|
770c718bc97e
[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
Andrew M. Kuchling <amk@amk.ca>
parents:
39436
diff
changeset
|
861 self._box.close() |
|
40284
ff678669aa6e
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
40202
diff
changeset
|
862 |
|
40202
770c718bc97e
[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
Andrew M. Kuchling <amk@amk.ca>
parents:
39436
diff
changeset
|
863 self._box = self._factory(self._path) |
|
770c718bc97e
[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
Andrew M. Kuchling <amk@amk.ca>
parents:
39436
diff
changeset
|
864 self._box.lock() |
|
770c718bc97e
[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
Andrew M. Kuchling <amk@amk.ca>
parents:
39436
diff
changeset
|
865 key2 = self._box.add(msg) |
|
770c718bc97e
[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
Andrew M. Kuchling <amk@amk.ca>
parents:
39436
diff
changeset
|
866 self._box.flush() |
|
770c718bc97e
[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
Andrew M. Kuchling <amk@amk.ca>
parents:
39436
diff
changeset
|
867 self.assert_(self._box._locked) |
|
770c718bc97e
[Bug #1575506] The _singlefileMailbox class was using the wrong file object in its flush() method, causing an error
Andrew M. Kuchling <amk@amk.ca>
parents:
39436
diff
changeset
|
868 self._box.close() |
|
40284
ff678669aa6e
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
40202
diff
changeset
|
869 |
|
ff678669aa6e
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
40202
diff
changeset
|
870 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
871 class TestMbox(_TestMboxMMDF): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
872 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
873 _factory = lambda self, path, factory=None: mailbox.mbox(path, factory) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
874 |
|
48162
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
875 def test_file_perms(self): |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
876 # From bug #3228, we want to verify that the mailbox file isn't executable, |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
877 # even if the umask is set to something that would leave executable bits set. |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
878 # We only run this test on platforms that support umask. |
|
48182
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
879 if hasattr(os, 'umask') and hasattr(os, 'stat'): |
|
48162
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
880 try: |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
881 old_umask = os.umask(0077) |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
882 self._box.close() |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
883 os.unlink(self._path) |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
884 self._box = mailbox.mbox(self._path, create=True) |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
885 self._box.add('') |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
886 self._box.close() |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
887 finally: |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
888 os.umask(old_umask) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
889 |
|
48182
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
890 st = os.stat(self._path) |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
891 perms = st.st_mode |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
892 self.assertFalse((perms & 0111)) # Execute bits should all be off. |
|
68df842d6330
Bug 3228: take a test from Niels Gustaebel's patch, and based on his patch, check for having os.stat available
Andrew M. Kuchling <amk@amk.ca>
parents:
48162
diff
changeset
|
893 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
894 class TestMMDF(_TestMboxMMDF): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
895 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
896 _factory = lambda self, path, factory=None: mailbox.MMDF(path, factory) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
897 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
898 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
899 class TestMH(TestMailbox): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
900 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
901 _factory = lambda self, path, factory=None: mailbox.MH(path, factory) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
902 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
903 def test_list_folders(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
904 # List folders |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
905 self._box.add_folder('one') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
906 self._box.add_folder('two') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
907 self._box.add_folder('three') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
908 self.assert_(len(self._box.list_folders()) == 3) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
909 self.assert_(set(self._box.list_folders()) == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
910 set(('one', 'two', 'three'))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
911 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
912 def test_get_folder(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
913 # Open folders |
|
40316
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
914 def dummy_factory (s): |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
915 return None |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
916 self._box = self._factory(self._path, dummy_factory) |
|
40732
5dae0d7f683a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
40689
diff
changeset
|
917 |
|
40316
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
918 new_folder = self._box.add_folder('foo.bar') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
919 folder0 = self._box.get_folder('foo.bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
920 folder0.add(self._template % 'bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
921 self.assert_(os.path.isdir(os.path.join(self._path, 'foo.bar'))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
922 folder1 = self._box.get_folder('foo.bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
923 self.assert_(folder1.get_string(folder1.keys()[0]) == \ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
924 self._template % 'bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
925 |
|
40316
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
926 # Test for bug #1569790: verify that folders returned by .get_folder() |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
927 # use the same factory function. |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
928 self.assert_(new_folder._factory is self._box._factory) |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
929 self.assert_(folder0._factory is self._box._factory) |
|
6d99762cd818
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40284
diff
changeset
|
930 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
931 def test_add_and_remove_folders(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
932 # Delete folders |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
933 self._box.add_folder('one') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
934 self._box.add_folder('two') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
935 self.assert_(len(self._box.list_folders()) == 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
936 self.assert_(set(self._box.list_folders()) == set(('one', 'two'))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
937 self._box.remove_folder('one') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
938 self.assert_(len(self._box.list_folders()) == 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
939 self.assert_(set(self._box.list_folders()) == set(('two',))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
940 self._box.add_folder('three') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
941 self.assert_(len(self._box.list_folders()) == 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
942 self.assert_(set(self._box.list_folders()) == set(('two', 'three'))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
943 self._box.remove_folder('three') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
944 self.assert_(len(self._box.list_folders()) == 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
945 self.assert_(set(self._box.list_folders()) == set(('two',))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
946 self._box.remove_folder('two') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
947 self.assert_(len(self._box.list_folders()) == 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
948 self.assert_(self._box.list_folders() == []) |
|
15298
85a509faccc7
Added test for regression on SourceForge bug #117490.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
949 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
950 def test_sequences(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
951 # Get and set sequences |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
952 self.assert_(self._box.get_sequences() == {}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
953 msg0 = mailbox.MHMessage(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
954 msg0.add_sequence('foo') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
955 key0 = self._box.add(msg0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
956 self.assert_(self._box.get_sequences() == {'foo':[key0]}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
957 msg1 = mailbox.MHMessage(self._template % 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
958 msg1.set_sequences(['bar', 'replied', 'foo']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
959 key1 = self._box.add(msg1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
960 self.assert_(self._box.get_sequences() == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
961 {'foo':[key0, key1], 'bar':[key1], 'replied':[key1]}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
962 msg0.set_sequences(['flagged']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
963 self._box[key0] = msg0 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
964 self.assert_(self._box.get_sequences() == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
965 {'foo':[key1], 'bar':[key1], 'replied':[key1], |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
966 'flagged':[key0]}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
967 self._box.remove(key1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
968 self.assert_(self._box.get_sequences() == {'flagged':[key0]}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
969 |
|
52732
a33bc8183e4c
Merged revisions 71046 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
48182
diff
changeset
|
970 def test_issue2625(self): |
|
a33bc8183e4c
Merged revisions 71046 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
48182
diff
changeset
|
971 msg0 = mailbox.MHMessage(self._template % 0) |
|
a33bc8183e4c
Merged revisions 71046 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
48182
diff
changeset
|
972 msg0.add_sequence('foo') |
|
a33bc8183e4c
Merged revisions 71046 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
48182
diff
changeset
|
973 key0 = self._box.add(msg0) |
|
a33bc8183e4c
Merged revisions 71046 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
48182
diff
changeset
|
974 refmsg0 = self._box.get_message(key0) |
|
a33bc8183e4c
Merged revisions 71046 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
48182
diff
changeset
|
975 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
976 def test_pack(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
977 # Pack the contents of the mailbox |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
978 msg0 = mailbox.MHMessage(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
979 msg1 = mailbox.MHMessage(self._template % 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
980 msg2 = mailbox.MHMessage(self._template % 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
981 msg3 = mailbox.MHMessage(self._template % 3) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
982 msg0.set_sequences(['foo', 'unseen']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
983 msg1.set_sequences(['foo']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
984 msg2.set_sequences(['foo', 'flagged']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
985 msg3.set_sequences(['foo', 'bar', 'replied']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
986 key0 = self._box.add(msg0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
987 key1 = self._box.add(msg1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
988 key2 = self._box.add(msg2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
989 key3 = self._box.add(msg3) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
990 self.assert_(self._box.get_sequences() == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
991 {'foo':[key0,key1,key2,key3], 'unseen':[key0], |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
992 'flagged':[key2], 'bar':[key3], 'replied':[key3]}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
993 self._box.remove(key2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
994 self.assert_(self._box.get_sequences() == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
995 {'foo':[key0,key1,key3], 'unseen':[key0], 'bar':[key3], |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
996 'replied':[key3]}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
997 self._box.pack() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
998 self.assert_(self._box.keys() == [1, 2, 3]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
999 key0 = key0 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1000 key1 = key0 + 1 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1001 key2 = key1 + 1 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1002 self.assert_(self._box.get_sequences() == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1003 {'foo':[1, 2, 3], 'unseen':[1], 'bar':[3], 'replied':[3]}) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1004 |
|
40348
7cee9434981a
Remove file-locking in MH.pack() method.
Andrew M. Kuchling <amk@amk.ca>
parents:
40316
diff
changeset
|
1005 # Test case for packing while holding the mailbox locked. |
|
7cee9434981a
Remove file-locking in MH.pack() method.
Andrew M. Kuchling <amk@amk.ca>
parents:
40316
diff
changeset
|
1006 key0 = self._box.add(msg1) |
|
7cee9434981a
Remove file-locking in MH.pack() method.
Andrew M. Kuchling <amk@amk.ca>
parents:
40316
diff
changeset
|
1007 key1 = self._box.add(msg1) |
|
7cee9434981a
Remove file-locking in MH.pack() method.
Andrew M. Kuchling <amk@amk.ca>
parents:
40316
diff
changeset
|
1008 key2 = self._box.add(msg1) |
|
7cee9434981a
Remove file-locking in MH.pack() method.
Andrew M. Kuchling <amk@amk.ca>
parents:
40316
diff
changeset
|
1009 key3 = self._box.add(msg1) |
|
7cee9434981a
Remove file-locking in MH.pack() method.
Andrew M. Kuchling <amk@amk.ca>
parents:
40316
diff
changeset
|
1010 |
|
7cee9434981a
Remove file-locking in MH.pack() method.
Andrew M. Kuchling <amk@amk.ca>
parents:
40316
diff
changeset
|
1011 self._box.remove(key0) |
|
7cee9434981a
Remove file-locking in MH.pack() method.
Andrew M. Kuchling <amk@amk.ca>
parents:
40316
diff
changeset
|
1012 self._box.remove(key2) |
|
7cee9434981a
Remove file-locking in MH.pack() method.
Andrew M. Kuchling <amk@amk.ca>
parents:
40316
diff
changeset
|
1013 self._box.lock() |
|
7cee9434981a
Remove file-locking in MH.pack() method.
Andrew M. Kuchling <amk@amk.ca>
parents:
40316
diff
changeset
|
1014 self._box.pack() |
|
7cee9434981a
Remove file-locking in MH.pack() method.
Andrew M. Kuchling <amk@amk.ca>
parents:
40316
diff
changeset
|
1015 self._box.unlock() |
|
7cee9434981a
Remove file-locking in MH.pack() method.
Andrew M. Kuchling <amk@amk.ca>
parents:
40316
diff
changeset
|
1016 self.assert_(self._box.get_sequences() == |
|
7cee9434981a
Remove file-locking in MH.pack() method.
Andrew M. Kuchling <amk@amk.ca>
parents:
40316
diff
changeset
|
1017 {'foo':[1, 2, 3, 4, 5], |
|
7cee9434981a
Remove file-locking in MH.pack() method.
Andrew M. Kuchling <amk@amk.ca>
parents:
40316
diff
changeset
|
1018 'unseen':[1], 'bar':[3], 'replied':[3]}) |
|
40732
5dae0d7f683a
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
40689
diff
changeset
|
1019 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1020 def _get_lock_path(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1021 return os.path.join(self._path, '.mh_sequences.lock') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1022 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1023 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1024 class TestBabyl(TestMailbox): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1025 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1026 _factory = lambda self, path, factory=None: mailbox.Babyl(path, factory) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1027 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1028 def tearDown(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1029 self._box.close() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1030 self._delete_recursively(self._path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1031 for lock_remnant in glob.glob(self._path + '.*'): |
|
41245
45669c414db4
Try to be a little more resilient to errors. This might help the test
Neal Norwitz <nnorwitz@gmail.com>
parents:
41244
diff
changeset
|
1032 test_support.unlink(lock_remnant) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1033 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1034 def test_labels(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1035 # Get labels from the mailbox |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1036 self.assert_(self._box.get_labels() == []) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1037 msg0 = mailbox.BabylMessage(self._template % 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1038 msg0.add_label('foo') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1039 key0 = self._box.add(msg0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1040 self.assert_(self._box.get_labels() == ['foo']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1041 msg1 = mailbox.BabylMessage(self._template % 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1042 msg1.set_labels(['bar', 'answered', 'foo']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1043 key1 = self._box.add(msg1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1044 self.assert_(set(self._box.get_labels()) == set(['foo', 'bar'])) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1045 msg0.set_labels(['blah', 'filed']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1046 self._box[key0] = msg0 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1047 self.assert_(set(self._box.get_labels()) == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1048 set(['foo', 'bar', 'blah'])) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1049 self._box.remove(key1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1050 self.assert_(set(self._box.get_labels()) == set(['blah'])) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1051 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1052 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1053 class TestMessage(TestBase): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1054 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1055 _factory = mailbox.Message # Overridden by subclasses to reuse tests |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1056 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1057 def setUp(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1058 self._path = test_support.TESTFN |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1059 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1060 def tearDown(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1061 self._delete_recursively(self._path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1062 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1063 def test_initialize_with_eMM(self): |
|
40689
b23711be2b3e
Use new email module names (#1637162, #1637159, #1637157).
Georg Brandl <georg@python.org>
parents:
40348
diff
changeset
|
1064 # Initialize based on email.message.Message instance |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1065 eMM = email.message_from_string(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1066 msg = self._factory(eMM) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1067 self._post_initialize_hook(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1068 self._check_sample(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1069 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1070 def test_initialize_with_string(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1071 # Initialize based on string |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1072 msg = self._factory(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1073 self._post_initialize_hook(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1074 self._check_sample(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1075 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1076 def test_initialize_with_file(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1077 # Initialize based on contents of file |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1078 f = open(self._path, 'w+') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1079 f.write(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1080 f.seek(0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1081 msg = self._factory(f) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1082 self._post_initialize_hook(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1083 self._check_sample(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1084 f.close() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1085 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1086 def test_initialize_with_nothing(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1087 # Initialize without arguments |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1088 msg = self._factory() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1089 self._post_initialize_hook(msg) |
|
40689
b23711be2b3e
Use new email module names (#1637162, #1637159, #1637157).
Georg Brandl <georg@python.org>
parents:
40348
diff
changeset
|
1090 self.assert_(isinstance(msg, email.message.Message)) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1091 self.assert_(isinstance(msg, mailbox.Message)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1092 self.assert_(isinstance(msg, self._factory)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1093 self.assert_(msg.keys() == []) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1094 self.assert_(not msg.is_multipart()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1095 self.assert_(msg.get_payload() == None) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1096 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1097 def test_initialize_incorrectly(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1098 # Initialize with invalid argument |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1099 self.assertRaises(TypeError, lambda: self._factory(object())) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1100 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1101 def test_become_message(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1102 # Take on the state of another message |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1103 eMM = email.message_from_string(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1104 msg = self._factory() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1105 msg._become_message(eMM) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1106 self._check_sample(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1107 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1108 def test_explain_to(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1109 # Copy self's format-specific data to other message formats. |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1110 # This test is superficial; better ones are in TestMessageConversion. |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1111 msg = self._factory() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1112 for class_ in (mailbox.Message, mailbox.MaildirMessage, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1113 mailbox.mboxMessage, mailbox.MHMessage, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1114 mailbox.BabylMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1115 other_msg = class_() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1116 msg._explain_to(other_msg) |
|
40689
b23711be2b3e
Use new email module names (#1637162, #1637159, #1637157).
Georg Brandl <georg@python.org>
parents:
40348
diff
changeset
|
1117 other_msg = email.message.Message() |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1118 self.assertRaises(TypeError, lambda: msg._explain_to(other_msg)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1119 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1120 def _post_initialize_hook(self, msg): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1121 # Overridden by subclasses to check extra things after initialization |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1122 pass |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1123 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1124 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1125 class TestMaildirMessage(TestMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1126 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1127 _factory = mailbox.MaildirMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1128 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1129 def _post_initialize_hook(self, msg): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1130 self.assert_(msg._subdir == 'new') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1131 self.assert_(msg._info == '') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1132 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1133 def test_subdir(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1134 # Use get_subdir() and set_subdir() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1135 msg = mailbox.MaildirMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1136 self.assert_(msg.get_subdir() == 'new') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1137 msg.set_subdir('cur') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1138 self.assert_(msg.get_subdir() == 'cur') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1139 msg.set_subdir('new') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1140 self.assert_(msg.get_subdir() == 'new') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1141 self.assertRaises(ValueError, lambda: msg.set_subdir('tmp')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1142 self.assert_(msg.get_subdir() == 'new') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1143 msg.set_subdir('new') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1144 self.assert_(msg.get_subdir() == 'new') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1145 self._check_sample(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1146 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1147 def test_flags(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1148 # Use get_flags(), set_flags(), add_flag(), remove_flag() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1149 msg = mailbox.MaildirMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1150 self.assert_(msg.get_flags() == '') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1151 self.assert_(msg.get_subdir() == 'new') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1152 msg.set_flags('F') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1153 self.assert_(msg.get_subdir() == 'new') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1154 self.assert_(msg.get_flags() == 'F') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1155 msg.set_flags('SDTP') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1156 self.assert_(msg.get_flags() == 'DPST') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1157 msg.add_flag('FT') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1158 self.assert_(msg.get_flags() == 'DFPST') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1159 msg.remove_flag('TDRP') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1160 self.assert_(msg.get_flags() == 'FS') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1161 self.assert_(msg.get_subdir() == 'new') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1162 self._check_sample(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1163 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1164 def test_date(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1165 # Use get_date() and set_date() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1166 msg = mailbox.MaildirMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1167 self.assert_(abs(msg.get_date() - time.time()) < 60) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1168 msg.set_date(0.0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1169 self.assert_(msg.get_date() == 0.0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1170 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1171 def test_info(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1172 # Use get_info() and set_info() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1173 msg = mailbox.MaildirMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1174 self.assert_(msg.get_info() == '') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1175 msg.set_info('1,foo=bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1176 self.assert_(msg.get_info() == '1,foo=bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1177 self.assertRaises(TypeError, lambda: msg.set_info(None)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1178 self._check_sample(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1179 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1180 def test_info_and_flags(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1181 # Test interaction of info and flag methods |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1182 msg = mailbox.MaildirMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1183 self.assert_(msg.get_info() == '') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1184 msg.set_flags('SF') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1185 self.assert_(msg.get_flags() == 'FS') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1186 self.assert_(msg.get_info() == '2,FS') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1187 msg.set_info('1,') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1188 self.assert_(msg.get_flags() == '') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1189 self.assert_(msg.get_info() == '1,') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1190 msg.remove_flag('RPT') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1191 self.assert_(msg.get_flags() == '') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1192 self.assert_(msg.get_info() == '1,') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1193 msg.add_flag('D') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1194 self.assert_(msg.get_flags() == 'D') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1195 self.assert_(msg.get_info() == '2,D') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1196 self._check_sample(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1197 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1198 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1199 class _TestMboxMMDFMessage(TestMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1200 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1201 _factory = mailbox._mboxMMDFMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1202 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1203 def _post_initialize_hook(self, msg): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1204 self._check_from(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1205 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1206 def test_initialize_with_unixfrom(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1207 # Initialize with a message that already has a _unixfrom attribute |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1208 msg = mailbox.Message(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1209 msg.set_unixfrom('From foo@bar blah') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1210 msg = mailbox.mboxMessage(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1211 self.assert_(msg.get_from() == 'foo@bar blah', msg.get_from()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1212 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1213 def test_from(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1214 # Get and set "From " line |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1215 msg = mailbox.mboxMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1216 self._check_from(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1217 msg.set_from('foo bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1218 self.assert_(msg.get_from() == 'foo bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1219 msg.set_from('foo@bar', True) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1220 self._check_from(msg, 'foo@bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1221 msg.set_from('blah@temp', time.localtime()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1222 self._check_from(msg, 'blah@temp') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1223 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1224 def test_flags(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1225 # Use get_flags(), set_flags(), add_flag(), remove_flag() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1226 msg = mailbox.mboxMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1227 self.assert_(msg.get_flags() == '') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1228 msg.set_flags('F') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1229 self.assert_(msg.get_flags() == 'F') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1230 msg.set_flags('XODR') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1231 self.assert_(msg.get_flags() == 'RODX') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1232 msg.add_flag('FA') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1233 self.assert_(msg.get_flags() == 'RODFAX') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1234 msg.remove_flag('FDXA') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1235 self.assert_(msg.get_flags() == 'RO') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1236 self._check_sample(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1237 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1238 def _check_from(self, msg, sender=None): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1239 # Check contents of "From " line |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1240 if sender is None: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1241 sender = "MAILER-DAEMON" |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1242 self.assert_(re.match(sender + r" \w{3} \w{3} [\d ]\d [\d ]\d:\d{2}:" |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1243 r"\d{2} \d{4}", msg.get_from()) is not None) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1244 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1245 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1246 class TestMboxMessage(_TestMboxMMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1247 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1248 _factory = mailbox.mboxMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1249 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1250 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1251 class TestMHMessage(TestMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1252 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1253 _factory = mailbox.MHMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1254 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1255 def _post_initialize_hook(self, msg): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1256 self.assert_(msg._sequences == []) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1257 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1258 def test_sequences(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1259 # Get, set, join, and leave sequences |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1260 msg = mailbox.MHMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1261 self.assert_(msg.get_sequences() == []) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1262 msg.set_sequences(['foobar']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1263 self.assert_(msg.get_sequences() == ['foobar']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1264 msg.set_sequences([]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1265 self.assert_(msg.get_sequences() == []) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1266 msg.add_sequence('unseen') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1267 self.assert_(msg.get_sequences() == ['unseen']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1268 msg.add_sequence('flagged') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1269 self.assert_(msg.get_sequences() == ['unseen', 'flagged']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1270 msg.add_sequence('flagged') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1271 self.assert_(msg.get_sequences() == ['unseen', 'flagged']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1272 msg.remove_sequence('unseen') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1273 self.assert_(msg.get_sequences() == ['flagged']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1274 msg.add_sequence('foobar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1275 self.assert_(msg.get_sequences() == ['flagged', 'foobar']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1276 msg.remove_sequence('replied') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1277 self.assert_(msg.get_sequences() == ['flagged', 'foobar']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1278 msg.set_sequences(['foobar', 'replied']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1279 self.assert_(msg.get_sequences() == ['foobar', 'replied']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1280 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1281 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1282 class TestBabylMessage(TestMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1283 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1284 _factory = mailbox.BabylMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1285 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1286 def _post_initialize_hook(self, msg): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1287 self.assert_(msg._labels == []) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1288 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1289 def test_labels(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1290 # Get, set, join, and leave labels |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1291 msg = mailbox.BabylMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1292 self.assert_(msg.get_labels() == []) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1293 msg.set_labels(['foobar']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1294 self.assert_(msg.get_labels() == ['foobar']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1295 msg.set_labels([]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1296 self.assert_(msg.get_labels() == []) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1297 msg.add_label('filed') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1298 self.assert_(msg.get_labels() == ['filed']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1299 msg.add_label('resent') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1300 self.assert_(msg.get_labels() == ['filed', 'resent']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1301 msg.add_label('resent') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1302 self.assert_(msg.get_labels() == ['filed', 'resent']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1303 msg.remove_label('filed') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1304 self.assert_(msg.get_labels() == ['resent']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1305 msg.add_label('foobar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1306 self.assert_(msg.get_labels() == ['resent', 'foobar']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1307 msg.remove_label('unseen') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1308 self.assert_(msg.get_labels() == ['resent', 'foobar']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1309 msg.set_labels(['foobar', 'answered']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1310 self.assert_(msg.get_labels() == ['foobar', 'answered']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1311 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1312 def test_visible(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1313 # Get, set, and update visible headers |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1314 msg = mailbox.BabylMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1315 visible = msg.get_visible() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1316 self.assert_(visible.keys() == []) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1317 self.assert_(visible.get_payload() is None) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1318 visible['User-Agent'] = 'FooBar 1.0' |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1319 visible['X-Whatever'] = 'Blah' |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1320 self.assert_(msg.get_visible().keys() == []) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1321 msg.set_visible(visible) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1322 visible = msg.get_visible() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1323 self.assert_(visible.keys() == ['User-Agent', 'X-Whatever']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1324 self.assert_(visible['User-Agent'] == 'FooBar 1.0') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1325 self.assert_(visible['X-Whatever'] == 'Blah') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1326 self.assert_(visible.get_payload() is None) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1327 msg.update_visible() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1328 self.assert_(visible.keys() == ['User-Agent', 'X-Whatever']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1329 self.assert_(visible.get_payload() is None) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1330 visible = msg.get_visible() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1331 self.assert_(visible.keys() == ['User-Agent', 'Date', 'From', 'To', |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1332 'Subject']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1333 for header in ('User-Agent', 'Date', 'From', 'To', 'Subject'): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1334 self.assert_(visible[header] == msg[header]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1335 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1336 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1337 class TestMMDFMessage(_TestMboxMMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1338 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1339 _factory = mailbox.MMDFMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1340 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1341 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1342 class TestMessageConversion(TestBase): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1343 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1344 def test_plain_to_x(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1345 # Convert Message to all formats |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1346 for class_ in (mailbox.Message, mailbox.MaildirMessage, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1347 mailbox.mboxMessage, mailbox.MHMessage, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1348 mailbox.BabylMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1349 msg_plain = mailbox.Message(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1350 msg = class_(msg_plain) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1351 self._check_sample(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1352 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1353 def test_x_to_plain(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1354 # Convert all formats to Message |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1355 for class_ in (mailbox.Message, mailbox.MaildirMessage, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1356 mailbox.mboxMessage, mailbox.MHMessage, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1357 mailbox.BabylMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1358 msg = class_(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1359 msg_plain = mailbox.Message(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1360 self._check_sample(msg_plain) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1361 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1362 def test_x_to_invalid(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1363 # Convert all formats to an invalid format |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1364 for class_ in (mailbox.Message, mailbox.MaildirMessage, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1365 mailbox.mboxMessage, mailbox.MHMessage, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1366 mailbox.BabylMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1367 self.assertRaises(TypeError, lambda: class_(False)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1368 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1369 def test_maildir_to_maildir(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1370 # Convert MaildirMessage to MaildirMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1371 msg_maildir = mailbox.MaildirMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1372 msg_maildir.set_flags('DFPRST') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1373 msg_maildir.set_subdir('cur') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1374 date = msg_maildir.get_date() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1375 msg = mailbox.MaildirMessage(msg_maildir) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1376 self._check_sample(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1377 self.assert_(msg.get_flags() == 'DFPRST') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1378 self.assert_(msg.get_subdir() == 'cur') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1379 self.assert_(msg.get_date() == date) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1380 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1381 def test_maildir_to_mboxmmdf(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1382 # Convert MaildirMessage to mboxmessage and MMDFMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1383 pairs = (('D', ''), ('F', 'F'), ('P', ''), ('R', 'A'), ('S', 'R'), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1384 ('T', 'D'), ('DFPRST', 'RDFA')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1385 for class_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1386 msg_maildir = mailbox.MaildirMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1387 msg_maildir.set_date(0.0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1388 for setting, result in pairs: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1389 msg_maildir.set_flags(setting) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1390 msg = class_(msg_maildir) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1391 self.assert_(msg.get_flags() == result) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1392 self.assert_(msg.get_from() == 'MAILER-DAEMON %s' % |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1393 time.asctime(time.gmtime(0.0))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1394 msg_maildir.set_subdir('cur') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1395 self.assert_(class_(msg_maildir).get_flags() == 'RODFA') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1396 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1397 def test_maildir_to_mh(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1398 # Convert MaildirMessage to MHMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1399 msg_maildir = mailbox.MaildirMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1400 pairs = (('D', ['unseen']), ('F', ['unseen', 'flagged']), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1401 ('P', ['unseen']), ('R', ['unseen', 'replied']), ('S', []), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1402 ('T', ['unseen']), ('DFPRST', ['replied', 'flagged'])) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1403 for setting, result in pairs: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1404 msg_maildir.set_flags(setting) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1405 self.assert_(mailbox.MHMessage(msg_maildir).get_sequences() == \ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1406 result) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1407 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1408 def test_maildir_to_babyl(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1409 # Convert MaildirMessage to Babyl |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1410 msg_maildir = mailbox.MaildirMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1411 pairs = (('D', ['unseen']), ('F', ['unseen']), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1412 ('P', ['unseen', 'forwarded']), ('R', ['unseen', 'answered']), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1413 ('S', []), ('T', ['unseen', 'deleted']), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1414 ('DFPRST', ['deleted', 'answered', 'forwarded'])) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1415 for setting, result in pairs: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1416 msg_maildir.set_flags(setting) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1417 self.assert_(mailbox.BabylMessage(msg_maildir).get_labels() == \ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1418 result) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1419 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1420 def test_mboxmmdf_to_maildir(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1421 # Convert mboxMessage and MMDFMessage to MaildirMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1422 for class_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1423 msg_mboxMMDF = class_(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1424 msg_mboxMMDF.set_from('foo@bar', time.gmtime(0.0)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1425 pairs = (('R', 'S'), ('O', ''), ('D', 'T'), ('F', 'F'), ('A', 'R'), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1426 ('RODFA', 'FRST')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1427 for setting, result in pairs: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1428 msg_mboxMMDF.set_flags(setting) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1429 msg = mailbox.MaildirMessage(msg_mboxMMDF) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1430 self.assert_(msg.get_flags() == result) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1431 self.assert_(msg.get_date() == 0.0, msg.get_date()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1432 msg_mboxMMDF.set_flags('O') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1433 self.assert_(mailbox.MaildirMessage(msg_mboxMMDF).get_subdir() == \ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1434 'cur') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1435 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1436 def test_mboxmmdf_to_mboxmmdf(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1437 # Convert mboxMessage and MMDFMessage to mboxMessage and MMDFMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1438 for class_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1439 msg_mboxMMDF = class_(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1440 msg_mboxMMDF.set_flags('RODFA') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1441 msg_mboxMMDF.set_from('foo@bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1442 for class2_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1443 msg2 = class2_(msg_mboxMMDF) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1444 self.assert_(msg2.get_flags() == 'RODFA') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1445 self.assert_(msg2.get_from() == 'foo@bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1446 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1447 def test_mboxmmdf_to_mh(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1448 # Convert mboxMessage and MMDFMessage to MHMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1449 for class_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1450 msg_mboxMMDF = class_(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1451 pairs = (('R', []), ('O', ['unseen']), ('D', ['unseen']), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1452 ('F', ['unseen', 'flagged']), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1453 ('A', ['unseen', 'replied']), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1454 ('RODFA', ['replied', 'flagged'])) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1455 for setting, result in pairs: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1456 msg_mboxMMDF.set_flags(setting) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1457 self.assert_(mailbox.MHMessage(msg_mboxMMDF).get_sequences() \ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1458 == result) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1459 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1460 def test_mboxmmdf_to_babyl(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1461 # Convert mboxMessage and MMDFMessage to BabylMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1462 for class_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1463 msg = class_(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1464 pairs = (('R', []), ('O', ['unseen']), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1465 ('D', ['unseen', 'deleted']), ('F', ['unseen']), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1466 ('A', ['unseen', 'answered']), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1467 ('RODFA', ['deleted', 'answered'])) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1468 for setting, result in pairs: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1469 msg.set_flags(setting) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1470 self.assert_(mailbox.BabylMessage(msg).get_labels() == result) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1471 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1472 def test_mh_to_maildir(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1473 # Convert MHMessage to MaildirMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1474 pairs = (('unseen', ''), ('replied', 'RS'), ('flagged', 'FS')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1475 for setting, result in pairs: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1476 msg = mailbox.MHMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1477 msg.add_sequence(setting) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1478 self.assert_(mailbox.MaildirMessage(msg).get_flags() == result) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1479 self.assert_(mailbox.MaildirMessage(msg).get_subdir() == 'cur') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1480 msg = mailbox.MHMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1481 msg.add_sequence('unseen') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1482 msg.add_sequence('replied') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1483 msg.add_sequence('flagged') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1484 self.assert_(mailbox.MaildirMessage(msg).get_flags() == 'FR') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1485 self.assert_(mailbox.MaildirMessage(msg).get_subdir() == 'cur') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1486 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1487 def test_mh_to_mboxmmdf(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1488 # Convert MHMessage to mboxMessage and MMDFMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1489 pairs = (('unseen', 'O'), ('replied', 'ROA'), ('flagged', 'ROF')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1490 for setting, result in pairs: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1491 msg = mailbox.MHMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1492 msg.add_sequence(setting) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1493 for class_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1494 self.assert_(class_(msg).get_flags() == result) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1495 msg = mailbox.MHMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1496 msg.add_sequence('unseen') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1497 msg.add_sequence('replied') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1498 msg.add_sequence('flagged') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1499 for class_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1500 self.assert_(class_(msg).get_flags() == 'OFA') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1501 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1502 def test_mh_to_mh(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1503 # Convert MHMessage to MHMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1504 msg = mailbox.MHMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1505 msg.add_sequence('unseen') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1506 msg.add_sequence('replied') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1507 msg.add_sequence('flagged') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1508 self.assert_(mailbox.MHMessage(msg).get_sequences() == \ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1509 ['unseen', 'replied', 'flagged']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1510 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1511 def test_mh_to_babyl(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1512 # Convert MHMessage to BabylMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1513 pairs = (('unseen', ['unseen']), ('replied', ['answered']), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1514 ('flagged', [])) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1515 for setting, result in pairs: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1516 msg = mailbox.MHMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1517 msg.add_sequence(setting) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1518 self.assert_(mailbox.BabylMessage(msg).get_labels() == result) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1519 msg = mailbox.MHMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1520 msg.add_sequence('unseen') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1521 msg.add_sequence('replied') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1522 msg.add_sequence('flagged') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1523 self.assert_(mailbox.BabylMessage(msg).get_labels() == \ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1524 ['unseen', 'answered']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1525 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1526 def test_babyl_to_maildir(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1527 # Convert BabylMessage to MaildirMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1528 pairs = (('unseen', ''), ('deleted', 'ST'), ('filed', 'S'), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1529 ('answered', 'RS'), ('forwarded', 'PS'), ('edited', 'S'), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1530 ('resent', 'PS')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1531 for setting, result in pairs: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1532 msg = mailbox.BabylMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1533 msg.add_label(setting) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1534 self.assert_(mailbox.MaildirMessage(msg).get_flags() == result) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1535 self.assert_(mailbox.MaildirMessage(msg).get_subdir() == 'cur') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1536 msg = mailbox.BabylMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1537 for label in ('unseen', 'deleted', 'filed', 'answered', 'forwarded', |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1538 'edited', 'resent'): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1539 msg.add_label(label) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1540 self.assert_(mailbox.MaildirMessage(msg).get_flags() == 'PRT') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1541 self.assert_(mailbox.MaildirMessage(msg).get_subdir() == 'cur') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1542 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1543 def test_babyl_to_mboxmmdf(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1544 # Convert BabylMessage to mboxMessage and MMDFMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1545 pairs = (('unseen', 'O'), ('deleted', 'ROD'), ('filed', 'RO'), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1546 ('answered', 'ROA'), ('forwarded', 'RO'), ('edited', 'RO'), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1547 ('resent', 'RO')) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1548 for setting, result in pairs: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1549 for class_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1550 msg = mailbox.BabylMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1551 msg.add_label(setting) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1552 self.assert_(class_(msg).get_flags() == result) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1553 msg = mailbox.BabylMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1554 for label in ('unseen', 'deleted', 'filed', 'answered', 'forwarded', |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1555 'edited', 'resent'): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1556 msg.add_label(label) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1557 for class_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1558 self.assert_(class_(msg).get_flags() == 'ODA') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1559 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1560 def test_babyl_to_mh(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1561 # Convert BabylMessage to MHMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1562 pairs = (('unseen', ['unseen']), ('deleted', []), ('filed', []), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1563 ('answered', ['replied']), ('forwarded', []), ('edited', []), |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1564 ('resent', [])) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1565 for setting, result in pairs: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1566 msg = mailbox.BabylMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1567 msg.add_label(setting) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1568 self.assert_(mailbox.MHMessage(msg).get_sequences() == result) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1569 msg = mailbox.BabylMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1570 for label in ('unseen', 'deleted', 'filed', 'answered', 'forwarded', |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1571 'edited', 'resent'): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1572 msg.add_label(label) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1573 self.assert_(mailbox.MHMessage(msg).get_sequences() == \ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1574 ['unseen', 'replied']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1575 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1576 def test_babyl_to_babyl(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1577 # Convert BabylMessage to BabylMessage |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1578 msg = mailbox.BabylMessage(_sample_message) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1579 msg.update_visible() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1580 for label in ('unseen', 'deleted', 'filed', 'answered', 'forwarded', |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1581 'edited', 'resent'): |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1582 msg.add_label(label) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1583 msg2 = mailbox.BabylMessage(msg) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1584 self.assert_(msg2.get_labels() == ['unseen', 'deleted', 'filed', |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1585 'answered', 'forwarded', 'edited', |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1586 'resent']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1587 self.assert_(msg.get_visible().keys() == msg2.get_visible().keys()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1588 for key in msg.get_visible().keys(): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1589 self.assert_(msg.get_visible()[key] == msg2.get_visible()[key]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1590 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1591 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1592 class TestProxyFileBase(TestBase): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1593 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1594 def _test_read(self, proxy): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1595 # Read by byte |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1596 proxy.seek(0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1597 self.assert_(proxy.read() == 'bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1598 proxy.seek(1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1599 self.assert_(proxy.read() == 'ar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1600 proxy.seek(0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1601 self.assert_(proxy.read(2) == 'ba') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1602 proxy.seek(1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1603 self.assert_(proxy.read(-1) == 'ar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1604 proxy.seek(2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1605 self.assert_(proxy.read(1000) == 'r') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1606 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1607 def _test_readline(self, proxy): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1608 # Read by line |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1609 proxy.seek(0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1610 self.assert_(proxy.readline() == 'foo' + os.linesep) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1611 self.assert_(proxy.readline() == 'bar' + os.linesep) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1612 self.assert_(proxy.readline() == 'fred' + os.linesep) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1613 self.assert_(proxy.readline() == 'bob') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1614 proxy.seek(2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1615 self.assert_(proxy.readline() == 'o' + os.linesep) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1616 proxy.seek(6 + 2 * len(os.linesep)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1617 self.assert_(proxy.readline() == 'fred' + os.linesep) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1618 proxy.seek(6 + 2 * len(os.linesep)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1619 self.assert_(proxy.readline(2) == 'fr') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1620 self.assert_(proxy.readline(-10) == 'ed' + os.linesep) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1621 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1622 def _test_readlines(self, proxy): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1623 # Read multiple lines |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1624 proxy.seek(0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1625 self.assert_(proxy.readlines() == ['foo' + os.linesep, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1626 'bar' + os.linesep, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1627 'fred' + os.linesep, 'bob']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1628 proxy.seek(0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1629 self.assert_(proxy.readlines(2) == ['foo' + os.linesep]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1630 proxy.seek(3 + len(os.linesep)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1631 self.assert_(proxy.readlines(4 + len(os.linesep)) == |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1632 ['bar' + os.linesep, 'fred' + os.linesep]) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1633 proxy.seek(3) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1634 self.assert_(proxy.readlines(1000) == [os.linesep, 'bar' + os.linesep, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1635 'fred' + os.linesep, 'bob']) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1636 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1637 def _test_iteration(self, proxy): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1638 # Iterate by line |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1639 proxy.seek(0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1640 iterator = iter(proxy) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1641 self.assert_(iterator.next() == 'foo' + os.linesep) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1642 self.assert_(iterator.next() == 'bar' + os.linesep) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1643 self.assert_(iterator.next() == 'fred' + os.linesep) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1644 self.assert_(iterator.next() == 'bob') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1645 self.assertRaises(StopIteration, lambda: iterator.next()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1646 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1647 def _test_seek_and_tell(self, proxy): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1648 # Seek and use tell to check position |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1649 proxy.seek(3) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1650 self.assert_(proxy.tell() == 3) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1651 self.assert_(proxy.read(len(os.linesep)) == os.linesep) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1652 proxy.seek(2, 1) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1653 self.assert_(proxy.read(1 + len(os.linesep)) == 'r' + os.linesep) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1654 proxy.seek(-3 - len(os.linesep), 2) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1655 self.assert_(proxy.read(3) == 'bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1656 proxy.seek(2, 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1657 self.assert_(proxy.read() == 'o' + os.linesep + 'bar' + os.linesep) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1658 proxy.seek(100) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1659 self.assert_(proxy.read() == '') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1660 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1661 def _test_close(self, proxy): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1662 # Close a file |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1663 proxy.close() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1664 self.assertRaises(AttributeError, lambda: proxy.close()) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1665 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1666 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1667 class TestProxyFile(TestProxyFileBase): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1668 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1669 def setUp(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1670 self._path = test_support.TESTFN |
|
38087
b706b100c8fc
Use open() instead of file()
Andrew M. Kuchling <amk@amk.ca>
parents:
38086
diff
changeset
|
1671 self._file = open(self._path, 'wb+') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1672 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1673 def tearDown(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1674 self._file.close() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1675 self._delete_recursively(self._path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1676 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1677 def test_initialize(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1678 # Initialize and check position |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1679 self._file.write('foo') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1680 pos = self._file.tell() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1681 proxy0 = mailbox._ProxyFile(self._file) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1682 self.assert_(proxy0.tell() == pos) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1683 self.assert_(self._file.tell() == pos) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1684 proxy1 = mailbox._ProxyFile(self._file, 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1685 self.assert_(proxy1.tell() == 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1686 self.assert_(self._file.tell() == pos) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1687 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1688 def test_read(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1689 self._file.write('bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1690 self._test_read(mailbox._ProxyFile(self._file)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1691 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1692 def test_readline(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1693 self._file.write('foo%sbar%sfred%sbob' % (os.linesep, os.linesep, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1694 os.linesep)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1695 self._test_readline(mailbox._ProxyFile(self._file)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1696 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1697 def test_readlines(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1698 self._file.write('foo%sbar%sfred%sbob' % (os.linesep, os.linesep, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1699 os.linesep)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1700 self._test_readlines(mailbox._ProxyFile(self._file)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1701 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1702 def test_iteration(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1703 self._file.write('foo%sbar%sfred%sbob' % (os.linesep, os.linesep, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1704 os.linesep)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1705 self._test_iteration(mailbox._ProxyFile(self._file)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1706 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1707 def test_seek_and_tell(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1708 self._file.write('foo%sbar%s' % (os.linesep, os.linesep)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1709 self._test_seek_and_tell(mailbox._ProxyFile(self._file)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1710 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1711 def test_close(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1712 self._file.write('foo%sbar%s' % (os.linesep, os.linesep)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1713 self._test_close(mailbox._ProxyFile(self._file)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1714 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1715 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1716 class TestPartialFile(TestProxyFileBase): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1717 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1718 def setUp(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1719 self._path = test_support.TESTFN |
|
38087
b706b100c8fc
Use open() instead of file()
Andrew M. Kuchling <amk@amk.ca>
parents:
38086
diff
changeset
|
1720 self._file = open(self._path, 'wb+') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1721 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1722 def tearDown(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1723 self._file.close() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1724 self._delete_recursively(self._path) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1725 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1726 def test_initialize(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1727 # Initialize and check position |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1728 self._file.write('foo' + os.linesep + 'bar') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1729 pos = self._file.tell() |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1730 proxy = mailbox._PartialFile(self._file, 2, 5) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1731 self.assert_(proxy.tell() == 0) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1732 self.assert_(self._file.tell() == pos) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1733 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1734 def test_read(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1735 self._file.write('***bar***') |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1736 self._test_read(mailbox._PartialFile(self._file, 3, 6)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1737 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1738 def test_readline(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1739 self._file.write('!!!!!foo%sbar%sfred%sbob!!!!!' % |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1740 (os.linesep, os.linesep, os.linesep)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1741 self._test_readline(mailbox._PartialFile(self._file, 5, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1742 18 + 3 * len(os.linesep))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1743 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1744 def test_readlines(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1745 self._file.write('foo%sbar%sfred%sbob?????' % |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1746 (os.linesep, os.linesep, os.linesep)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1747 self._test_readlines(mailbox._PartialFile(self._file, 0, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1748 13 + 3 * len(os.linesep))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1749 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1750 def test_iteration(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1751 self._file.write('____foo%sbar%sfred%sbob####' % |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1752 (os.linesep, os.linesep, os.linesep)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1753 self._test_iteration(mailbox._PartialFile(self._file, 4, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1754 17 + 3 * len(os.linesep))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1755 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1756 def test_seek_and_tell(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1757 self._file.write('(((foo%sbar%s$$$' % (os.linesep, os.linesep)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1758 self._test_seek_and_tell(mailbox._PartialFile(self._file, 3, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1759 9 + 2 * len(os.linesep))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1760 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1761 def test_close(self): |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1762 self._file.write('&foo%sbar%s^' % (os.linesep, os.linesep)) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1763 self._test_close(mailbox._PartialFile(self._file, 1, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1764 6 + 3 * len(os.linesep))) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1765 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1766 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1767 ## Start: tests from the original module (for backward compatibility). |
|
17375
0c87ac674ce1
Some other tests, when failing, don't always remove their TESTFN file.
Guido van Rossum <guido@python.org>
parents:
16936
diff
changeset
|
1768 |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1769 FROM_ = "From some.body@dummy.domain Sat Jul 24 13:43:35 2004\n" |
|
17885
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1770 DUMMY_MESSAGE = """\ |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1771 From: some.body@dummy.domain |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1772 To: me@my.domain |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1773 Subject: Simple Test |
|
17885
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1774 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1775 This is a dummy message. |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1776 """ |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1777 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1778 class MaildirTestCase(unittest.TestCase): |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1779 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1780 def setUp(self): |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1781 # create a new maildir mailbox to work with: |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1782 self._dir = test_support.TESTFN |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1783 os.mkdir(self._dir) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1784 os.mkdir(os.path.join(self._dir, "cur")) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1785 os.mkdir(os.path.join(self._dir, "tmp")) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1786 os.mkdir(os.path.join(self._dir, "new")) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1787 self._counter = 1 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1788 self._msgfiles = [] |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1789 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1790 def tearDown(self): |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1791 map(os.unlink, self._msgfiles) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1792 os.rmdir(os.path.join(self._dir, "cur")) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1793 os.rmdir(os.path.join(self._dir, "tmp")) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1794 os.rmdir(os.path.join(self._dir, "new")) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1795 os.rmdir(self._dir) |
|
15298
85a509faccc7
Added test for regression on SourceForge bug #117490.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
1796 |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1797 def createMessage(self, dir, mbox=False): |
|
18165
0bad42e56320
The test used int(time.time()) to get a random number, but this doesn't work on the mac (where times are bigger than ints). Changed to int(time.time()%1000000).
Jack Jansen <jack.jansen@cwi.nl>
parents:
17908
diff
changeset
|
1798 t = int(time.time() % 1000000) |
|
17885
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1799 pid = self._counter |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1800 self._counter += 1 |
|
20654
edd9d0b3c47e
SF patch #474590 -- RISC OS support
Guido van Rossum <guido@python.org>
parents:
20013
diff
changeset
|
1801 filename = os.extsep.join((str(t), str(pid), "myhostname", "mydomain")) |
|
17885
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1802 tmpname = os.path.join(self._dir, "tmp", filename) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1803 newname = os.path.join(self._dir, dir, filename) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1804 fp = open(tmpname, "w") |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1805 self._msgfiles.append(tmpname) |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1806 if mbox: |
|
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1807 fp.write(FROM_) |
|
17885
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1808 fp.write(DUMMY_MESSAGE) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1809 fp.close() |
|
17908
d884235fe75c
create_message(): When os.link() doesn't exist, make a copy of the msg
Tim Peters <tim.peters@gmail.com>
parents:
17885
diff
changeset
|
1810 if hasattr(os, "link"): |
|
d884235fe75c
create_message(): When os.link() doesn't exist, make a copy of the msg
Tim Peters <tim.peters@gmail.com>
parents:
17885
diff
changeset
|
1811 os.link(tmpname, newname) |
|
d884235fe75c
create_message(): When os.link() doesn't exist, make a copy of the msg
Tim Peters <tim.peters@gmail.com>
parents:
17885
diff
changeset
|
1812 else: |
|
d884235fe75c
create_message(): When os.link() doesn't exist, make a copy of the msg
Tim Peters <tim.peters@gmail.com>
parents:
17885
diff
changeset
|
1813 fp = open(newname, "w") |
|
d884235fe75c
create_message(): When os.link() doesn't exist, make a copy of the msg
Tim Peters <tim.peters@gmail.com>
parents:
17885
diff
changeset
|
1814 fp.write(DUMMY_MESSAGE) |
|
d884235fe75c
create_message(): When os.link() doesn't exist, make a copy of the msg
Tim Peters <tim.peters@gmail.com>
parents:
17885
diff
changeset
|
1815 fp.close() |
|
17885
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1816 self._msgfiles.append(newname) |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1817 return tmpname |
|
17885
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1818 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1819 def test_empty_maildir(self): |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1820 """Test an empty maildir mailbox""" |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1821 # Test for regression on bug #117490: |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1822 # Make sure the boxes attribute actually gets set. |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1823 self.mbox = mailbox.Maildir(test_support.TESTFN) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1824 #self.assert_(hasattr(self.mbox, "boxes")) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1825 #self.assert_(len(self.mbox.boxes) == 0) |
|
17885
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1826 self.assert_(self.mbox.next() is None) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1827 self.assert_(self.mbox.next() is None) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1828 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1829 def test_nonempty_maildir_cur(self): |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1830 self.createMessage("cur") |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1831 self.mbox = mailbox.Maildir(test_support.TESTFN) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1832 #self.assert_(len(self.mbox.boxes) == 1) |
|
17885
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1833 self.assert_(self.mbox.next() is not None) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1834 self.assert_(self.mbox.next() is None) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1835 self.assert_(self.mbox.next() is None) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1836 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1837 def test_nonempty_maildir_new(self): |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1838 self.createMessage("new") |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1839 self.mbox = mailbox.Maildir(test_support.TESTFN) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1840 #self.assert_(len(self.mbox.boxes) == 1) |
|
17885
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1841 self.assert_(self.mbox.next() is not None) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1842 self.assert_(self.mbox.next() is None) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1843 self.assert_(self.mbox.next() is None) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1844 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1845 def test_nonempty_maildir_both(self): |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1846 self.createMessage("cur") |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1847 self.createMessage("new") |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1848 self.mbox = mailbox.Maildir(test_support.TESTFN) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1849 #self.assert_(len(self.mbox.boxes) == 2) |
|
17885
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1850 self.assert_(self.mbox.next() is not None) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1851 self.assert_(self.mbox.next() is not None) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1852 self.assert_(self.mbox.next() is None) |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1853 self.assert_(self.mbox.next() is None) |
|
15298
85a509faccc7
Added test for regression on SourceForge bug #117490.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
1854 |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1855 def test_unix_mbox(self): |
|
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1856 ### should be better! |
|
40689
b23711be2b3e
Use new email module names (#1637162, #1637159, #1637157).
Georg Brandl <georg@python.org>
parents:
40348
diff
changeset
|
1857 import email.parser |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1858 fname = self.createMessage("cur", True) |
|
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1859 n = 0 |
|
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1860 for msg in mailbox.PortableUnixMailbox(open(fname), |
|
40689
b23711be2b3e
Use new email module names (#1637162, #1637159, #1637157).
Georg Brandl <georg@python.org>
parents:
40348
diff
changeset
|
1861 email.parser.Parser().parse): |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1862 n += 1 |
|
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1863 self.assertEqual(msg["subject"], "Simple Test") |
|
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1864 self.assertEqual(len(str(msg)), len(FROM_)+len(DUMMY_MESSAGE)) |
|
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1865 self.assertEqual(n, 1) |
|
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1866 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1867 ## End: classes from the original module (for backward compatibility). |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1868 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1869 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1870 _sample_message = """\ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1871 Return-Path: <gkj@gregorykjohnson.com> |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1872 X-Original-To: gkj+person@localhost |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1873 Delivered-To: gkj+person@localhost |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1874 Received: from localhost (localhost [127.0.0.1]) |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1875 by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17 |
|
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1876 for <gkj+person@localhost>; Wed, 13 Jul 2005 17:23:16 -0400 (EDT) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1877 Delivered-To: gkj@sundance.gregorykjohnson.com |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1878 Received: from localhost [127.0.0.1] |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1879 by localhost with POP3 (fetchmail-6.2.5) |
|
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1880 for gkj+person@localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1881 Received: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228]) |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1882 by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746 |
|
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1883 for <gkj@gregorykjohnson.com>; Wed, 13 Jul 2005 17:23:11 -0400 (EDT) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1884 Received: by andy.gregorykjohnson.com (Postfix, from userid 1000) |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1885 id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1886 Date: Wed, 13 Jul 2005 17:23:11 -0400 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1887 From: "Gregory K. Johnson" <gkj@gregorykjohnson.com> |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1888 To: gkj@gregorykjohnson.com |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1889 Subject: Sample message |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1890 Message-ID: <20050713212311.GC4701@andy.gregorykjohnson.com> |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1891 Mime-Version: 1.0 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1892 Content-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+" |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1893 Content-Disposition: inline |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1894 User-Agent: Mutt/1.5.9i |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1895 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1896 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1897 --NMuMz9nt05w80d4+ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1898 Content-Type: text/plain; charset=us-ascii |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1899 Content-Disposition: inline |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1900 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1901 This is a sample message. |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1902 |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1903 -- |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1904 Gregory K. Johnson |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1905 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1906 --NMuMz9nt05w80d4+ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1907 Content-Type: application/octet-stream |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1908 Content-Disposition: attachment; filename="text.gz" |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1909 Content-Transfer-Encoding: base64 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1910 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1911 H4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1912 3FYlAAAA |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1913 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1914 --NMuMz9nt05w80d4+-- |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1915 """ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1916 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1917 _sample_headers = { |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1918 "Return-Path":"<gkj@gregorykjohnson.com>", |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1919 "X-Original-To":"gkj+person@localhost", |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1920 "Delivered-To":"gkj+person@localhost", |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1921 "Received":"""from localhost (localhost [127.0.0.1]) |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1922 by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17 |
|
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1923 for <gkj+person@localhost>; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)""", |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1924 "Delivered-To":"gkj@sundance.gregorykjohnson.com", |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1925 "Received":"""from localhost [127.0.0.1] |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1926 by localhost with POP3 (fetchmail-6.2.5) |
|
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1927 for gkj+person@localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)""", |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1928 "Received":"""from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228]) |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1929 by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746 |
|
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1930 for <gkj@gregorykjohnson.com>; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)""", |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1931 "Received":"""by andy.gregorykjohnson.com (Postfix, from userid 1000) |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1932 id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)""", |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1933 "Date":"Wed, 13 Jul 2005 17:23:11 -0400", |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1934 "From":""""Gregory K. Johnson" <gkj@gregorykjohnson.com>""", |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1935 "To":"gkj@gregorykjohnson.com", |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1936 "Subject":"Sample message", |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1937 "Mime-Version":"1.0", |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1938 "Content-Type":"""multipart/mixed; boundary="NMuMz9nt05w80d4+\"""", |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1939 "Content-Disposition":"inline", |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1940 "User-Agent": "Mutt/1.5.9i" } |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1941 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1942 _sample_payloads = ("""This is a sample message. |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1943 |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1944 -- |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1945 Gregory K. Johnson |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1946 """, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1947 """H4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1948 3FYlAAAA |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1949 """) |
|
15298
85a509faccc7
Added test for regression on SourceForge bug #117490.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
1950 |
|
17885
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1951 |
|
20013
e3184e46303b
Change the PyUnit-based tests to use the test_main() approach. This
Fred Drake <fdrake@acm.org>
parents:
18165
diff
changeset
|
1952 def test_main(): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1953 tests = (TestMailboxSuperclass, TestMaildir, TestMbox, TestMMDF, TestMH, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1954 TestBabyl, TestMessage, TestMaildirMessage, TestMboxMessage, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1955 TestMHMessage, TestBabylMessage, TestMMDFMessage, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1956 TestMessageConversion, TestProxyFile, TestPartialFile, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1957 MaildirTestCase) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1958 test_support.run_unittest(*tests) |
|
38961
0a83dc3529d1
Add new utility function, reap_children(), to test_support. This should
Neal Norwitz <nnorwitz@gmail.com>
parents:
38945
diff
changeset
|
1959 test_support.reap_children() |
|
20013
e3184e46303b
Change the PyUnit-based tests to use the test_main() approach. This
Fred Drake <fdrake@acm.org>
parents:
18165
diff
changeset
|
1960 |
|
e3184e46303b
Change the PyUnit-based tests to use the test_main() approach. This
Fred Drake <fdrake@acm.org>
parents:
18165
diff
changeset
|
1961 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1962 if __name__ == '__main__': |
|
20013
e3184e46303b
Change the PyUnit-based tests to use the test_main() approach. This
Fred Drake <fdrake@acm.org>
parents:
18165
diff
changeset
|
1963 test_main() |
