@@ -129,14 +129,19 @@ def test_defects_is_tuple(self):
129129@parameterize
130130class TestUnstructuredHeader (TestHeaderBase ):
131131
132- def defects_as_value (self , source , decoded , defects ):
132+ def string_as_value (self , source , decoded , defects = (), folded = None ):
133+ folded = source if folded is None else folded
133134 for name in ('Subject' , 'X-Test' ):
134135 with self .subTest (name = name ):
135136 h = self .make_header (name , source )
136137 self .assertEqual (h , decoded )
137138 self .assertDefectsEqual (h .defects , defects )
139+ prefix = name + ':' + (' ' if source else '' )
140+ self .assertEqual (h .fold (policy = policy .default ), prefix + folded + '\n ' )
141+
142+ string_params = {
143+ 'empty' : ('' , '' ),
138144
139- defects_params = {
140145 'valid_encoded_word' : (
141146 '=?utf-8?q?caf=C3=A9?=' ,
142147 'café' ,
@@ -145,22 +150,26 @@ def defects_as_value(self, source, decoded, defects):
145150 'invalid_base64_padding' : (
146151 '=?utf-8?b?YQ?=' ,
147152 'a' ,
148- [errors .InvalidBase64PaddingDefect ]),
153+ [errors .InvalidBase64PaddingDefect ],
154+ 'a' ),
149155
150156 'invalid_base64_characters' : (
151157 '=?utf-8?b?Y!Q==?=' ,
152158 'a' ,
153- [errors .InvalidBase64CharactersDefect ]),
159+ [errors .InvalidBase64CharactersDefect ],
160+ 'a' ),
154161
155162 'undecodable_bytes' : (
156163 '=?utf-8?q?=FF?=' ,
157164 '\ufffd ' ,
158- [errors .UndecodableBytesDefect ] * 2 ),
165+ [errors .UndecodableBytesDefect ] * 2 ,
166+ '=?unknown-8bit?q?=FF?=' ),
159167
160168 'unknown_charset' : (
161169 '=?invalid-charset?q?word?=' ,
162170 'word' ,
163- [errors .CharsetError ]),
171+ [errors .CharsetError ],
172+ 'word' ),
164173
165174 'non_printable_text' : (
166175 'text\x00 value' ,
@@ -170,28 +179,14 @@ def defects_as_value(self, source, decoded, defects):
170179 'combined_defects' : (
171180 'prefix=?utf-8?b?YQ?=' ,
172181 'prefixa' ,
173- [errors .InvalidHeaderDefect , errors .InvalidBase64PaddingDefect ]),
182+ [errors .InvalidHeaderDefect , errors .InvalidBase64PaddingDefect ],
183+ 'prefixa' ),
174184
175185 'missing_whitespace' : (
176186 'prefix=?utf-8?q?word?=' ,
177187 'prefixword' ,
178- [errors .InvalidHeaderDefect ]),
179- }
180-
181- def string_as_value (self ,
182- source ,
183- decoded ,
184- * args ):
185- l = len (args )
186- defects = args [0 ] if l > 0 else []
187- header = 'Subject:' + (' ' if source else '' )
188- folded = header + (args [1 ] if l > 1 else source ) + '\n '
189- h = self .make_header ('Subject' , source )
190- self .assertEqual (h , decoded )
191- self .assertDefectsEqual (h .defects , defects )
192- self .assertEqual (h .fold (policy = policy .default ), folded )
193-
194- string_params = {
188+ [errors .InvalidHeaderDefect ],
189+ 'prefixword' ),
195190
196191 'rfc2047_simple_quopri' : (
197192 '=?utf-8?q?this_is_a_test?=' ,
0 commit comments