Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/email/mime/text.py: 43%

14 statements  

« prev     ^ index     » next       coverage.py v7.0.5, created at 2023-01-17 06:13 +0000

1# Copyright (C) 2001-2006 Python Software Foundation 

2# Author: Barry Warsaw 

3# Contact: email-sig@python.org 

4 

5"""Class representing text/* type MIME documents.""" 

6 

7__all__ = ['MIMEText'] 

8 

9from email.charset import Charset 

10from email.mime.nonmultipart import MIMENonMultipart 

11 

12 

13 

14class MIMEText(MIMENonMultipart): 

15 """Class for generating text/* type MIME documents.""" 

16 

17 def __init__(self, _text, _subtype='plain', _charset=None, *, policy=None): 

18 """Create a text/* type MIME document. 

19 

20 _text is the string for this message object. 

21 

22 _subtype is the MIME sub content type, defaulting to "plain". 

23 

24 _charset is the character set parameter added to the Content-Type 

25 header. This defaults to "us-ascii". Note that as a side-effect, the 

26 Content-Transfer-Encoding header will also be set. 

27 """ 

28 

29 # If no _charset was specified, check to see if there are non-ascii 

30 # characters present. If not, use 'us-ascii', otherwise use utf-8. 

31 # XXX: This can be removed once #7304 is fixed. 

32 if _charset is None: 

33 try: 

34 _text.encode('us-ascii') 

35 _charset = 'us-ascii' 

36 except UnicodeEncodeError: 

37 _charset = 'utf-8' 

38 

39 MIMENonMultipart.__init__(self, 'text', _subtype, policy=policy, 

40 **{'charset': str(_charset)}) 

41 

42 self.set_payload(_text, _charset)