Mercurial > cpython-lru_cache-weakref
annotate Lib/test/test_mailbox.py @ 79675:c0a2294de787 2.7
Issue #16199: Backport 2to3 typo fix from 3.2.
| author | Chris Jerdonek <chris.jerdonek@gmail.com> |
|---|---|
| date | Thu, 11 Oct 2012 16:15:46 -0700 |
| parents | a87ab9b0c9e5 |
| children | 84cd07899baf |
| 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 re |
|
75460
1112c2f602b3
Closes #14158: We now track test_support.TESTFN cleanup, and test_mailbox uses shutil.rmtree for simpler code.
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74093
diff
changeset
|
9 import shutil |
|
37916
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 |
|
78584
ad8c9725c041
#11062: Fix adding a message from file to Babyl mailbox
Petri Lehtinen <petri@digip.org>
parents:
77850
diff
changeset
|
11 import tempfile |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
12 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
|
13 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
|
14 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
|
15 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
|
16 try: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
17 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
|
18 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
|
19 pass |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
20 |
|
63531
30086aa33123
Merged revisions 77841 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
52732
diff
changeset
|
21 # Silence Py3k warning |
|
30086aa33123
Merged revisions 77841 via svnmerge from
Ezio Melotti <ezio.melotti@gmail.com>
parents:
52732
diff
changeset
|
22 rfc822 = test_support.import_module('rfc822', deprecated=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
|
23 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
24 class TestBase: |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
25 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
26 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
|
27 # Inspect a mailbox.Message representation of the sample message |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
28 self.assertIsInstance(msg, email.message.Message) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
29 self.assertIsInstance(msg, mailbox.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
|
30 for key, value in _sample_headers.iteritems(): |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
31 self.assertIn(value, msg.get_all(key)) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
32 self.assertTrue(msg.is_multipart()) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
33 self.assertEqual(len(msg.get_payload()), len(_sample_payloads)) |
|
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 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
|
35 part = msg.get_payload(i) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
36 self.assertIsInstance(part, email.message.Message) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
37 self.assertNotIsInstance(part, mailbox.Message) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
38 self.assertEqual(part.get_payload(), payload) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
39 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
40 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
|
41 # 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
|
42 if os.path.isdir(target): |
|
75460
1112c2f602b3
Closes #14158: We now track test_support.TESTFN cleanup, and test_mailbox uses shutil.rmtree for simpler code.
Vinay Sajip <vinay_sajip@yahoo.co.uk>
parents:
74093
diff
changeset
|
43 shutil.rmtree(target) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
44 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
|
45 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
|
46 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
47 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
48 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
|
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 _factory = None # Overridden by subclasses to reuse tests |
|
79181
6451be0e374a
#15222: test_mailbox: End message template in a newline
Petri Lehtinen <petri@digip.org>
parents:
78826
diff
changeset
|
51 _template = 'From: foo\n\n%s\n' |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
52 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
53 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
|
54 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
|
55 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
|
56 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
|
57 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
58 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
|
59 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
|
60 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
|
61 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
62 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
|
63 # 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
|
64 keys = [] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
65 keys.append(self._box.add(self._template % 0)) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
66 self.assertEqual(len(self._box), 1) |
|
37916
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(mailbox.Message(_sample_message))) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
68 self.assertEqual(len(self._box), 2) |
|
37916
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(email.message_from_string(_sample_message))) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
70 self.assertEqual(len(self._box), 3) |
|
37916
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(StringIO.StringIO(_sample_message))) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
72 self.assertEqual(len(self._box), 4) |
|
37916
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(_sample_message)) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
74 self.assertEqual(len(self._box), 5) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
75 self.assertEqual(self._box.get_string(keys[0]), self._template % 0) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
76 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
|
77 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
|
78 |
|
78584
ad8c9725c041
#11062: Fix adding a message from file to Babyl mailbox
Petri Lehtinen <petri@digip.org>
parents:
77850
diff
changeset
|
79 def test_add_file(self): |
|
ad8c9725c041
#11062: Fix adding a message from file to Babyl mailbox
Petri Lehtinen <petri@digip.org>
parents:
77850
diff
changeset
|
80 with tempfile.TemporaryFile('w+') as f: |
|
ad8c9725c041
#11062: Fix adding a message from file to Babyl mailbox
Petri Lehtinen <petri@digip.org>
parents:
77850
diff
changeset
|
81 f.write(_sample_message) |
|
ad8c9725c041
#11062: Fix adding a message from file to Babyl mailbox
Petri Lehtinen <petri@digip.org>
parents:
77850
diff
changeset
|
82 f.seek(0) |
|
ad8c9725c041
#11062: Fix adding a message from file to Babyl mailbox
Petri Lehtinen <petri@digip.org>
parents:
77850
diff
changeset
|
83 key = self._box.add(f) |
|
ad8c9725c041
#11062: Fix adding a message from file to Babyl mailbox
Petri Lehtinen <petri@digip.org>
parents:
77850
diff
changeset
|
84 self.assertEqual(self._box.get_string(key).split('\n'), |
|
ad8c9725c041
#11062: Fix adding a message from file to Babyl mailbox
Petri Lehtinen <petri@digip.org>
parents:
77850
diff
changeset
|
85 _sample_message.split('\n')) |
|
ad8c9725c041
#11062: Fix adding a message from file to Babyl mailbox
Petri Lehtinen <petri@digip.org>
parents:
77850
diff
changeset
|
86 |
|
ad8c9725c041
#11062: Fix adding a message from file to Babyl mailbox
Petri Lehtinen <petri@digip.org>
parents:
77850
diff
changeset
|
87 def test_add_StringIO(self): |
|
ad8c9725c041
#11062: Fix adding a message from file to Babyl mailbox
Petri Lehtinen <petri@digip.org>
parents:
77850
diff
changeset
|
88 key = self._box.add(StringIO.StringIO(self._template % "0")) |
|
ad8c9725c041
#11062: Fix adding a message from file to Babyl mailbox
Petri Lehtinen <petri@digip.org>
parents:
77850
diff
changeset
|
89 self.assertEqual(self._box.get_string(key), self._template % "0") |
|
ad8c9725c041
#11062: Fix adding a message from file to Babyl mailbox
Petri Lehtinen <petri@digip.org>
parents:
77850
diff
changeset
|
90 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
91 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
|
92 # 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
|
93 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
|
94 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
95 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
|
96 # 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
|
97 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
|
98 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
99 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
|
100 # (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
|
101 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
|
102 key1 = self._box.add(self._template % 1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
103 self.assertEqual(len(self._box), 2) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
104 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
|
105 l = len(self._box) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
106 self.assertEqual(l, 1) |
|
37916
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.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
|
108 self.assertRaises(KeyError, lambda: method(key0)) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
109 self.assertEqual(self._box.get_string(key1), self._template % 1) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
110 key2 = self._box.add(self._template % 2) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
111 self.assertEqual(len(self._box), 2) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
112 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
|
113 l = len(self._box) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
114 self.assertEqual(l, 1) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
115 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
|
116 self.assertRaises(KeyError, lambda: method(key2)) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
117 self.assertEqual(self._box.get_string(key1), self._template % 1) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
118 method(key1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
119 self.assertEqual(len(self._box), 0) |
|
37916
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[key1]) |
|
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.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
|
122 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
123 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
|
124 # 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
|
125 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
|
126 key1 = self._box.add(self._template % 1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
127 self.assertEqual(len(self._box), 2) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
128 self._box.discard(key0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
129 self.assertEqual(len(self._box), 1) |
|
37916
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.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
|
131 self._box.discard(key0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
132 self.assertEqual(len(self._box), 1) |
|
37916
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.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
|
134 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
135 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
|
136 # 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
|
137 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
|
138 msg = self._box.get(key0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
139 self.assertEqual(msg['from'], 'foo') |
|
79181
6451be0e374a
#15222: test_mailbox: End message template in a newline
Petri Lehtinen <petri@digip.org>
parents:
78826
diff
changeset
|
140 self.assertEqual(msg.get_payload(), '0\n') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
141 self.assertIs(self._box.get('foo'), None) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
142 self.assertFalse(self._box.get('foo', 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
|
143 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
|
144 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
|
145 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
|
146 msg = self._box.get(key1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
147 self.assertEqual(msg['from'], 'foo') |
|
79192
a87ab9b0c9e5
#15222: Fix a test failure on Windows
Petri Lehtinen <petri@digip.org>
parents:
79182
diff
changeset
|
148 self.assertEqual(msg.fp.read(), '1' + os.linesep) |
|
37916
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_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
|
151 # 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
|
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 msg = self._box[key0] |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
154 self.assertEqual(msg['from'], 'foo') |
|
79181
6451be0e374a
#15222: test_mailbox: End message template in a newline
Petri Lehtinen <petri@digip.org>
parents:
78826
diff
changeset
|
155 self.assertEqual(msg.get_payload(), '0\n') |
|
37916
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.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
|
157 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
|
158 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
|
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_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
|
161 # 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
|
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 msg0 = self._box.get_message(key0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
165 self.assertIsInstance(msg0, mailbox.Message) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
166 self.assertEqual(msg0['from'], 'foo') |
|
79181
6451be0e374a
#15222: test_mailbox: End message template in a newline
Petri Lehtinen <petri@digip.org>
parents:
78826
diff
changeset
|
167 self.assertEqual(msg0.get_payload(), '0\n') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
168 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
|
169 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
170 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
|
171 # 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
|
172 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
|
173 key1 = self._box.add(_sample_message) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
174 self.assertEqual(self._box.get_string(key0), self._template % 0) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
175 self.assertEqual(self._box.get_string(key1), _sample_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
|
176 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
177 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
|
178 # 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
|
179 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
|
180 key1 = self._box.add(_sample_message) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
181 self.assertEqual(self._box.get_file(key0).read().replace(os.linesep, '\n'), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
182 self._template % 0) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
183 self.assertEqual(self._box.get_file(key1).read().replace(os.linesep, '\n'), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
184 _sample_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
|
185 |
|
70856
b89d193cbca5
#11700: proxy object close methods can now be called multiple times
R David Murray <rdmurray@bitdance.com>
parents:
69881
diff
changeset
|
186 def test_get_file_can_be_closed_twice(self): |
|
b89d193cbca5
#11700: proxy object close methods can now be called multiple times
R David Murray <rdmurray@bitdance.com>
parents:
69881
diff
changeset
|
187 # Issue 11700 |
|
b89d193cbca5
#11700: proxy object close methods can now be called multiple times
R David Murray <rdmurray@bitdance.com>
parents:
69881
diff
changeset
|
188 key = self._box.add(_sample_message) |
|
b89d193cbca5
#11700: proxy object close methods can now be called multiple times
R David Murray <rdmurray@bitdance.com>
parents:
69881
diff
changeset
|
189 f = self._box.get_file(key) |
|
b89d193cbca5
#11700: proxy object close methods can now be called multiple times
R David Murray <rdmurray@bitdance.com>
parents:
69881
diff
changeset
|
190 f.close() |
|
b89d193cbca5
#11700: proxy object close methods can now be called multiple times
R David Murray <rdmurray@bitdance.com>
parents:
69881
diff
changeset
|
191 f.close() |
|
b89d193cbca5
#11700: proxy object close methods can now be called multiple times
R David Murray <rdmurray@bitdance.com>
parents:
69881
diff
changeset
|
192 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
193 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
|
194 # 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
|
195 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
|
196 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
197 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
|
198 # 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
|
199 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
|
200 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
201 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
|
202 # 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
|
203 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
|
204 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
|
205 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
206 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
|
207 # 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
|
208 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
|
209 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
|
210 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
211 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
|
212 # 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
|
213 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
|
214 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
215 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
|
216 # 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
|
217 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
|
218 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
|
219 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
220 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
|
221 # 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
|
222 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
|
223 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
224 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
|
225 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
|
226 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
|
227 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
|
228 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
|
229 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
|
230 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
|
231 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
|
232 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
|
233 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
|
234 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
|
235 else: |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
236 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
|
237 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
|
238 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
|
239 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
|
240 if do_keys: |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
241 self.assertEqual(len(keys), len(returned_keys)) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
242 self.assertEqual(set(keys), set(returned_keys)) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
243 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
|
244 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
|
245 for value in returned_values: |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
246 self.assertEqual(value['from'], 'foo') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
247 self.assertTrue(int(value.get_payload()) < repetitions, |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
248 (value.get_payload(), repetitions)) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
249 count += 1 |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
250 self.assertEqual(len(values), count) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
251 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
252 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
|
253 # 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
|
254 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
|
255 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
256 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
|
257 # 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
|
258 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
|
259 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
260 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
|
261 # (Used by test_has_key() and test_contains().) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
262 self.assertFalse(method('foo')) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
263 key0 = self._box.add(self._template % 0) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
264 self.assertTrue(method(key0)) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
265 self.assertFalse(method('foo')) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
266 key1 = self._box.add(self._template % 1) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
267 self.assertTrue(method(key1)) |
|
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
268 self.assertTrue(method(key0)) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
269 self.assertFalse(method('foo')) |
|
37916
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(key0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
271 self.assertFalse(method(key0)) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
272 self.assertTrue(method(key1)) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
273 self.assertFalse(method('foo')) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
274 self._box.remove(key1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
275 self.assertFalse(method(key1)) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
276 self.assertFalse(method(key0)) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
277 self.assertFalse(method('foo')) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
278 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
279 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
|
280 # 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
|
281 keys = [] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
282 for i in xrange(repetitions): |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
283 self.assertEqual(len(self._box), i) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
284 keys.append(self._box.add(self._template % i)) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
285 self.assertEqual(len(self._box), i + 1) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
286 for i in xrange(repetitions): |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
287 self.assertEqual(len(self._box), repetitions - i) |
|
37916
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._box.remove(keys[i]) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
289 self.assertEqual(len(self._box), repetitions - i - 1) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
290 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
291 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
|
292 # 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
|
293 key0 = self._box.add(self._template % 'original 0') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
294 self.assertEqual(self._box.get_string(key0), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
295 self._template % 'original 0') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
296 key1 = self._box.add(self._template % 'original 1') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
297 self.assertEqual(self._box.get_string(key1), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
298 self._template % 'original 1') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
299 self._box[key0] = self._template % 'changed 0' |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
300 self.assertEqual(self._box.get_string(key0), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
301 self._template % 'changed 0') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
302 self._box[key1] = self._template % 'changed 1' |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
303 self.assertEqual(self._box.get_string(key1), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
304 self._template % 'changed 1') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
305 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
|
306 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
|
307 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
|
308 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
|
309 self._box[key0] = self._template % 'original 0' |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
310 self.assertEqual(self._box.get_string(key0), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
311 self._template % 'original 0') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
312 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
|
313 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
|
314 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
|
315 self.assertRaises(KeyError, lambda: self._box['foo']) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
316 self.assertEqual(len(self._box), 2) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
317 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
318 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
|
319 # 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
|
320 keys = [] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
321 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
|
322 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
|
323 for i, key in enumerate(keys): |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
324 self.assertEqual(self._box.get_string(key), self._template % i) |
|
37916
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._box.clear() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
326 self.assertEqual(len(self._box), 0) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
327 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
|
328 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
|
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_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
|
331 # 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
|
332 key0 = self._box.add(self._template % 0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
333 self.assertIn(key0, self._box) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
334 key1 = self._box.add(self._template % 1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
335 self.assertIn(key1, self._box) |
|
79181
6451be0e374a
#15222: test_mailbox: End message template in a newline
Petri Lehtinen <petri@digip.org>
parents:
78826
diff
changeset
|
336 self.assertEqual(self._box.pop(key0).get_payload(), '0\n') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
337 self.assertNotIn(key0, self._box) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
338 self.assertIn(key1, self._box) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
339 key2 = self._box.add(self._template % 2) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
340 self.assertIn(key2, self._box) |
|
79181
6451be0e374a
#15222: test_mailbox: End message template in a newline
Petri Lehtinen <petri@digip.org>
parents:
78826
diff
changeset
|
341 self.assertEqual(self._box.pop(key2).get_payload(), '2\n') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
342 self.assertNotIn(key2, self._box) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
343 self.assertIn(key1, self._box) |
|
79181
6451be0e374a
#15222: test_mailbox: End message template in a newline
Petri Lehtinen <petri@digip.org>
parents:
78826
diff
changeset
|
344 self.assertEqual(self._box.pop(key1).get_payload(), '1\n') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
345 self.assertNotIn(key1, self._box) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
346 self.assertEqual(len(self._box), 0) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
347 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
348 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
|
349 # 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
|
350 keys = [] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
351 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
|
352 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
|
353 seen = [] |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
354 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
|
355 key, msg = self._box.popitem() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
356 self.assertIn(key, keys) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
357 self.assertNotIn(key, seen) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
358 seen.append(key) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
359 self.assertEqual(int(msg.get_payload()), keys.index(key)) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
360 self.assertEqual(len(self._box), 0) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
361 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
|
362 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
|
363 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
364 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
|
365 # 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
|
366 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
|
367 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
|
368 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
|
369 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
|
370 key2: _sample_message}) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
371 self.assertEqual(len(self._box), 3) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
372 self.assertEqual(self._box.get_string(key0), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
373 self._template % 'changed 0') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
374 self.assertEqual(self._box.get_string(key1), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
375 self._template % 'original 1') |
|
37916
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._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
|
377 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
|
378 (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
|
379 (key0, self._template % 'original 0')]) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
380 self.assertEqual(len(self._box), 3) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
381 self.assertEqual(self._box.get_string(key0), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
382 self._template % 'original 0') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
383 self.assertEqual(self._box.get_string(key1), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
384 self._template % 'changed 1') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
385 self.assertEqual(self._box.get_string(key2), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
386 self._template % 'changed 2') |
|
37916
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.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
|
388 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
|
389 key0: self._template % "changed 0"})) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
390 self.assertEqual(len(self._box), 3) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
391 self.assertEqual(self._box.get_string(key0), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
392 self._template % "changed 0") |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
393 self.assertEqual(self._box.get_string(key1), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
394 self._template % "changed 1") |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
395 self.assertEqual(self._box.get_string(key2), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
396 self._template % "changed 2") |
|
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 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
398 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
|
399 # 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
|
400 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
|
401 |
|
77443
0add70dd3c43
#15036: Make a repeated changes and flushes work with single-file mailboxes
Petri Lehtinen <petri@digip.org>
parents:
76163
diff
changeset
|
402 def test_popitem_and_flush_twice(self): |
|
0add70dd3c43
#15036: Make a repeated changes and flushes work with single-file mailboxes
Petri Lehtinen <petri@digip.org>
parents:
76163
diff
changeset
|
403 # See #15036. |
|
0add70dd3c43
#15036: Make a repeated changes and flushes work with single-file mailboxes
Petri Lehtinen <petri@digip.org>
parents:
76163
diff
changeset
|
404 self._box.add(self._template % 0) |
|
0add70dd3c43
#15036: Make a repeated changes and flushes work with single-file mailboxes
Petri Lehtinen <petri@digip.org>
parents:
76163
diff
changeset
|
405 self._box.add(self._template % 1) |
|
0add70dd3c43
#15036: Make a repeated changes and flushes work with single-file mailboxes
Petri Lehtinen <petri@digip.org>
parents:
76163
diff
changeset
|
406 self._box.flush() |
|
0add70dd3c43
#15036: Make a repeated changes and flushes work with single-file mailboxes
Petri Lehtinen <petri@digip.org>
parents:
76163
diff
changeset
|
407 |
|
0add70dd3c43
#15036: Make a repeated changes and flushes work with single-file mailboxes
Petri Lehtinen <petri@digip.org>
parents:
76163
diff
changeset
|
408 self._box.popitem() |
|
0add70dd3c43
#15036: Make a repeated changes and flushes work with single-file mailboxes
Petri Lehtinen <petri@digip.org>
parents:
76163
diff
changeset
|
409 self._box.flush() |
|
0add70dd3c43
#15036: Make a repeated changes and flushes work with single-file mailboxes
Petri Lehtinen <petri@digip.org>
parents:
76163
diff
changeset
|
410 self._box.popitem() |
|
0add70dd3c43
#15036: Make a repeated changes and flushes work with single-file mailboxes
Petri Lehtinen <petri@digip.org>
parents:
76163
diff
changeset
|
411 self._box.flush() |
|
0add70dd3c43
#15036: Make a repeated changes and flushes work with single-file mailboxes
Petri Lehtinen <petri@digip.org>
parents:
76163
diff
changeset
|
412 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
413 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
|
414 # Lock and unlock the mailbox |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
415 self.assertFalse(os.path.exists(self._get_lock_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
|
416 self._box.lock() |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
417 self.assertTrue(os.path.exists(self._get_lock_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
|
418 self._box.unlock() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
419 self.assertFalse(os.path.exists(self._get_lock_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
|
420 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
421 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
|
422 # 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
|
423 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
|
424 |
|
46099
8f6ccd075a24
Ensure that the mailbox is closed to prevent problems on Windows with removing
Neal Norwitz <nnorwitz@gmail.com>
parents:
45140
diff
changeset
|
425 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
|
426 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
|
427 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
|
428 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
|
429 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
|
430 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
|
431 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
|
432 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
|
433 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
|
434 keys = self._box.keys() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
435 self.assertEqual(len(keys), 3) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
436 for key in keys: |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
437 self.assertIn(self._box.get_string(key), contents) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
438 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
439 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
|
440 # 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
|
441 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
|
442 _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
|
443 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
|
444 self._box._dump_message(input, output) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
445 self.assertEqual(output.getvalue(), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
446 _sample_message.replace('\n', os.linesep)) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
447 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
|
448 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
|
449 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
|
450 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
451 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
|
452 # 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
|
453 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
|
454 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
455 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
456 class TestMailboxSuperclass(TestBase, unittest.TestCase): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
457 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
458 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
|
459 # 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
|
460 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
|
461 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
|
462 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
|
463 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
|
464 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
|
465 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
|
466 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
|
467 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
|
468 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
|
469 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
|
470 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
|
471 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
|
472 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
|
473 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
|
474 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
|
475 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
|
476 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
|
477 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
|
478 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
|
479 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
|
480 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
|
481 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
|
482 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
|
483 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
|
484 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
|
485 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
|
486 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
|
487 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
|
488 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
|
489 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
490 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
491 class TestMaildir(TestMailbox, unittest.TestCase): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
492 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
493 _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
|
494 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
495 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
|
496 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
|
497 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
|
498 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
|
499 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
500 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
|
501 # 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
|
502 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
|
503 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
|
504 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
|
505 key = self._box.add(msg) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
506 self.assertTrue(os.path.exists(os.path.join(self._path, 'cur', '%s%sfoo' % |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
507 (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
|
508 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
509 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
|
510 # 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
|
511 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
|
512 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
|
513 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
|
514 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
|
515 msg_returned = self._box.get_message(key) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
516 self.assertIsInstance(msg_returned, mailbox.MaildirMessage) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
517 self.assertEqual(msg_returned.get_subdir(), 'cur') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
518 self.assertEqual(msg_returned.get_flags(), 'FR') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
519 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
520 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
|
521 # 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
|
522 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
|
523 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
|
524 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
|
525 msg_returned = self._box.get_message(key) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
526 self.assertEqual(msg_returned.get_subdir(), 'new') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
527 self.assertEqual(msg_returned.get_flags(), 'PT') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
528 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
|
529 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
|
530 msg_returned = self._box.get_message(key) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
531 self.assertEqual(msg_returned.get_subdir(), 'new') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
532 self.assertEqual(msg_returned.get_flags(), '') |
|
79181
6451be0e374a
#15222: test_mailbox: End message template in a newline
Petri Lehtinen <petri@digip.org>
parents:
78826
diff
changeset
|
533 self.assertEqual(msg_returned.get_payload(), '1\n') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
534 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
|
535 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
|
536 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
|
537 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
|
538 msg_returned = self._box.get_message(key) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
539 self.assertEqual(msg_returned.get_subdir(), 'new') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
540 self.assertEqual(msg_returned.get_flags(), 'S') |
|
79181
6451be0e374a
#15222: test_mailbox: End message template in a newline
Petri Lehtinen <petri@digip.org>
parents:
78826
diff
changeset
|
541 self.assertEqual(msg_returned.get_payload(), '3\n') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
542 |
|
44784
b3102006dd7e
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42281
diff
changeset
|
543 def test_consistent_factory(self): |
|
b3102006dd7e
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42281
diff
changeset
|
544 # Add a message. |
|
b3102006dd7e
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42281
diff
changeset
|
545 msg = mailbox.MaildirMessage(self._template % 0) |
|
b3102006dd7e
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42281
diff
changeset
|
546 msg.set_subdir('cur') |
|
b3102006dd7e
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42281
diff
changeset
|
547 msg.set_flags('RF') |
|
b3102006dd7e
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42281
diff
changeset
|
548 key = self._box.add(msg) |
|
b3102006dd7e
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42281
diff
changeset
|
549 |
|
b3102006dd7e
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42281
diff
changeset
|
550 # Create new mailbox with |
|
b3102006dd7e
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42281
diff
changeset
|
551 class FakeMessage(mailbox.MaildirMessage): |
|
b3102006dd7e
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42281
diff
changeset
|
552 pass |
|
b3102006dd7e
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42281
diff
changeset
|
553 box = mailbox.Maildir(self._path, factory=FakeMessage) |
|
44912
d8ab32820b17
Fix failing test_mailbox on Cygwin
Andrew M. Kuchling <amk@amk.ca>
parents:
44784
diff
changeset
|
554 box.colon = self._box.colon |
|
44784
b3102006dd7e
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42281
diff
changeset
|
555 msg2 = box.get_message(key) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
556 self.assertIsInstance(msg2, FakeMessage) |
|
44784
b3102006dd7e
Bug 1277: make Maildir use the user-provided factory instead of hard-wiring MaildirMessage.
Andrew M. Kuchling <amk@amk.ca>
parents:
42281
diff
changeset
|
557 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
558 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
|
559 # 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
|
560 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
|
561 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
|
562 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
|
563 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
|
564 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
|
565 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
|
566 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
567 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
|
568 # 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
|
569 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
|
570 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
|
571 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
|
572 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
|
573 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
|
574 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
|
575 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
|
576 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
577 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
|
578 # (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
|
579 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
|
580 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
|
581 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
|
582 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
|
583 mode = os.stat(path)[stat.ST_MODE] |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
584 self.assertTrue(stat.S_ISDIR(mode), "Not a directory: '%s'" % 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
|
585 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
586 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
|
587 # 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
|
588 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
|
589 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
|
590 self._box.add_folder('three') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
591 self.assertEqual(len(self._box.list_folders()), 3) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
592 self.assertEqual(set(self._box.list_folders()), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
593 set(('one', 'two', 'three'))) |
|
37916
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_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
|
596 # 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
|
597 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
|
598 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
|
599 folder0.add(self._template % 'bar') |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
600 self.assertTrue(os.path.isdir(os.path.join(self._path, '.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
|
601 folder1 = self._box.get_folder('foo.bar') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
602 self.assertEqual(folder1.get_string(folder1.keys()[0]), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
603 self._template % '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
|
604 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
605 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
|
606 # 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
|
607 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
|
608 self._box.add_folder('two') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
609 self.assertEqual(len(self._box.list_folders()), 2) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
610 self.assertEqual(set(self._box.list_folders()), set(('one', 'two'))) |
|
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.remove_folder('one') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
612 self.assertEqual(len(self._box.list_folders()), 1) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
613 self.assertEqual(set(self._box.list_folders()), set(('two',))) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
614 self._box.add_folder('three') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
615 self.assertEqual(len(self._box.list_folders()), 2) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
616 self.assertEqual(set(self._box.list_folders()), set(('two', 'three'))) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
617 self._box.remove_folder('three') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
618 self.assertEqual(len(self._box.list_folders()), 1) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
619 self.assertEqual(set(self._box.list_folders()), set(('two',))) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
620 self._box.remove_folder('two') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
621 self.assertEqual(len(self._box.list_folders()), 0) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
622 self.assertEqual(self._box.list_folders(), []) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
623 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
624 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
|
625 # 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
|
626 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
|
627 bar_path = os.path.join(self._path, 'tmp', 'bar') |
|
65282
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
628 with open(foo_path, 'w') as f: |
|
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
629 f.write("@") |
|
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
630 with open(bar_path, 'w') as f: |
|
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
631 f.write("@") |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
632 self._box.clean() |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
633 self.assertTrue(os.path.exists(foo_path)) |
|
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
634 self.assertTrue(os.path.exists(bar_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
|
635 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
|
636 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
|
637 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
|
638 self._box.clean() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
639 self.assertFalse(os.path.exists(foo_path)) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
640 self.assertTrue(os.path.exists(bar_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
|
641 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
642 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
|
643 # 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
|
644 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
|
645 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
|
646 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
|
647 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
|
648 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
|
649 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
|
650 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
|
651 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
|
652 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
|
653 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
|
654 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
|
655 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
|
656 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
|
657 "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 "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
|
659 match = pattern.match(tail) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
660 self.assertTrue(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
|
661 groups = match.groups() |
|
46197
01a7e66525c2
#2503 make singletons compared with "is" not == or !=
Benjamin Peterson <benjamin@python.org>
parents:
46099
diff
changeset
|
662 if previous_groups is not None: |
|
78826
2370e331241b
#15802: Fix test logic in TestMaildir.test_create_tmp
Petri Lehtinen <petri@digip.org>
parents:
78584
diff
changeset
|
663 self.assertGreaterEqual(int(groups[0]), int(previous_groups[0]), |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
664 "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
|
665 (previous_groups[0], groups[0])) |
|
78826
2370e331241b
#15802: Fix test logic in TestMaildir.test_create_tmp
Petri Lehtinen <petri@digip.org>
parents:
78584
diff
changeset
|
666 if int(groups[0]) == int(previous_groups[0]): |
|
2370e331241b
#15802: Fix test logic in TestMaildir.test_create_tmp
Petri Lehtinen <petri@digip.org>
parents:
78584
diff
changeset
|
667 self.assertGreaterEqual(int(groups[1]), int(previous_groups[1]), |
|
2370e331241b
#15802: Fix test logic in TestMaildir.test_create_tmp
Petri Lehtinen <petri@digip.org>
parents:
78584
diff
changeset
|
668 "Non-monotonic milliseconds: '%s' before '%s'" % |
|
2370e331241b
#15802: Fix test logic in TestMaildir.test_create_tmp
Petri Lehtinen <petri@digip.org>
parents:
78584
diff
changeset
|
669 (previous_groups[1], groups[1])) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
670 self.assertTrue(int(groups[2]) == pid, |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
671 "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
|
672 (groups[2], pid)) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
673 self.assertTrue(int(groups[3]) == int(previous_groups[3]) + 1, |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
674 "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
|
675 (previous_groups[3], groups[3])) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
676 self.assertTrue(groups[4] == hostname, |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
677 "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
|
678 (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
|
679 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
|
680 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
|
681 tmp_file.seek(0) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
682 self.assertTrue(tmp_file.read() == _sample_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
|
683 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
|
684 file_count = len(os.listdir(os.path.join(self._path, "tmp"))) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
685 self.assertTrue(file_count == repetitions, |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
686 "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
|
687 (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
|
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_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
|
690 # Update the table of contents |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
691 self.assertEqual(self._box._toc, {}) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
692 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
|
693 key1 = self._box.add(self._template % 1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
694 self.assertEqual(self._box._toc, {}) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
695 self._box._refresh() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
696 self.assertEqual(self._box._toc, {key0: os.path.join('new', key0), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
697 key1: os.path.join('new', key1)}) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
698 key2 = self._box.add(self._template % 2) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
699 self.assertEqual(self._box._toc, {key0: os.path.join('new', key0), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
700 key1: os.path.join('new', key1)}) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
701 self._box._refresh() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
702 self.assertEqual(self._box._toc, {key0: os.path.join('new', key0), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
703 key1: os.path.join('new', key1), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
704 key2: os.path.join('new', key2)}) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
705 |
|
73371
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
706 def test_refresh_after_safety_period(self): |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
707 # Issue #13254: Call _refresh after the "file system safety |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
708 # period" of 2 seconds has passed; _toc should still be |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
709 # updated because this is the first call to _refresh. |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
710 key0 = self._box.add(self._template % 0) |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
711 key1 = self._box.add(self._template % 1) |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
712 |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
713 self._box = self._factory(self._path) |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
714 self.assertEqual(self._box._toc, {}) |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
715 |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
716 # Emulate sleeping. Instead of sleeping for 2 seconds, use the |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
717 # skew factor to make _refresh think that the filesystem |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
718 # safety period has passed and re-reading the _toc is only |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
719 # required if mtimes differ. |
|
73524
d2b0751174f6
Update mailbox.Maildir tests
Petri Lehtinen <petri@digip.org>
parents:
73371
diff
changeset
|
720 self._box._skewfactor = -3 |
|
73371
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
721 |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
722 self._box._refresh() |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
723 self.assertEqual(sorted(self._box._toc.keys()), sorted([key0, key1])) |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
724 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
725 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
|
726 # 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
|
727 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
|
728 key0 = self._box.add(self._template % 0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
729 self.assertEqual(self._box._lookup(key0), os.path.join('new', key0)) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
730 os.remove(os.path.join(self._path, 'new', key0)) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
731 self.assertEqual(self._box._toc, {key0: os.path.join('new', key0)}) |
|
57049
51b9973f761e
This should finally fix #6896. Let's watch the buildbots.
Antoine Pitrou <solipsis@pitrou.net>
parents:
57019
diff
changeset
|
732 # Be sure that the TOC is read back from disk (see issue #6896 |
|
51b9973f761e
This should finally fix #6896. Let's watch the buildbots.
Antoine Pitrou <solipsis@pitrou.net>
parents:
57019
diff
changeset
|
733 # about bad mtime behaviour on some systems). |
|
51b9973f761e
This should finally fix #6896. Let's watch the buildbots.
Antoine Pitrou <solipsis@pitrou.net>
parents:
57019
diff
changeset
|
734 self._box.flush() |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
735 self.assertRaises(KeyError, lambda: self._box._lookup(key0)) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
736 self.assertEqual(self._box._toc, {}) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
737 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
738 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
|
739 # 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
|
740 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
|
741 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
|
742 |
|
40317
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
743 def test_folder (self): |
|
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
744 # Test for bug #1569790: verify that folders returned by .get_folder() |
|
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
745 # use the same factory function. |
|
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
746 def dummy_factory (s): |
|
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
747 return None |
|
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
748 box = self._factory(self._path, factory=dummy_factory) |
|
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
749 folder = box.add_folder('folder1') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
750 self.assertIs(folder._factory, dummy_factory) |
|
41533
7ded787e6311
Whitespace normalization
Neal Norwitz <nnorwitz@gmail.com>
parents:
40349
diff
changeset
|
751 |
|
40317
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
752 folder1_alias = box.get_folder('folder1') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
753 self.assertIs(folder1_alias._factory, dummy_factory) |
|
40317
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
754 |
| 42281 | 755 def test_directory_in_folder (self): |
| 756 # Test that mailboxes still work if there's a stray extra directory | |
| 757 # in a folder. | |
| 758 for i in range(10): | |
| 759 self._box.add(mailbox.Message(_sample_message)) | |
|
41533
7ded787e6311
Whitespace normalization
Neal Norwitz <nnorwitz@gmail.com>
parents:
40349
diff
changeset
|
760 |
| 42281 | 761 # Create a stray directory |
| 762 os.mkdir(os.path.join(self._path, 'cur', 'stray-dir')) | |
| 763 | |
| 764 # Check that looping still works with the directory present. | |
| 765 for msg in self._box: | |
| 766 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
|
767 |
|
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
|
768 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
|
769 # 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
|
770 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
|
771 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
|
772 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
|
773 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
|
774 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
|
775 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
|
776 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
|
777 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
|
778 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
|
779 mode = os.stat(path).st_mode |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
780 self.assertEqual(mode & 0111, 0) |
|
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
|
781 |
|
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
|
782 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
|
783 # 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
|
784 # 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
|
785 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
|
786 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
|
787 |
|
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
|
788 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
|
789 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
|
790 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
|
791 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
|
792 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
|
793 |
|
48162
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
794 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
|
795 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
|
796 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
|
797 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
|
798 |
|
53686
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
799 def test_reread(self): |
|
73371
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
800 # Do an initial unconditional refresh |
|
0b754ee12dbd
Fix Maildir initialization so that maildir contents are read correctly.
Petri Lehtinen <petri@digip.org>
parents:
70856
diff
changeset
|
801 self._box._refresh() |
|
53686
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
802 |
|
69881
a0147a1f1776
#11999: sync based on comparing mtimes, not mtime to system clock
R David Murray <rdmurray@bitdance.com>
parents:
68256
diff
changeset
|
803 # Put the last modified times more than two seconds into the past |
|
a0147a1f1776
#11999: sync based on comparing mtimes, not mtime to system clock
R David Murray <rdmurray@bitdance.com>
parents:
68256
diff
changeset
|
804 # (because mtime may have only a two second granularity). |
|
a0147a1f1776
#11999: sync based on comparing mtimes, not mtime to system clock
R David Murray <rdmurray@bitdance.com>
parents:
68256
diff
changeset
|
805 for subdir in ('cur', 'new'): |
|
a0147a1f1776
#11999: sync based on comparing mtimes, not mtime to system clock
R David Murray <rdmurray@bitdance.com>
parents:
68256
diff
changeset
|
806 os.utime(os.path.join(self._box._path, subdir), |
|
a0147a1f1776
#11999: sync based on comparing mtimes, not mtime to system clock
R David Murray <rdmurray@bitdance.com>
parents:
68256
diff
changeset
|
807 (time.time()-5,)*2) |
|
53686
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
808 |
|
69881
a0147a1f1776
#11999: sync based on comparing mtimes, not mtime to system clock
R David Murray <rdmurray@bitdance.com>
parents:
68256
diff
changeset
|
809 # Because mtime has a two second granularity in worst case (FAT), a |
|
a0147a1f1776
#11999: sync based on comparing mtimes, not mtime to system clock
R David Murray <rdmurray@bitdance.com>
parents:
68256
diff
changeset
|
810 # refresh is done unconditionally if called for within |
|
a0147a1f1776
#11999: sync based on comparing mtimes, not mtime to system clock
R David Murray <rdmurray@bitdance.com>
parents:
68256
diff
changeset
|
811 # two-second-plus-a-bit of the last one, just in case the mbox has |
|
a0147a1f1776
#11999: sync based on comparing mtimes, not mtime to system clock
R David Murray <rdmurray@bitdance.com>
parents:
68256
diff
changeset
|
812 # changed; so now we have to wait for that interval to expire. |
|
73524
d2b0751174f6
Update mailbox.Maildir tests
Petri Lehtinen <petri@digip.org>
parents:
73371
diff
changeset
|
813 # |
|
d2b0751174f6
Update mailbox.Maildir tests
Petri Lehtinen <petri@digip.org>
parents:
73371
diff
changeset
|
814 # Because this is a test, emulate sleeping. Instead of |
|
d2b0751174f6
Update mailbox.Maildir tests
Petri Lehtinen <petri@digip.org>
parents:
73371
diff
changeset
|
815 # sleeping for 2 seconds, use the skew factor to make _refresh |
|
d2b0751174f6
Update mailbox.Maildir tests
Petri Lehtinen <petri@digip.org>
parents:
73371
diff
changeset
|
816 # think that 2 seconds have passed and re-reading the _toc is |
|
d2b0751174f6
Update mailbox.Maildir tests
Petri Lehtinen <petri@digip.org>
parents:
73371
diff
changeset
|
817 # only required if mtimes differ. |
|
d2b0751174f6
Update mailbox.Maildir tests
Petri Lehtinen <petri@digip.org>
parents:
73371
diff
changeset
|
818 self._box._skewfactor = -3 |
|
53686
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
819 |
|
69881
a0147a1f1776
#11999: sync based on comparing mtimes, not mtime to system clock
R David Murray <rdmurray@bitdance.com>
parents:
68256
diff
changeset
|
820 # Re-reading causes the ._toc attribute to be assigned a new dictionary |
|
a0147a1f1776
#11999: sync based on comparing mtimes, not mtime to system clock
R David Murray <rdmurray@bitdance.com>
parents:
68256
diff
changeset
|
821 # object, so we'll check that the ._toc attribute isn't a different |
|
a0147a1f1776
#11999: sync based on comparing mtimes, not mtime to system clock
R David Murray <rdmurray@bitdance.com>
parents:
68256
diff
changeset
|
822 # object. |
|
53686
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
823 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
|
824 def refreshed(): |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
825 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
|
826 |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
827 self._box._refresh() |
|
69881
a0147a1f1776
#11999: sync based on comparing mtimes, not mtime to system clock
R David Murray <rdmurray@bitdance.com>
parents:
68256
diff
changeset
|
828 self.assertFalse(refreshed()) |
|
53686
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
829 |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
830 # Now, write something into cur and remove it. This changes |
|
73524
d2b0751174f6
Update mailbox.Maildir tests
Petri Lehtinen <petri@digip.org>
parents:
73371
diff
changeset
|
831 # the mtime and should cause a re-read. Note that "sleep |
|
d2b0751174f6
Update mailbox.Maildir tests
Petri Lehtinen <petri@digip.org>
parents:
73371
diff
changeset
|
832 # emulation" is still in effect, as skewfactor is -3. |
|
53686
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
833 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
|
834 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
|
835 f.close() |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
836 os.unlink(filename) |
|
e0cede7f521b
#1607951: Make mailbox.Maildir re-read the directories less frequently.
Andrew M. Kuchling <amk@amk.ca>
parents:
52732
diff
changeset
|
837 self._box._refresh() |
|
69881
a0147a1f1776
#11999: sync based on comparing mtimes, not mtime to system clock
R David Murray <rdmurray@bitdance.com>
parents:
68256
diff
changeset
|
838 self.assertTrue(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
|
839 |
|
77832
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
840 |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
841 class _TestSingleFile(TestMailbox): |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
842 '''Common tests for single-file mailboxes''' |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
843 |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
844 def test_add_doesnt_rewrite(self): |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
845 # When only adding messages, flush() should not rewrite the |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
846 # mailbox file. See issue #9559. |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
847 |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
848 # Inode number changes if the contents are written to another |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
849 # file which is then renamed over the original file. So we |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
850 # must check that the inode number doesn't change. |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
851 inode_before = os.stat(self._path).st_ino |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
852 |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
853 self._box.add(self._template % 0) |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
854 self._box.flush() |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
855 |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
856 inode_after = os.stat(self._path).st_ino |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
857 self.assertEqual(inode_before, inode_after) |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
858 |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
859 # Make sure the message was really added |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
860 self._box.close() |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
861 self._box = self._factory(self._path) |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
862 self.assertEqual(len(self._box), 1) |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
863 |
|
77850
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
864 def test_permissions_after_flush(self): |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
865 # See issue #5346 |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
866 |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
867 # Make the mailbox world writable. It's unlikely that the new |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
868 # mailbox file would have these permissions after flush(), |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
869 # because umask usually prevents it. |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
870 mode = os.stat(self._path).st_mode | 0o666 |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
871 os.chmod(self._path, mode) |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
872 |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
873 self._box.add(self._template % 0) |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
874 i = self._box.add(self._template % 1) |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
875 # Need to remove one message to make flush() create a new file |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
876 self._box.remove(i) |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
877 self._box.flush() |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
878 |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
879 self.assertEqual(os.stat(self._path).st_mode, mode) |
|
69f654f718f4
#5346: Preserve permissions of mbox, MMDF and Babyl mailbox files on flush()
Petri Lehtinen <petri@digip.org>
parents:
77832
diff
changeset
|
880 |
|
77832
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
881 |
|
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
882 class _TestMboxMMDF(_TestSingleFile): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
883 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
884 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
|
885 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
|
886 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
|
887 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
|
888 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
|
889 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
890 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
|
891 # Add a string starting with 'From ' to the mailbox |
|
79181
6451be0e374a
#15222: test_mailbox: End message template in a newline
Petri Lehtinen <petri@digip.org>
parents:
78826
diff
changeset
|
892 key = self._box.add('From foo@bar blah\nFrom: foo\n\n0\n') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
893 self.assertEqual(self._box[key].get_from(), 'foo@bar blah') |
|
79181
6451be0e374a
#15222: test_mailbox: End message template in a newline
Petri Lehtinen <petri@digip.org>
parents:
78826
diff
changeset
|
894 self.assertEqual(self._box[key].get_payload(), '0\n') |
|
37916
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 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
|
897 # 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
|
898 for class_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
79181
6451be0e374a
#15222: test_mailbox: End message template in a newline
Petri Lehtinen <petri@digip.org>
parents:
78826
diff
changeset
|
899 msg = class_('From foo@bar blah\nFrom: foo\n\n0\n') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
900 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
|
901 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
902 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
|
903 # 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
|
904 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
|
905 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
|
906 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
|
907 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
|
908 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
|
909 self._box = self._factory(self._path) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
910 self.assertEqual(len(self._box), 3) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
911 for key in self._box.iterkeys(): |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
912 self.assertIn(self._box.get_string(key), values) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
913 self._box.close() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
914 self.assertEqual(mtime, os.path.getmtime(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
|
915 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
916 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
|
917 # 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
|
918 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
|
919 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
|
920 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
|
921 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
|
922 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
|
923 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
|
924 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
|
925 self._box.close() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
926 with open(self._path, 'rb') as f: |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
927 self.assertEqual(contents, f.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
|
928 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
|
929 |
|
74072
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
930 @unittest.skipUnless(hasattr(os, 'fork'), "Test needs fork().") |
|
74093
c9facd251725
Followup to issue #11867: Use socketpair(), since FreeBSD < 8 doesn't really
Charles-François Natali <neologix@free.fr>
parents:
74072
diff
changeset
|
931 @unittest.skipUnless(hasattr(socket, 'socketpair'), "Test needs socketpair().") |
|
38932
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
932 def test_lock_conflict(self): |
|
74072
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
933 # Fork off a child process that will lock the mailbox temporarily, |
|
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
934 # unlock it and exit. |
|
74093
c9facd251725
Followup to issue #11867: Use socketpair(), since FreeBSD < 8 doesn't really
Charles-François Natali <neologix@free.fr>
parents:
74072
diff
changeset
|
935 c, p = socket.socketpair() |
|
c9facd251725
Followup to issue #11867: Use socketpair(), since FreeBSD < 8 doesn't really
Charles-François Natali <neologix@free.fr>
parents:
74072
diff
changeset
|
936 self.addCleanup(c.close) |
|
c9facd251725
Followup to issue #11867: Use socketpair(), since FreeBSD < 8 doesn't really
Charles-François Natali <neologix@free.fr>
parents:
74072
diff
changeset
|
937 self.addCleanup(p.close) |
|
74072
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
938 |
|
38932
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
939 pid = os.fork() |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
940 if pid == 0: |
|
74072
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
941 # child |
|
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
942 try: |
|
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
943 # lock the mailbox, and signal the parent it can proceed |
|
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
944 self._box.lock() |
|
74093
c9facd251725
Followup to issue #11867: Use socketpair(), since FreeBSD < 8 doesn't really
Charles-François Natali <neologix@free.fr>
parents:
74072
diff
changeset
|
945 c.send(b'c') |
|
38932
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
946 |
|
74072
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
947 # wait until the parent is done, and unlock the mailbox |
|
74093
c9facd251725
Followup to issue #11867: Use socketpair(), since FreeBSD < 8 doesn't really
Charles-François Natali <neologix@free.fr>
parents:
74072
diff
changeset
|
948 c.recv(1) |
|
74072
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
949 self._box.unlock() |
|
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
950 finally: |
|
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
951 os._exit(0) |
|
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
952 |
|
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
953 # In the parent, wait until the child signals it locked the mailbox. |
|
74093
c9facd251725
Followup to issue #11867: Use socketpair(), since FreeBSD < 8 doesn't really
Charles-François Natali <neologix@free.fr>
parents:
74072
diff
changeset
|
954 p.recv(1) |
|
39436
6ab4c39fd7a3
Fix the failures on cygwin (2006-08-10 fixed the actual locking issue).
Neal Norwitz <nnorwitz@gmail.com>
parents:
39151
diff
changeset
|
955 try: |
|
6ab4c39fd7a3
Fix the failures on cygwin (2006-08-10 fixed the actual locking issue).
Neal Norwitz <nnorwitz@gmail.com>
parents:
39151
diff
changeset
|
956 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
|
957 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
|
958 finally: |
|
74072
c6d41dd60d2d
Issue #11867: Make test_mailbox.test_lock_conflict deterministic (and fix a
Charles-François Natali <neologix@free.fr>
parents:
73524
diff
changeset
|
959 # Signal the child it can now release the lock and exit. |
|
74093
c9facd251725
Followup to issue #11867: Use socketpair(), since FreeBSD < 8 doesn't really
Charles-François Natali <neologix@free.fr>
parents:
74072
diff
changeset
|
960 p.send(b'p') |
|
39436
6ab4c39fd7a3
Fix the failures on cygwin (2006-08-10 fixed the actual locking issue).
Neal Norwitz <nnorwitz@gmail.com>
parents:
39151
diff
changeset
|
961 # 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
|
962 exited_pid, status = os.waitpid(pid, 0) |
|
38945
095546ddb2f1
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
38934
diff
changeset
|
963 |
|
38932
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
964 self._box.lock() |
|
58f419d8c646
Add a test for a conflicting lock.
Andrew M. Kuchling <amk@amk.ca>
parents:
38087
diff
changeset
|
965 self._box.unlock() |
|
38945
095546ddb2f1
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
38934
diff
changeset
|
966 |
|
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
|
967 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
|
968 # 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
|
969 # 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
|
970 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
|
971 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
|
972 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
|
973 self._box.close() |
|
41533
7ded787e6311
Whitespace normalization
Neal Norwitz <nnorwitz@gmail.com>
parents:
40349
diff
changeset
|
974 |
|
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
|
975 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
|
976 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
|
977 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
|
978 self._box.flush() |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
979 self.assertTrue(self._box._locked) |
|
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
|
980 self._box.close() |
|
41533
7ded787e6311
Whitespace normalization
Neal Norwitz <nnorwitz@gmail.com>
parents:
40349
diff
changeset
|
981 |
|
7ded787e6311
Whitespace normalization
Neal Norwitz <nnorwitz@gmail.com>
parents:
40349
diff
changeset
|
982 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
983 class TestMbox(_TestMboxMMDF, unittest.TestCase): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
984 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
985 _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
|
986 |
|
48162
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
987 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
|
988 # 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
|
989 # 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
|
990 # 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
|
991 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
|
992 try: |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
993 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
|
994 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
|
995 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
|
996 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
|
997 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
|
998 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
|
999 finally: |
|
40be37e69158
Bug 3228: Explicitly supply the file mode to avoid creating executable files,
Andrew M. Kuchling <amk@amk.ca>
parents:
46197
diff
changeset
|
1000 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
|
1001 |
|
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
|
1002 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
|
1003 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
|
1004 self.assertFalse((perms & 0111)) # Execute bits should all be off. |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1005 |
|
79182
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1006 def test_terminating_newline(self): |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1007 message = email.message.Message() |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1008 message['From'] = 'john@example.com' |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1009 message.set_payload('No newline at the end') |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1010 i = self._box.add(message) |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1011 |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1012 # A newline should have been appended to the payload |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1013 message = self._box.get(i) |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1014 self.assertEqual(message.get_payload(), 'No newline at the end\n') |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1015 |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1016 def test_message_separator(self): |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1017 # Check there's always a single blank line after each message |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1018 self._box.add('From: foo\n\n0') # No newline at the end |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1019 with open(self._path) as f: |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1020 data = f.read() |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1021 self.assertEqual(data[-3:], '0\n\n') |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1022 |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1023 self._box.add('From: foo\n\n0\n') # Newline at the end |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1024 with open(self._path) as f: |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1025 data = f.read() |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1026 self.assertEqual(data[-3:], '0\n\n') |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1027 |
|
d903d4981e33
#15222: Insert blank line after each message in mbox mailboxes
Petri Lehtinen <petri@digip.org>
parents:
79181
diff
changeset
|
1028 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
1029 class TestMMDF(_TestMboxMMDF, unittest.TestCase): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1030 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1031 _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
|
1032 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1033 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
1034 class TestMH(TestMailbox, unittest.TestCase): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1035 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1036 _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
|
1037 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1038 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
|
1039 # 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
|
1040 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
|
1041 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
|
1042 self._box.add_folder('three') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1043 self.assertEqual(len(self._box.list_folders()), 3) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1044 self.assertEqual(set(self._box.list_folders()), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1045 set(('one', 'two', 'three'))) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1046 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1047 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
|
1048 # Open folders |
|
40317
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
1049 def dummy_factory (s): |
|
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
1050 return None |
|
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
1051 self._box = self._factory(self._path, dummy_factory) |
|
41533
7ded787e6311
Whitespace normalization
Neal Norwitz <nnorwitz@gmail.com>
parents:
40349
diff
changeset
|
1052 |
|
40317
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
1053 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
|
1054 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
|
1055 folder0.add(self._template % 'bar') |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
1056 self.assertTrue(os.path.isdir(os.path.join(self._path, '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
|
1057 folder1 = self._box.get_folder('foo.bar') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1058 self.assertEqual(folder1.get_string(folder1.keys()[0]), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1059 self._template % '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
|
1060 |
|
40317
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
1061 # Test for bug #1569790: verify that folders returned by .get_folder() |
|
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
1062 # use the same factory function. |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1063 self.assertIs(new_folder._factory, self._box._factory) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1064 self.assertIs(folder0._factory, self._box._factory) |
|
40317
6c0677273c5a
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Andrew M. Kuchling <amk@amk.ca>
parents:
40202
diff
changeset
|
1065 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1066 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
|
1067 # 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
|
1068 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
|
1069 self._box.add_folder('two') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1070 self.assertEqual(len(self._box.list_folders()), 2) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1071 self.assertEqual(set(self._box.list_folders()), set(('one', 'two'))) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1072 self._box.remove_folder('one') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1073 self.assertEqual(len(self._box.list_folders()), 1) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1074 self.assertEqual(set(self._box.list_folders()), set(('two', ))) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1075 self._box.add_folder('three') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1076 self.assertEqual(len(self._box.list_folders()), 2) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1077 self.assertEqual(set(self._box.list_folders()), set(('two', 'three'))) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1078 self._box.remove_folder('three') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1079 self.assertEqual(len(self._box.list_folders()), 1) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1080 self.assertEqual(set(self._box.list_folders()), set(('two', ))) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1081 self._box.remove_folder('two') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1082 self.assertEqual(len(self._box.list_folders()), 0) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1083 self.assertEqual(self._box.list_folders(), []) |
|
15298
85a509faccc7
Added test for regression on SourceForge bug #117490.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
1084 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1085 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
|
1086 # Get and set sequences |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1087 self.assertEqual(self._box.get_sequences(), {}) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1088 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
|
1089 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
|
1090 key0 = self._box.add(msg0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1091 self.assertEqual(self._box.get_sequences(), {'foo':[key0]}) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1092 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
|
1093 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
|
1094 key1 = self._box.add(msg1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1095 self.assertEqual(self._box.get_sequences(), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1096 {'foo':[key0, key1], 'bar':[key1], 'replied':[key1]}) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1097 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
|
1098 self._box[key0] = msg0 |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1099 self.assertEqual(self._box.get_sequences(), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1100 {'foo':[key1], 'bar':[key1], 'replied':[key1], |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1101 'flagged':[key0]}) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1102 self._box.remove(key1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1103 self.assertEqual(self._box.get_sequences(), {'flagged':[key0]}) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1104 |
|
52732
a33bc8183e4c
Merged revisions 71046 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
48182
diff
changeset
|
1105 def test_issue2625(self): |
|
a33bc8183e4c
Merged revisions 71046 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
48182
diff
changeset
|
1106 msg0 = mailbox.MHMessage(self._template % 0) |
|
a33bc8183e4c
Merged revisions 71046 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
48182
diff
changeset
|
1107 msg0.add_sequence('foo') |
|
a33bc8183e4c
Merged revisions 71046 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
48182
diff
changeset
|
1108 key0 = self._box.add(msg0) |
|
a33bc8183e4c
Merged revisions 71046 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
48182
diff
changeset
|
1109 refmsg0 = self._box.get_message(key0) |
|
a33bc8183e4c
Merged revisions 71046 via svnmerge from
R. David Murray <rdmurray@bitdance.com>
parents:
48182
diff
changeset
|
1110 |
|
59026
fd9488854088
#7627: MH.remove() would fail if the MH mailbox was locked;
Andrew M. Kuchling <amk@amk.ca>
parents:
58580
diff
changeset
|
1111 def test_issue7627(self): |
|
fd9488854088
#7627: MH.remove() would fail if the MH mailbox was locked;
Andrew M. Kuchling <amk@amk.ca>
parents:
58580
diff
changeset
|
1112 msg0 = mailbox.MHMessage(self._template % 0) |
|
fd9488854088
#7627: MH.remove() would fail if the MH mailbox was locked;
Andrew M. Kuchling <amk@amk.ca>
parents:
58580
diff
changeset
|
1113 key0 = self._box.add(msg0) |
|
fd9488854088
#7627: MH.remove() would fail if the MH mailbox was locked;
Andrew M. Kuchling <amk@amk.ca>
parents:
58580
diff
changeset
|
1114 self._box.lock() |
|
fd9488854088
#7627: MH.remove() would fail if the MH mailbox was locked;
Andrew M. Kuchling <amk@amk.ca>
parents:
58580
diff
changeset
|
1115 self._box.remove(key0) |
|
fd9488854088
#7627: MH.remove() would fail if the MH mailbox was locked;
Andrew M. Kuchling <amk@amk.ca>
parents:
58580
diff
changeset
|
1116 self._box.unlock() |
|
fd9488854088
#7627: MH.remove() would fail if the MH mailbox was locked;
Andrew M. Kuchling <amk@amk.ca>
parents:
58580
diff
changeset
|
1117 |
|
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 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
|
1119 # 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
|
1120 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
|
1121 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
|
1122 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
|
1123 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
|
1124 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
|
1125 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
|
1126 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
|
1127 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
|
1128 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
|
1129 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
|
1130 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
|
1131 key3 = self._box.add(msg3) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1132 self.assertEqual(self._box.get_sequences(), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1133 {'foo':[key0,key1,key2,key3], 'unseen':[key0], |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1134 'flagged':[key2], 'bar':[key3], 'replied':[key3]}) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1135 self._box.remove(key2) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1136 self.assertEqual(self._box.get_sequences(), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1137 {'foo':[key0,key1,key3], 'unseen':[key0], 'bar':[key3], |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1138 'replied':[key3]}) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1139 self._box.pack() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1140 self.assertEqual(self._box.keys(), [1, 2, 3]) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1141 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
|
1142 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
|
1143 key2 = key1 + 1 |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1144 self.assertEqual(self._box.get_sequences(), |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1145 {'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
|
1146 |
|
40349
4c62c8290d4f
Remove locking of individual message files in MH.pack().
Andrew M. Kuchling <amk@amk.ca>
parents:
40317
diff
changeset
|
1147 # Test case for packing while holding the mailbox locked. |
|
4c62c8290d4f
Remove locking of individual message files in MH.pack().
Andrew M. Kuchling <amk@amk.ca>
parents:
40317
diff
changeset
|
1148 key0 = self._box.add(msg1) |
|
4c62c8290d4f
Remove locking of individual message files in MH.pack().
Andrew M. Kuchling <amk@amk.ca>
parents:
40317
diff
changeset
|
1149 key1 = self._box.add(msg1) |
|
4c62c8290d4f
Remove locking of individual message files in MH.pack().
Andrew M. Kuchling <amk@amk.ca>
parents:
40317
diff
changeset
|
1150 key2 = self._box.add(msg1) |
|
4c62c8290d4f
Remove locking of individual message files in MH.pack().
Andrew M. Kuchling <amk@amk.ca>
parents:
40317
diff
changeset
|
1151 key3 = self._box.add(msg1) |
|
4c62c8290d4f
Remove locking of individual message files in MH.pack().
Andrew M. Kuchling <amk@amk.ca>
parents:
40317
diff
changeset
|
1152 |
|
4c62c8290d4f
Remove locking of individual message files in MH.pack().
Andrew M. Kuchling <amk@amk.ca>
parents:
40317
diff
changeset
|
1153 self._box.remove(key0) |
|
4c62c8290d4f
Remove locking of individual message files in MH.pack().
Andrew M. Kuchling <amk@amk.ca>
parents:
40317
diff
changeset
|
1154 self._box.remove(key2) |
|
4c62c8290d4f
Remove locking of individual message files in MH.pack().
Andrew M. Kuchling <amk@amk.ca>
parents:
40317
diff
changeset
|
1155 self._box.lock() |
|
4c62c8290d4f
Remove locking of individual message files in MH.pack().
Andrew M. Kuchling <amk@amk.ca>
parents:
40317
diff
changeset
|
1156 self._box.pack() |
|
4c62c8290d4f
Remove locking of individual message files in MH.pack().
Andrew M. Kuchling <amk@amk.ca>
parents:
40317
diff
changeset
|
1157 self._box.unlock() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1158 self.assertEqual(self._box.get_sequences(), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1159 {'foo':[1, 2, 3, 4, 5], |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1160 'unseen':[1], 'bar':[3], 'replied':[3]}) |
|
41533
7ded787e6311
Whitespace normalization
Neal Norwitz <nnorwitz@gmail.com>
parents:
40349
diff
changeset
|
1161 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1162 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
|
1163 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
|
1164 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1165 |
|
77832
c37cb11b546f
#9559: Append data to single-file mailbox files if messages are only added
Petri Lehtinen <petri@digip.org>
parents:
77443
diff
changeset
|
1166 class TestBabyl(_TestSingleFile, unittest.TestCase): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1167 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1168 _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
|
1169 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1170 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
|
1171 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
|
1172 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
|
1173 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
|
1174 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
|
1175 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1176 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
|
1177 # Get labels from the mailbox |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1178 self.assertEqual(self._box.get_labels(), []) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1179 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
|
1180 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
|
1181 key0 = self._box.add(msg0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1182 self.assertEqual(self._box.get_labels(), ['foo']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1183 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
|
1184 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
|
1185 key1 = self._box.add(msg1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1186 self.assertEqual(set(self._box.get_labels()), set(['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
|
1187 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
|
1188 self._box[key0] = msg0 |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1189 self.assertEqual(set(self._box.get_labels()), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1190 set(['foo', 'bar', 'blah'])) |
|
37916
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._box.remove(key1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1192 self.assertEqual(set(self._box.get_labels()), set(['blah'])) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1193 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1194 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
1195 class TestMessage(TestBase, unittest.TestCase): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1196 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1197 _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
|
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 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
|
1200 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
|
1201 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1202 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
|
1203 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
|
1204 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1205 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
|
1206 # 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
|
1207 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
|
1208 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
|
1209 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
|
1210 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
|
1211 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1212 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
|
1213 # 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
|
1214 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
|
1215 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
|
1216 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
|
1217 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1218 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
|
1219 # Initialize based on contents of file |
|
65282
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
1220 with open(self._path, 'w+') as f: |
|
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
1221 f.write(_sample_message) |
|
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
1222 f.seek(0) |
|
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
1223 msg = self._factory(f) |
|
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
1224 self._post_initialize_hook(msg) |
|
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
1225 self._check_sample(msg) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1226 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1227 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
|
1228 # 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
|
1229 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
|
1230 self._post_initialize_hook(msg) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1231 self.assertIsInstance(msg, email.message.Message) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1232 self.assertIsInstance(msg, mailbox.Message) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1233 self.assertIsInstance(msg, self._factory) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1234 self.assertEqual(msg.keys(), []) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1235 self.assertFalse(msg.is_multipart()) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1236 self.assertEqual(msg.get_payload(), 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
|
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 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
|
1239 # 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
|
1240 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
|
1241 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1242 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
|
1243 # 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
|
1244 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
|
1245 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
|
1246 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
|
1247 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
|
1248 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1249 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
|
1250 # 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
|
1251 # 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
|
1252 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
|
1253 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
|
1254 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
|
1255 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
|
1256 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
|
1257 msg._explain_to(other_msg) |
|
40689
b23711be2b3e
Use new email module names (#1637162, #1637159, #1637157).
Georg Brandl <georg@python.org>
parents:
40348
diff
changeset
|
1258 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
|
1259 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
|
1260 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1261 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
|
1262 # 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
|
1263 pass |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1264 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1265 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
1266 class TestMaildirMessage(TestMessage, unittest.TestCase): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1267 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1268 _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
|
1269 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1270 def _post_initialize_hook(self, msg): |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1271 self.assertEqual(msg._subdir, 'new') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1272 self.assertEqual(msg._info,'') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1273 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1274 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
|
1275 # 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
|
1276 msg = mailbox.MaildirMessage(_sample_message) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1277 self.assertEqual(msg.get_subdir(), 'new') |
|
37916
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_subdir('cur') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1279 self.assertEqual(msg.get_subdir(), 'cur') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1280 msg.set_subdir('new') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1281 self.assertEqual(msg.get_subdir(), 'new') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1282 self.assertRaises(ValueError, lambda: msg.set_subdir('tmp')) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1283 self.assertEqual(msg.get_subdir(), 'new') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1284 msg.set_subdir('new') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1285 self.assertEqual(msg.get_subdir(), 'new') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1286 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
|
1287 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1288 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
|
1289 # 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
|
1290 msg = mailbox.MaildirMessage(_sample_message) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1291 self.assertEqual(msg.get_flags(), '') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1292 self.assertEqual(msg.get_subdir(), 'new') |
|
37916
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_flags('F') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1294 self.assertEqual(msg.get_subdir(), 'new') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1295 self.assertEqual(msg.get_flags(), 'F') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1296 msg.set_flags('SDTP') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1297 self.assertEqual(msg.get_flags(), 'DPST') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1298 msg.add_flag('FT') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1299 self.assertEqual(msg.get_flags(), 'DFPST') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1300 msg.remove_flag('TDRP') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1301 self.assertEqual(msg.get_flags(), 'FS') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1302 self.assertEqual(msg.get_subdir(), 'new') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1303 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
|
1304 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1305 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
|
1306 # 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
|
1307 msg = mailbox.MaildirMessage(_sample_message) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1308 diff = msg.get_date() - time.time() |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1309 self.assertTrue(abs(diff) < 60, diff) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1310 msg.set_date(0.0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1311 self.assertEqual(msg.get_date(), 0.0) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1312 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1313 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
|
1314 # 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
|
1315 msg = mailbox.MaildirMessage(_sample_message) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1316 self.assertEqual(msg.get_info(), '') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1317 msg.set_info('1,foo=bar') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1318 self.assertEqual(msg.get_info(), '1,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
|
1319 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
|
1320 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
|
1321 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1322 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
|
1323 # 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
|
1324 msg = mailbox.MaildirMessage(_sample_message) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1325 self.assertEqual(msg.get_info(), '') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1326 msg.set_flags('SF') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1327 self.assertEqual(msg.get_flags(), 'FS') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1328 self.assertEqual(msg.get_info(), '2,FS') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1329 msg.set_info('1,') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1330 self.assertEqual(msg.get_flags(), '') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1331 self.assertEqual(msg.get_info(), '1,') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1332 msg.remove_flag('RPT') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1333 self.assertEqual(msg.get_flags(), '') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1334 self.assertEqual(msg.get_info(), '1,') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1335 msg.add_flag('D') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1336 self.assertEqual(msg.get_flags(), 'D') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1337 self.assertEqual(msg.get_info(), '2,D') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1338 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
|
1339 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1340 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
1341 class _TestMboxMMDFMessage: |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1342 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1343 _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
|
1344 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1345 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
|
1346 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
|
1347 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1348 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
|
1349 # 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
|
1350 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
|
1351 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
|
1352 msg = mailbox.mboxMessage(msg) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1353 self.assertEqual(msg.get_from(), 'foo@bar blah') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1354 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1355 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
|
1356 # 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
|
1357 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
|
1358 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
|
1359 msg.set_from('foo bar') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1360 self.assertEqual(msg.get_from(), '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
|
1361 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
|
1362 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
|
1363 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
|
1364 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
|
1365 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1366 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
|
1367 # 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
|
1368 msg = mailbox.mboxMessage(_sample_message) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1369 self.assertEqual(msg.get_flags(), '') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1370 msg.set_flags('F') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1371 self.assertEqual(msg.get_flags(), 'F') |
|
37916
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.set_flags('XODR') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1373 self.assertEqual(msg.get_flags(), 'RODX') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1374 msg.add_flag('FA') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1375 self.assertEqual(msg.get_flags(), 'RODFAX') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1376 msg.remove_flag('FDXA') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1377 self.assertEqual(msg.get_flags(), 'RO') |
|
37916
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._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
|
1379 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1380 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
|
1381 # 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
|
1382 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
|
1383 sender = "MAILER-DAEMON" |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
1384 self.assertTrue(re.match(sender + r" \w{3} \w{3} [\d ]\d [\d ]\d:\d{2}:" |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1385 r"\d{2} \d{4}", msg.get_from())) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1386 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1387 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
1388 class TestMboxMessage(_TestMboxMMDFMessage, TestMessage): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1389 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1390 _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
|
1391 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1392 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
1393 class TestMHMessage(TestMessage, unittest.TestCase): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1394 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1395 _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
|
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 _post_initialize_hook(self, msg): |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1398 self.assertEqual(msg._sequences, []) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1399 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1400 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
|
1401 # 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
|
1402 msg = mailbox.MHMessage(_sample_message) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1403 self.assertEqual(msg.get_sequences(), []) |
|
37916
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.set_sequences(['foobar']) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1405 self.assertEqual(msg.get_sequences(), ['foobar']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1406 msg.set_sequences([]) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1407 self.assertEqual(msg.get_sequences(), []) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1408 msg.add_sequence('unseen') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1409 self.assertEqual(msg.get_sequences(), ['unseen']) |
|
37916
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.add_sequence('flagged') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1411 self.assertEqual(msg.get_sequences(), ['unseen', 'flagged']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1412 msg.add_sequence('flagged') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1413 self.assertEqual(msg.get_sequences(), ['unseen', 'flagged']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1414 msg.remove_sequence('unseen') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1415 self.assertEqual(msg.get_sequences(), ['flagged']) |
|
37916
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.add_sequence('foobar') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1417 self.assertEqual(msg.get_sequences(), ['flagged', 'foobar']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1418 msg.remove_sequence('replied') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1419 self.assertEqual(msg.get_sequences(), ['flagged', 'foobar']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1420 msg.set_sequences(['foobar', 'replied']) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1421 self.assertEqual(msg.get_sequences(), ['foobar', 'replied']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1422 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1423 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
1424 class TestBabylMessage(TestMessage, unittest.TestCase): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1425 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1426 _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
|
1427 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1428 def _post_initialize_hook(self, msg): |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1429 self.assertEqual(msg._labels, []) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1430 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1431 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
|
1432 # 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
|
1433 msg = mailbox.BabylMessage(_sample_message) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1434 self.assertEqual(msg.get_labels(), []) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1435 msg.set_labels(['foobar']) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1436 self.assertEqual(msg.get_labels(), ['foobar']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1437 msg.set_labels([]) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1438 self.assertEqual(msg.get_labels(), []) |
|
37916
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.add_label('filed') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1440 self.assertEqual(msg.get_labels(), ['filed']) |
|
37916
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.add_label('resent') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1442 self.assertEqual(msg.get_labels(), ['filed', 'resent']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1443 msg.add_label('resent') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1444 self.assertEqual(msg.get_labels(), ['filed', 'resent']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1445 msg.remove_label('filed') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1446 self.assertEqual(msg.get_labels(), ['resent']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1447 msg.add_label('foobar') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1448 self.assertEqual(msg.get_labels(), ['resent', 'foobar']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1449 msg.remove_label('unseen') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1450 self.assertEqual(msg.get_labels(), ['resent', 'foobar']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1451 msg.set_labels(['foobar', 'answered']) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1452 self.assertEqual(msg.get_labels(), ['foobar', 'answered']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1453 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1454 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
|
1455 # 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
|
1456 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
|
1457 visible = msg.get_visible() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1458 self.assertEqual(visible.keys(), []) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1459 self.assertIs(visible.get_payload(), 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
|
1460 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
|
1461 visible['X-Whatever'] = 'Blah' |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1462 self.assertEqual(msg.get_visible().keys(), []) |
|
37916
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.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
|
1464 visible = msg.get_visible() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1465 self.assertEqual(visible.keys(), ['User-Agent', 'X-Whatever']) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1466 self.assertEqual(visible['User-Agent'], 'FooBar 1.0') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1467 self.assertEqual(visible['X-Whatever'], 'Blah') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1468 self.assertIs(visible.get_payload(), 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
|
1469 msg.update_visible() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1470 self.assertEqual(visible.keys(), ['User-Agent', 'X-Whatever']) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1471 self.assertIs(visible.get_payload(), 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
|
1472 visible = msg.get_visible() |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1473 self.assertEqual(visible.keys(), ['User-Agent', 'Date', 'From', 'To', |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1474 'Subject']) |
|
37916
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 header in ('User-Agent', 'Date', 'From', 'To', 'Subject'): |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1476 self.assertEqual(visible[header], msg[header]) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1477 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1478 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
1479 class TestMMDFMessage(_TestMboxMMDFMessage, TestMessage): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1480 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1481 _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
|
1482 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1483 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
1484 class TestMessageConversion(TestBase, unittest.TestCase): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1485 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1486 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
|
1487 # 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
|
1488 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
|
1489 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
|
1490 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
|
1491 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
|
1492 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
|
1493 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
|
1494 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1495 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
|
1496 # 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
|
1497 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
|
1498 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
|
1499 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
|
1500 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
|
1501 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
|
1502 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
|
1503 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1504 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
|
1505 # 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
|
1506 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
|
1507 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
|
1508 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
|
1509 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
|
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_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
|
1512 # 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
|
1513 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
|
1514 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
|
1515 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
|
1516 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
|
1517 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
|
1518 self._check_sample(msg) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1519 self.assertEqual(msg.get_flags(), 'DFPRST') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1520 self.assertEqual(msg.get_subdir(), 'cur') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1521 self.assertEqual(msg.get_date(), date) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1522 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1523 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
|
1524 # 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
|
1525 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
|
1526 ('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
|
1527 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
|
1528 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
|
1529 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
|
1530 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
|
1531 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
|
1532 msg = class_(msg_maildir) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1533 self.assertEqual(msg.get_flags(), result) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1534 self.assertEqual(msg.get_from(), 'MAILER-DAEMON %s' % |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1535 time.asctime(time.gmtime(0.0))) |
|
37916
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_maildir.set_subdir('cur') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1537 self.assertEqual(class_(msg_maildir).get_flags(), 'RODFA') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1538 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1539 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
|
1540 # 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
|
1541 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
|
1542 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
|
1543 ('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
|
1544 ('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
|
1545 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
|
1546 msg_maildir.set_flags(setting) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1547 self.assertEqual(mailbox.MHMessage(msg_maildir).get_sequences(), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1548 result) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1549 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1550 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
|
1551 # 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
|
1552 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
|
1553 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
|
1554 ('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
|
1555 ('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
|
1556 ('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
|
1557 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
|
1558 msg_maildir.set_flags(setting) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1559 self.assertEqual(mailbox.BabylMessage(msg_maildir).get_labels(), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1560 result) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1561 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1562 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
|
1563 # 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
|
1564 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
|
1565 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
|
1566 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
|
1567 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
|
1568 ('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
|
1569 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
|
1570 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
|
1571 msg = mailbox.MaildirMessage(msg_mboxMMDF) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1572 self.assertEqual(msg.get_flags(), result) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1573 self.assertEqual(msg.get_date(), 0.0) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1574 msg_mboxMMDF.set_flags('O') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1575 self.assertEqual(mailbox.MaildirMessage(msg_mboxMMDF).get_subdir(), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1576 'cur') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1577 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1578 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
|
1579 # 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
|
1580 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
|
1581 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
|
1582 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
|
1583 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
|
1584 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
|
1585 msg2 = class2_(msg_mboxMMDF) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1586 self.assertEqual(msg2.get_flags(), 'RODFA') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1587 self.assertEqual(msg2.get_from(), '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
|
1588 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1589 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
|
1590 # 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
|
1591 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
|
1592 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
|
1593 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
|
1594 ('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
|
1595 ('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
|
1596 ('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
|
1597 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
|
1598 msg_mboxMMDF.set_flags(setting) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1599 self.assertEqual(mailbox.MHMessage(msg_mboxMMDF).get_sequences(), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1600 result) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1601 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1602 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
|
1603 # 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
|
1604 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
|
1605 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
|
1606 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
|
1607 ('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
|
1608 ('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
|
1609 ('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
|
1610 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
|
1611 msg.set_flags(setting) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1612 self.assertEqual(mailbox.BabylMessage(msg).get_labels(), result) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1613 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1614 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
|
1615 # 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
|
1616 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
|
1617 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
|
1618 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
|
1619 msg.add_sequence(setting) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1620 self.assertEqual(mailbox.MaildirMessage(msg).get_flags(), result) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1621 self.assertEqual(mailbox.MaildirMessage(msg).get_subdir(), 'cur') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1622 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
|
1623 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
|
1624 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
|
1625 msg.add_sequence('flagged') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1626 self.assertEqual(mailbox.MaildirMessage(msg).get_flags(), 'FR') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1627 self.assertEqual(mailbox.MaildirMessage(msg).get_subdir(), 'cur') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1628 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1629 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
|
1630 # 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
|
1631 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
|
1632 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
|
1633 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
|
1634 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
|
1635 for class_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1636 self.assertEqual(class_(msg).get_flags(), result) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1637 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
|
1638 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
|
1639 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
|
1640 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
|
1641 for class_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1642 self.assertEqual(class_(msg).get_flags(), 'OFA') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1643 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1644 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
|
1645 # 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
|
1646 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
|
1647 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
|
1648 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
|
1649 msg.add_sequence('flagged') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1650 self.assertEqual(mailbox.MHMessage(msg).get_sequences(), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1651 ['unseen', 'replied', 'flagged']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1652 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1653 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
|
1654 # 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
|
1655 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
|
1656 ('flagged', [])) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1657 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
|
1658 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
|
1659 msg.add_sequence(setting) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1660 self.assertEqual(mailbox.BabylMessage(msg).get_labels(), result) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1661 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
|
1662 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
|
1663 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
|
1664 msg.add_sequence('flagged') |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1665 self.assertEqual(mailbox.BabylMessage(msg).get_labels(), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1666 ['unseen', 'answered']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1667 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1668 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
|
1669 # 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
|
1670 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
|
1671 ('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
|
1672 ('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
|
1673 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
|
1674 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
|
1675 msg.add_label(setting) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1676 self.assertEqual(mailbox.MaildirMessage(msg).get_flags(), result) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1677 self.assertEqual(mailbox.MaildirMessage(msg).get_subdir(), 'cur') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1678 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
|
1679 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
|
1680 '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
|
1681 msg.add_label(label) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1682 self.assertEqual(mailbox.MaildirMessage(msg).get_flags(), 'PRT') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1683 self.assertEqual(mailbox.MaildirMessage(msg).get_subdir(), 'cur') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1684 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1685 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
|
1686 # 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
|
1687 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
|
1688 ('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
|
1689 ('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
|
1690 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
|
1691 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
|
1692 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
|
1693 msg.add_label(setting) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1694 self.assertEqual(class_(msg).get_flags(), result) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1695 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
|
1696 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
|
1697 '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
|
1698 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
|
1699 for class_ in (mailbox.mboxMessage, mailbox.MMDFMessage): |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1700 self.assertEqual(class_(msg).get_flags(), 'ODA') |
|
37916
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_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
|
1703 # 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
|
1704 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
|
1705 ('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
|
1706 ('resent', [])) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1707 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
|
1708 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
|
1709 msg.add_label(setting) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1710 self.assertEqual(mailbox.MHMessage(msg).get_sequences(), result) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1711 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
|
1712 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
|
1713 '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
|
1714 msg.add_label(label) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1715 self.assertEqual(mailbox.MHMessage(msg).get_sequences(), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1716 ['unseen', 'replied']) |
|
37916
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 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
|
1719 # 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
|
1720 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
|
1721 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
|
1722 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
|
1723 'edited', 'resent'): |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
1724 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
|
1725 msg2 = mailbox.BabylMessage(msg) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1726 self.assertEqual(msg2.get_labels(), ['unseen', 'deleted', 'filed', |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1727 'answered', 'forwarded', 'edited', |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1728 'resent']) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1729 self.assertEqual(msg.get_visible().keys(), msg2.get_visible().keys()) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1730 for key in msg.get_visible().keys(): |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1731 self.assertEqual(msg.get_visible()[key], msg2.get_visible()[key]) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1732 |
|
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 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
|
1735 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1736 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
|
1737 # 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
|
1738 proxy.seek(0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1739 self.assertEqual(proxy.read(), '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
|
1740 proxy.seek(1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1741 self.assertEqual(proxy.read(), 'ar') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1742 proxy.seek(0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1743 self.assertEqual(proxy.read(2), 'ba') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1744 proxy.seek(1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1745 self.assertEqual(proxy.read(-1), 'ar') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1746 proxy.seek(2) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1747 self.assertEqual(proxy.read(1000), 'r') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1748 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1749 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
|
1750 # 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
|
1751 proxy.seek(0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1752 self.assertEqual(proxy.readline(), 'foo' + os.linesep) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1753 self.assertEqual(proxy.readline(), 'bar' + os.linesep) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1754 self.assertEqual(proxy.readline(), 'fred' + os.linesep) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1755 self.assertEqual(proxy.readline(), 'bob') |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1756 proxy.seek(2) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1757 self.assertEqual(proxy.readline(), 'o' + os.linesep) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1758 proxy.seek(6 + 2 * len(os.linesep)) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1759 self.assertEqual(proxy.readline(), 'fred' + os.linesep) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1760 proxy.seek(6 + 2 * len(os.linesep)) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1761 self.assertEqual(proxy.readline(2), 'fr') |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1762 self.assertEqual(proxy.readline(-10), 'ed' + os.linesep) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1763 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1764 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
|
1765 # 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
|
1766 proxy.seek(0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1767 self.assertEqual(proxy.readlines(), ['foo' + os.linesep, |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1768 'bar' + os.linesep, |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1769 'fred' + os.linesep, 'bob']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1770 proxy.seek(0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1771 self.assertEqual(proxy.readlines(2), ['foo' + os.linesep]) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1772 proxy.seek(3 + len(os.linesep)) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1773 self.assertEqual(proxy.readlines(4 + len(os.linesep)), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1774 ['bar' + os.linesep, 'fred' + os.linesep]) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1775 proxy.seek(3) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1776 self.assertEqual(proxy.readlines(1000), [os.linesep, 'bar' + os.linesep, |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1777 'fred' + os.linesep, 'bob']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1778 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1779 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
|
1780 # 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
|
1781 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
|
1782 iterator = iter(proxy) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1783 self.assertEqual(list(iterator), |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1784 ['foo' + os.linesep, 'bar' + os.linesep, 'fred' + os.linesep, 'bob']) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1785 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1786 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
|
1787 # 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
|
1788 proxy.seek(3) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1789 self.assertEqual(proxy.tell(), 3) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1790 self.assertEqual(proxy.read(len(os.linesep)), os.linesep) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1791 proxy.seek(2, 1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1792 self.assertEqual(proxy.read(1 + len(os.linesep)), 'r' + os.linesep) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1793 proxy.seek(-3 - len(os.linesep), 2) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1794 self.assertEqual(proxy.read(3), '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
|
1795 proxy.seek(2, 0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1796 self.assertEqual(proxy.read(), 'o' + os.linesep + 'bar' + os.linesep) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1797 proxy.seek(100) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1798 self.assertEqual(proxy.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
|
1799 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1800 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
|
1801 # 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
|
1802 proxy.close() |
|
70856
b89d193cbca5
#11700: proxy object close methods can now be called multiple times
R David Murray <rdmurray@bitdance.com>
parents:
69881
diff
changeset
|
1803 # Issue 11700 subsequent closes should be a no-op, not an error. |
|
b89d193cbca5
#11700: proxy object close methods can now be called multiple times
R David Murray <rdmurray@bitdance.com>
parents:
69881
diff
changeset
|
1804 proxy.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
|
1805 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1806 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
1807 class TestProxyFile(TestProxyFileBase, unittest.TestCase): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1808 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1809 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
|
1810 self._path = test_support.TESTFN |
|
38087
b706b100c8fc
Use open() instead of file()
Andrew M. Kuchling <amk@amk.ca>
parents:
38086
diff
changeset
|
1811 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
|
1812 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1813 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
|
1814 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
|
1815 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
|
1816 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1817 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
|
1818 # 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
|
1819 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
|
1820 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
|
1821 proxy0 = mailbox._ProxyFile(self._file) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1822 self.assertEqual(proxy0.tell(), pos) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1823 self.assertEqual(self._file.tell(), pos) |
|
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 proxy1 = mailbox._ProxyFile(self._file, 0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1825 self.assertEqual(proxy1.tell(), 0) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1826 self.assertEqual(self._file.tell(), pos) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1827 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1828 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
|
1829 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
|
1830 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
|
1831 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1832 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
|
1833 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
|
1834 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
|
1835 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
|
1836 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1837 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
|
1838 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
|
1839 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
|
1840 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
|
1841 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1842 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
|
1843 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
|
1844 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
|
1845 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
|
1846 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1847 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
|
1848 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
|
1849 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
|
1850 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1851 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
|
1852 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
|
1853 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
|
1854 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1855 |
|
76163
96de17c95a7f
Make test_mailbox runnable via python -m unittest.
R David Murray <rdmurray@bitdance.com>
parents:
75460
diff
changeset
|
1856 class TestPartialFile(TestProxyFileBase, unittest.TestCase): |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1857 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1858 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
|
1859 self._path = test_support.TESTFN |
|
38087
b706b100c8fc
Use open() instead of file()
Andrew M. Kuchling <amk@amk.ca>
parents:
38086
diff
changeset
|
1860 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
|
1861 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1862 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
|
1863 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
|
1864 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
|
1865 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1866 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
|
1867 # 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
|
1868 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
|
1869 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
|
1870 proxy = mailbox._PartialFile(self._file, 2, 5) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1871 self.assertEqual(proxy.tell(), 0) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1872 self.assertEqual(self._file.tell(), pos) |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1873 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1874 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
|
1875 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
|
1876 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
|
1877 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1878 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
|
1879 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
|
1880 (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
|
1881 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
|
1882 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
|
1883 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1884 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
|
1885 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
|
1886 (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
|
1887 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
|
1888 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
|
1889 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1890 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
|
1891 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
|
1892 (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
|
1893 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
|
1894 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
|
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 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
|
1897 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
|
1898 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
|
1899 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
|
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 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
|
1902 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
|
1903 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
|
1904 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
|
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 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
1907 ## 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
|
1908 |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1909 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
|
1910 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
|
1911 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
|
1912 To: me@my.domain |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1913 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
|
1914 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1915 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
|
1916 """ |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1917 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1918 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
|
1919 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1920 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
|
1921 # 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
|
1922 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
|
1923 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
|
1924 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
|
1925 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
|
1926 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
|
1927 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
|
1928 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
|
1929 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1930 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
|
1931 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
|
1932 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
|
1933 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
|
1934 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
|
1935 os.rmdir(self._dir) |
|
15298
85a509faccc7
Added test for regression on SourceForge bug #117490.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
1936 |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1937 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
|
1938 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
|
1939 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
|
1940 self._counter += 1 |
|
20654
edd9d0b3c47e
SF patch #474590 -- RISC OS support
Guido van Rossum <guido@python.org>
parents:
20013
diff
changeset
|
1941 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
|
1942 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
|
1943 newname = os.path.join(self._dir, dir, filename) |
|
65282
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
1944 with open(tmpname, "w") as fp: |
|
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
1945 self._msgfiles.append(tmpname) |
|
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
1946 if mbox: |
|
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
1947 fp.write(FROM_) |
|
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
1948 fp.write(DUMMY_MESSAGE) |
|
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
|
1949 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
|
1950 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
|
1951 else: |
|
65282
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
1952 with open(newname, "w") as fp: |
|
6fd49d052134
Merged revisions 85401 via svnmerge from
Brian Curtin <brian.curtin@gmail.com>
parents:
59026
diff
changeset
|
1953 fp.write(DUMMY_MESSAGE) |
|
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
|
1954 self._msgfiles.append(newname) |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1955 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
|
1956 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1957 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
|
1958 """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
|
1959 # 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
|
1960 # 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
|
1961 self.mbox = mailbox.Maildir(test_support.TESTFN) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
1962 #self.assertTrue(hasattr(self.mbox, "boxes")) |
|
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
1963 #self.assertTrue(len(self.mbox.boxes) == 0) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1964 self.assertIs(self.mbox.next(), None) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1965 self.assertIs(self.mbox.next(), None) |
|
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
|
1966 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1967 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
|
1968 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
|
1969 self.mbox = mailbox.Maildir(test_support.TESTFN) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
1970 #self.assertTrue(len(self.mbox.boxes) == 1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1971 self.assertIsNot(self.mbox.next(), None) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1972 self.assertIs(self.mbox.next(), None) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1973 self.assertIs(self.mbox.next(), None) |
|
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
|
1974 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1975 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
|
1976 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
|
1977 self.mbox = mailbox.Maildir(test_support.TESTFN) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
1978 #self.assertTrue(len(self.mbox.boxes) == 1) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1979 self.assertIsNot(self.mbox.next(), None) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1980 self.assertIs(self.mbox.next(), None) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1981 self.assertIs(self.mbox.next(), None) |
|
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
|
1982 |
|
a93daafbd13d
Re-write the mailbox test suite to use PyUnit. Cover a lot more ground
Fred Drake <fdrake@acm.org>
parents:
17375
diff
changeset
|
1983 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
|
1984 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
|
1985 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
|
1986 self.mbox = mailbox.Maildir(test_support.TESTFN) |
|
55002
6768b2350c57
convert usage of fail* to assert*
Benjamin Peterson <benjamin@python.org>
parents:
53686
diff
changeset
|
1987 #self.assertTrue(len(self.mbox.boxes) == 2) |
|
57019
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1988 self.assertIsNot(self.mbox.next(), None) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1989 self.assertIsNot(self.mbox.next(), None) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1990 self.assertIs(self.mbox.next(), None) |
|
2913864ddbe9
Use richer assertions in test_mailbox (for better failure messages).
Antoine Pitrou <solipsis@pitrou.net>
parents:
55002
diff
changeset
|
1991 self.assertIs(self.mbox.next(), None) |
|
15298
85a509faccc7
Added test for regression on SourceForge bug #117490.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
1992 |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1993 def test_unix_mbox(self): |
|
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1994 ### should be better! |
|
40689
b23711be2b3e
Use new email module names (#1637162, #1637159, #1637157).
Georg Brandl <georg@python.org>
parents:
40348
diff
changeset
|
1995 import email.parser |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1996 fname = self.createMessage("cur", True) |
|
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1997 n = 0 |
|
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
1998 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
|
1999 email.parser.Parser().parse): |
|
32807
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
2000 n += 1 |
|
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
2001 self.assertEqual(msg["subject"], "Simple Test") |
|
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
2002 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
|
2003 self.assertEqual(n, 1) |
|
4a51cdcf8615
added test for bug #996359.
Skip Montanaro <skip@pobox.com>
parents:
24364
diff
changeset
|
2004 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2005 ## 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
|
2006 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2007 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2008 _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
|
2009 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
|
2010 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
|
2011 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
|
2012 Received: from localhost (localhost [127.0.0.1]) |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
2013 by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17 |
|
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
2014 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
|
2015 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
|
2016 Received: from localhost [127.0.0.1] |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
2017 by localhost with POP3 (fetchmail-6.2.5) |
|
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
2018 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
|
2019 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
|
2020 by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746 |
|
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
2021 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
|
2022 Received: by andy.gregorykjohnson.com (Postfix, from userid 1000) |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
2023 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
|
2024 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
|
2025 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
|
2026 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
|
2027 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
|
2028 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
|
2029 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
|
2030 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
|
2031 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
|
2032 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
|
2033 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2034 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2035 --NMuMz9nt05w80d4+ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2036 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
|
2037 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
|
2038 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2039 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
|
2040 |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
2041 -- |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2042 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
|
2043 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2044 --NMuMz9nt05w80d4+ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2045 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
|
2046 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
|
2047 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
|
2048 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2049 H4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2050 3FYlAAAA |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2051 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2052 --NMuMz9nt05w80d4+-- |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2053 """ |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2054 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2055 _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
|
2056 "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
|
2057 "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
|
2058 "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
|
2059 "Received":"""from localhost (localhost [127.0.0.1]) |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
2060 by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17 |
|
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
2061 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
|
2062 "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
|
2063 "Received":"""from localhost [127.0.0.1] |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
2064 by localhost with POP3 (fetchmail-6.2.5) |
|
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
2065 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
|
2066 "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
|
2067 by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746 |
|
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
2068 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
|
2069 "Received":"""by andy.gregorykjohnson.com (Postfix, from userid 1000) |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
2070 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
|
2071 "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
|
2072 "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
|
2073 "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
|
2074 "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
|
2075 "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
|
2076 "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
|
2077 "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
|
2078 "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
|
2079 |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2080 _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
|
2081 |
|
37917
fb1837e88e72
Whitespace normalization.
Tim Peters <tim.peters@gmail.com>
parents:
37916
diff
changeset
|
2082 -- |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2083 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
|
2084 """, |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2085 """H4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2086 3FYlAAAA |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2087 """) |
|
15298
85a509faccc7
Added test for regression on SourceForge bug #117490.
Fred Drake <fdrake@acm.org>
parents:
diff
changeset
|
2088 |
|
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
|
2089 |
|
20013
e3184e46303b
Change the PyUnit-based tests to use the test_main() approach. This
Fred Drake <fdrake@acm.org>
parents:
18165
diff
changeset
|
2090 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
|
2091 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
|
2092 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
|
2093 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
|
2094 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
|
2095 MaildirTestCase) |
|
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2096 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
|
2097 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
|
2098 |
|
e3184e46303b
Change the PyUnit-based tests to use the test_main() approach. This
Fred Drake <fdrake@acm.org>
parents:
18165
diff
changeset
|
2099 |
|
37916
de4a5f55e21d
Add Gregory K. Johnson's revised version of mailbox.py (funded by
Andrew M. Kuchling <amk@amk.ca>
parents:
32807
diff
changeset
|
2100 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
|
2101 test_main() |
