File tree Expand file tree Collapse file tree 1 file changed +23
-0
lines changed
Expand file tree Collapse file tree 1 file changed +23
-0
lines changed Original file line number Diff line number Diff line change @@ -5008,6 +5008,29 @@ def test_unicode_charset_name(self):
50085008 self .assertEqual (str (charset ), 'us-ascii' )
50095009 self .assertRaises (errors .CharsetError , Charset , 'asc\xff ii' )
50105010
5011+ def test_viscii_not_registered (self ):
5012+ # viscii has no Python codec, so it should not be in CHARSETS.
5013+ from email .charset import CHARSETS
5014+ self .assertNotIn ('viscii' , CHARSETS )
5015+
5016+ def test_all_charsets_have_codecs (self ):
5017+ # Every charset registered in CHARSETS should have a resolvable
5018+ # Python codec (via CODEC_MAP or by name).
5019+ import codecs
5020+ from email .charset import CHARSETS , CODEC_MAP
5021+ for name in CHARSETS :
5022+ codec_name = CODEC_MAP .get (name , name )
5023+ if codec_name is None :
5024+ continue
5025+ with self .subTest (charset = name , codec = codec_name ):
5026+ try :
5027+ codecs .lookup (codec_name )
5028+ except LookupError :
5029+ self .fail (
5030+ f"charset { name !r} maps to codec { codec_name !r} "
5031+ f"which is not available"
5032+ )
5033+
50115034
50125035
50135036# Test multilingual MIME headers.
You can’t perform that action at this time.
0 commit comments