@@ -227,10 +227,19 @@ def test_parse_ns_headers_special_names(self):
227227        self .assertEqual (parse_ns_headers ([hdr ]), expected )
228228
229229    def  test_join_header_words (self ):
230-         joined  =  join_header_words ([[("foo" , None ), ("bar" , "baz" )]])
231-         self .assertEqual (joined , "foo; bar=baz" )
232- 
233-         self .assertEqual (join_header_words ([[]]), "" )
230+         for  src , expected  in  [
231+             ([[("foo" , None ), ("bar" , "baz" )]], "foo; bar=baz" ),
232+             (([]), "" ),
233+             (([[]]), "" ),
234+             (([[("a" , "_" )]]), "a=_" ),
235+             (([[("a" , ";" )]]), 'a=";"' ),
236+             ([[("n" , None ), ("foo" , "foo;_" )], [("bar" , "foo_bar" )]],
237+              'n; foo="foo;_", bar=foo_bar' ),
238+             ([[("n" , "m" ), ("foo" , None )], [("bar" , "foo_bar" )]],
239+              'n=m; foo, bar=foo_bar' ),
240+         ]:
241+             with  self .subTest (src = src ):
242+                 self .assertEqual (join_header_words (src ), expected )
234243
235244    def  test_split_header_words (self ):
236245        tests  =  [
@@ -286,7 +295,10 @@ def test_roundtrip(self):
286295             'foo=bar; port="80,81"; discard, bar=baz' ),
287296
288297            (r'Basic realm="\"foo\\\\bar\""' ,
289-              r'Basic; realm="\"foo\\\\bar\""' )
298+              r'Basic; realm="\"foo\\\\bar\""' ),
299+ 
300+             ('n; foo="foo;_", bar=foo!_' ,
301+              'n; foo="foo;_", bar="foo!_"' ),
290302            ]
291303
292304        for  arg , expect  in  tests :
0 commit comments