@@ -452,6 +452,31 @@ def test_bad_magic(self):
452452 finally :
453453 os_helper .unlink (filename )
454454
455+ def test_magic_ignores_case (self ):
456+ filename = os_helper .TESTFN
457+ self .addCleanup (os_helper .unlink , filename )
458+ for magic in ("# Netscape HTTP Cookie File" ,
459+ "# netscape http cookie file" ,
460+ "# HTTP Cookie File" ,
461+ "# http cookie file" ):
462+ with self .subTest (magic = magic ):
463+ with open (filename , "w" ) as f :
464+ f .write (magic + "\n " )
465+ MozillaCookieJar ().load (filename )
466+
467+ def test_magic_is_not_unicode (self ):
468+ # Unicode case folding must not be used: 'ſ' (U+017F) and 'K'
469+ # (U+212A) are case-insensitively equal to 's' and 'k' in Unicode.
470+ filename = os_helper .TESTFN
471+ self .addCleanup (os_helper .unlink , filename )
472+ for magic in ("# Netſcape HTTP Cookie File" ,
473+ "# Netscape HTTP CooKie File" ):
474+ with self .subTest (magic = magic ):
475+ with open (filename , "w" , encoding = "utf-8" ) as f :
476+ f .write (magic + "\n " )
477+ self .assertRaises (LoadError , MozillaCookieJar ().load , filename )
478+
479+
455480class CookieTests (unittest .TestCase ):
456481 # XXX
457482 # Get rid of string comparisons where not actually testing str / repr.
0 commit comments