mirror of
https://github.com/python/cpython.git
synced 2025-08-01 07:33:08 +00:00
[Bug #1569790] mailbox.Maildir.get_folder() loses factory information
Both the Maildir and MH classes had this bug; the patch fixes both classes and adds a test. Will backport to 25-maint.
This commit is contained in:
parent
038cad7ee4
commit
a3e5d3757c
3 changed files with 35 additions and 5 deletions
|
@ -673,6 +673,19 @@ class TestMaildir(TestMailbox):
|
|||
self._box.lock()
|
||||
self._box.unlock()
|
||||
|
||||
def test_folder (self):
|
||||
# Test for bug #1569790: verify that folders returned by .get_folder()
|
||||
# use the same factory function.
|
||||
def dummy_factory (s):
|
||||
return None
|
||||
box = self._factory(self._path, factory=dummy_factory)
|
||||
folder = box.add_folder('folder1')
|
||||
self.assert_(folder._factory is dummy_factory)
|
||||
|
||||
folder1_alias = box.get_folder('folder1')
|
||||
self.assert_(folder1_alias._factory is dummy_factory)
|
||||
|
||||
|
||||
|
||||
class _TestMboxMMDF(TestMailbox):
|
||||
|
||||
|
@ -789,7 +802,11 @@ class TestMH(TestMailbox):
|
|||
|
||||
def test_get_folder(self):
|
||||
# Open folders
|
||||
self._box.add_folder('foo.bar')
|
||||
def dummy_factory (s):
|
||||
return None
|
||||
self._box = self._factory(self._path, dummy_factory)
|
||||
|
||||
new_folder = self._box.add_folder('foo.bar')
|
||||
folder0 = self._box.get_folder('foo.bar')
|
||||
folder0.add(self._template % 'bar')
|
||||
self.assert_(os.path.isdir(os.path.join(self._path, 'foo.bar')))
|
||||
|
@ -797,6 +814,11 @@ class TestMH(TestMailbox):
|
|||
self.assert_(folder1.get_string(folder1.keys()[0]) == \
|
||||
self._template % 'bar')
|
||||
|
||||
# Test for bug #1569790: verify that folders returned by .get_folder()
|
||||
# use the same factory function.
|
||||
self.assert_(new_folder._factory is self._box._factory)
|
||||
self.assert_(folder0._factory is self._box._factory)
|
||||
|
||||
def test_add_and_remove_folders(self):
|
||||
# Delete folders
|
||||
self._box.add_folder('one')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue