diff --git a/Lib/email/Message.py b/Lib/email/Message.py index b466f396d92..88fd78617fd 100644 --- a/Lib/email/Message.py +++ b/Lib/email/Message.py @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2004 Python Software Foundation +# Copyright (C) 2001-2006 Python Software Foundation # Author: Barry Warsaw # Contact: email-sig@python.org @@ -701,10 +701,14 @@ def get_filename(self, failobj=None): """Return the filename associated with the payload if present. The filename is extracted from the Content-Disposition header's - `filename' parameter, and it is unquoted. + `filename' parameter, and it is unquoted. If that header is missing + the `filename' parameter, this method falls back to looking for the + `name' parameter. """ missing = object() filename = self.get_param('filename', missing, 'content-disposition') + if filename is missing: + filename = self.get_param('name', missing, 'content-disposition') if filename is missing: return failobj return Utils.collapse_rfc2231_value(filename).strip() diff --git a/Lib/email/__init__.py b/Lib/email/__init__.py index e622b3f9958..e5c0e2e9d58 100644 --- a/Lib/email/__init__.py +++ b/Lib/email/__init__.py @@ -1,10 +1,10 @@ -# Copyright (C) 2001-2004 Python Software Foundation +# Copyright (C) 2001-2006 Python Software Foundation # Author: Barry Warsaw # Contact: email-sig@python.org """A package for parsing, handling, and generating email messages.""" -__version__ = '3.0+' +__version__ = '3.0.1' __all__ = [ 'base64MIME', diff --git a/Lib/email/test/data/msg_44.txt b/Lib/email/test/data/msg_44.txt new file mode 100644 index 00000000000..ae462a61be6 --- /dev/null +++ b/Lib/email/test/data/msg_44.txt @@ -0,0 +1,35 @@ +Return-Path: +Delivered-To: barry@python.org +Received: by mail.python.org (Postfix, from userid 889) + id C2BF0D37C6; Tue, 11 Sep 2001 00:05:05 -0400 (EDT) +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="h90VIIIKmx" +Content-Transfer-Encoding: 7bit +Message-ID: <15261.36209.358846.118674@anthem.python.org> +From: barry@python.org (Barry A. Warsaw) +To: barry@python.org +Subject: a simple multipart +Date: Tue, 11 Sep 2001 00:05:05 -0400 +X-Mailer: VM 6.95 under 21.4 (patch 4) "Artificial Intelligence" XEmacs Lucid +X-Attribution: BAW +X-Oblique-Strategy: Make a door into a window + + +--h90VIIIKmx +Content-Type: text/plain +Content-Disposition: inline; name="msg.txt" +Content-Transfer-Encoding: 7bit + +a simple kind of mirror +to reflect upon our own + +--h90VIIIKmx +Content-Type: text/plain +Content-Disposition: inline; name="msg.txt" +Content-Transfer-Encoding: 7bit + +a simple kind of mirror +to reflect upon our own + +--h90VIIIKmx-- + diff --git a/Lib/email/test/test_email.py b/Lib/email/test/test_email.py index 2f184fd5611..c78e2fd4a5c 100644 --- a/Lib/email/test/test_email.py +++ b/Lib/email/test/test_email.py @@ -1,4 +1,4 @@ -# Copyright (C) 2001-2004 Python Software Foundation +# Copyright (C) 2001-2006 Python Software Foundation # Contact: email-sig@python.org # email package unit tests @@ -147,6 +147,13 @@ def test_get_filename(self): subpart = msg.get_payload(1) eq(subpart.get_filename(), 'dingusfish.gif') + def test_get_filename_with_name_parameter(self): + eq = self.assertEqual + + msg = self._msgobj('msg_44.txt') + filenames = [p.get_filename() for p in msg.get_payload()] + eq(filenames, ['msg.txt', 'msg.txt']) + def test_get_boundary(self): eq = self.assertEqual msg = self._msgobj('msg_07.txt')