@@ -342,6 +342,46 @@ def test_set_text_charset_latin_1(self):
342342 self .assertEqual (m .get_payload (decode = True ).decode ('utf-8' ), content )
343343 self .assertEqual (m .get_content (), content )
344344
345+ def test_set_text_charset_shift_jis (self ):
346+ m = self ._make_message ()
347+ content = "\u65e5 \u672c \u8a9e \n "
348+ raw_data_manager .set_content (m , content , charset = 'shift_jis' )
349+ self .assertEqual (m ['Content-Type' ], 'text/plain; charset="iso-2022-jp"' )
350+ self .assertEqual (m .get_payload (decode = True ), content .encode ('iso-2022-jp' ))
351+ self .assertEqual (m .get_content (), content )
352+ self .assertEqual (str (m ), textwrap .dedent ("""\
353+ Content-Type: text/plain; charset="iso-2022-jp"
354+ Content-Transfer-Encoding: 7bit
355+
356+ \x1b $BF|K\\ 8l\x1b (B
357+ """ ))
358+ self .assertEqual (bytes (m ), textwrap .dedent ("""\
359+ Content-Type: text/plain; charset="iso-2022-jp"
360+ Content-Transfer-Encoding: 7bit
361+
362+ \u65e5 \u672c \u8a9e
363+ """ ).encode ('iso-2022-jp' ))
364+
365+ def test_set_text_charset_euc_jp (self ):
366+ m = self ._make_message ()
367+ content = "\u65e5 \u672c \u8a9e \n "
368+ raw_data_manager .set_content (m , content , charset = 'euc-jp' )
369+ self .assertEqual (m ['Content-Type' ], 'text/plain; charset="iso-2022-jp"' )
370+ self .assertEqual (m .get_payload (decode = True ), content .encode ('iso-2022-jp' ))
371+ self .assertEqual (m .get_content (), content )
372+ self .assertEqual (str (m ), textwrap .dedent ("""\
373+ Content-Type: text/plain; charset="iso-2022-jp"
374+ Content-Transfer-Encoding: 7bit
375+
376+ \x1b $BF|K\\ 8l\x1b (B
377+ """ ))
378+ self .assertEqual (bytes (m ), textwrap .dedent ("""\
379+ Content-Type: text/plain; charset="iso-2022-jp"
380+ Content-Transfer-Encoding: 7bit
381+
382+ \u65e5 \u672c \u8a9e
383+ """ ).encode ('iso-2022-jp' ))
384+
345385 def test_set_text_plain_long_line_heuristics (self ):
346386 m = self ._make_message ()
347387 content = ("Simple but long message that is over 78 characters"
0 commit comments