diff --git a/flanker/mime/message/headers/wrappers.py b/flanker/mime/message/headers/wrappers.py index 87aab05e..6e02a663 100644 --- a/flanker/mime/message/headers/wrappers.py +++ b/flanker/mime/message/headers/wrappers.py @@ -100,7 +100,11 @@ def get_boundary_line(self, final=False): self.get_boundary(), "--" if final else "") def get_charset(self): - return self.params.get("charset", 'ascii').lower() + default = 'ascii' if self.main == 'text' else None + c = self.params.get("charset", default) + if c: + c = c.lower() + return c def set_charset(self, value): self.params["charset"] = value.lower() diff --git a/setup.py b/setup.py index ed38ffb4..8ecbb10d 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setup(name='flanker', - version='0.4.21', + version='0.4.22', description='Mailgun Parsing Tools', long_description=open('README.rst').read(), classifiers=[], diff --git a/tests/mime/message/headers/wrappers_test.py b/tests/mime/message/headers/wrappers_test.py new file mode 100644 index 00000000..e59c1dff --- /dev/null +++ b/tests/mime/message/headers/wrappers_test.py @@ -0,0 +1,10 @@ +from nose.tools import eq_ + +from flanker.mime.message.headers.wrappers import ContentType + +def charset_test(): + c = ContentType('text', 'plain') + eq_('ascii', c.get_charset()) + + c = ContentType('application', 'pdf') + eq_(None, c.get_charset())