Ejemplo n.º 1
0
 def test_attfncontqs(self):
     disptype, params = multipart.parse_content_disposition(
         r'attachment; filename*0="foo"; filename*1="\b\a\r.html"')
     self.assertEqual('attachment', disptype)
     self.assertEqual({
         'filename*0': 'foo',
         'filename*1': 'bar.html'
     }, params)
Ejemplo n.º 2
0
 def test_attfnboth3(self):
     disptype, params = multipart.parse_content_disposition(
         "attachment; filename*0*=ISO-8859-15''euro-sign%3d%a4;"
         " filename*=ISO-8859-1''currency-sign%3d%a4")
     self.assertEqual('attachment', disptype)
     self.assertEqual(
         {
             'filename*': u'currency-sign=¤',
             'filename*0*': "ISO-8859-15''euro-sign%3d%a4"
         }, params)
Ejemplo n.º 3
0
 def test_attfnboth2(self):
     disptype, params = multipart.parse_content_disposition(
         "attachment; filename*=UTF-8''foo-%c3%a4.html;"
         ' filename="foo-ae.html"')
     self.assertEqual('attachment', disptype)
     self.assertEqual(
         {
             'filename': 'foo-ae.html',
             'filename*': u'foo-ä.html'
         }, params)
Ejemplo n.º 4
0
 def test_attfncontenc(self):
     disptype, params = multipart.parse_content_disposition(
         'attachment; filename*0*=UTF-8'
         'foo-%c3%a4; filename*1=".html"')
     self.assertEqual('attachment', disptype)
     self.assertEqual(
         {
             'filename*0*': 'UTF-8'
             'foo-%c3%a4',
             'filename*1': '.html'
         }, params)
Ejemplo n.º 5
0
 def test_attwithfn2231utf8comp(self):
     disptype, params = multipart.parse_content_disposition(
         "attachment; filename*=UTF-8''foo-a%cc%88.html")
     self.assertEqual('attachment', disptype)
     self.assertEqual({'filename*': u'foo-ä.html'}, params)
Ejemplo n.º 6
0
 def test_attmissingdisposition4(self):
     with self.assertWarns(multipart.BadContentDispositionHeader):
         disptype, params = multipart.parse_content_disposition(
             'filename=foo.html, filename=bar.html')
     self.assertEqual(None, disptype)
     self.assertEqual({}, params)
Ejemplo n.º 7
0
 def test_attwithfn2231noc(self):
     disptype, params = multipart.parse_content_disposition(
         "attachment; filename*=''foo-%c3%a4-%e2%82%ac.html")
     self.assertEqual('attachment', disptype)
     self.assertEqual({'filename*': u'foo-ä-€.html'}, params)
Ejemplo n.º 8
0
 def test_attwithfn2231dpct(self):
     disptype, params = multipart.parse_content_disposition(
         "attachment; filename*=UTF-8''A-%2541.html")
     self.assertEqual('attachment', disptype)
     self.assertEqual({'filename*': 'A-%41.html'}, params)
Ejemplo n.º 9
0
 def test_attfncont(self):
     disptype, params = multipart.parse_content_disposition(
         'attachment; filename*0="foo."; filename*1="html"')
     self.assertEqual('attachment', disptype)
     self.assertEqual({'filename*0': 'foo.', 'filename*1': 'html'}, params)
Ejemplo n.º 10
0
 def test_attwithfn2231ws3(self):
     disptype, params = multipart.parse_content_disposition(
         "attachment; filename* =UTF-8''foo-%c3%a4.html")
     self.assertEqual('attachment', disptype)
     self.assertEqual({'filename*': u'foo-ä.html'}, params)
Ejemplo n.º 11
0
 def test_attwithfn2231singleqmissing(self):
     with self.assertWarns(multipart.BadContentDispositionParam):
         disptype, params = multipart.parse_content_disposition(
             "attachment; filename*=UTF-8'foo-%c3%a4.html")
     self.assertEqual('attachment', disptype)
     self.assertEqual({}, params)
Ejemplo n.º 12
0
 def test_attreversed(self):
     with self.assertWarns(multipart.BadContentDispositionHeader):
         disptype, params = multipart.parse_content_disposition(
             'filename=foo.html; attachment')
     self.assertEqual(None, disptype)
     self.assertEqual({}, params)
Ejemplo n.º 13
0
 def test_attconfusedparam(self):
     disptype, params = multipart.parse_content_disposition(
         'attachment; xfilename=foo.html')
     self.assertEqual('attachment', disptype)
     self.assertEqual({'xfilename': 'foo.html'}, params)
Ejemplo n.º 14
0
 def test_attmultinstances(self):
     with self.assertWarns(multipart.BadContentDispositionHeader):
         disptype, params = multipart.parse_content_disposition(
             'attachment; filename=foo.html, attachment; filename=bar.html')
     self.assertEqual(None, disptype)
     self.assertEqual({}, params)
Ejemplo n.º 15
0
 def test_attmissingdelim3(self):
     with self.assertWarns(multipart.BadContentDispositionHeader):
         disptype, params = multipart.parse_content_disposition(
             'attachment filename=bar')
     self.assertEqual(None, disptype)
     self.assertEqual({}, params)
Ejemplo n.º 16
0
 def test_attbrokenquotedfn3(self):
     with self.assertWarns(multipart.BadContentDispositionHeader):
         disptype, params = multipart.parse_content_disposition(
             'attachment; filename=foo"bar;baz"qux')
     self.assertEqual(None, disptype)
     self.assertEqual({}, params)
Ejemplo n.º 17
0
 def test_doublecolon(self):
     with self.assertWarns(multipart.BadContentDispositionHeader):
         disptype, params = multipart.parse_content_disposition(
             ': inline; attachment; filename=foo.html')
     self.assertEqual(None, disptype)
     self.assertEqual({}, params)
Ejemplo n.º 18
0
 def test_emptydisposition(self):
     with self.assertWarns(multipart.BadContentDispositionHeader):
         disptype, params = multipart.parse_content_disposition(
             '; filename=foo.html')
     self.assertEqual(None, disptype)
     self.assertEqual({}, params)
Ejemplo n.º 19
0
 def test_attwithfn2231utf8_bad(self):
     with self.assertWarns(multipart.BadContentDispositionParam):
         disptype, params = multipart.parse_content_disposition(
             "attachment; filename*=iso-8859-1''foo-%c3%a4-%e2%82%ac.html")
     self.assertEqual('attachment', disptype)
     self.assertEqual({}, params)
Ejemplo n.º 20
0
 def test_attabspathwin(self):
     disptype, params = multipart.parse_content_disposition(
         'attachment; filename="\\foo.html"')
     self.assertEqual('attachment', disptype)
     self.assertEqual({'filename': 'foo.html'}, params)
Ejemplo n.º 21
0
 def test_attwithfn2231iso_bad(self):
     with self.assertWarns(multipart.BadContentDispositionParam):
         disptype, params = multipart.parse_content_disposition(
             "attachment; filename*=utf-8''foo-%E4.html")
     self.assertEqual('attachment', disptype)
     self.assertEqual({}, params)
Ejemplo n.º 22
0
 def test_attmdate(self):
     disptype, params = multipart.parse_content_disposition(
         'attachment; modification-date="Wed, 12 Feb 1997 16:29:51 -0500"')
     self.assertEqual('attachment', disptype)
     self.assertEqual(
         {'modification-date': 'Wed, 12 Feb 1997 16:29:51 -0500'}, params)
Ejemplo n.º 23
0
 def test_attwithfn2231quot2(self):
     with self.assertWarns(multipart.BadContentDispositionParam):
         disptype, params = multipart.parse_content_disposition(
             "attachment; filename*=\"foo%20bar.html\"")
     self.assertEqual('attachment', disptype)
     self.assertEqual({}, params)
Ejemplo n.º 24
0
 def test_attfnbrokentokenutf(self):
     with self.assertWarns(multipart.BadContentDispositionHeader):
         disptype, params = multipart.parse_content_disposition(
             'attachment; filename=foo-ä.html')
     self.assertEqual(None, disptype)
     self.assertEqual({}, params)
Ejemplo n.º 25
0
 def test_attwithfn2231nbadpct2(self):
     with self.assertWarns(multipart.BadContentDispositionParam):
         disptype, params = multipart.parse_content_disposition(
             "attachment; filename*=UTF-8''f%oo.html")
     self.assertEqual('attachment', disptype)
     self.assertEqual({}, params)
Ejemplo n.º 26
0
 def test_dispextbadfn(self):
     disptype, params = multipart.parse_content_disposition(
         'attachment; example="filename=example.txt"')
     self.assertEqual('attachment', disptype)
     self.assertEqual({'example': 'filename=example.txt'}, params)
Ejemplo n.º 27
0
 def test_attwithfn2231abspathdisguised(self):
     disptype, params = multipart.parse_content_disposition(
         "attachment; filename*=UTF-8''%5cfoo.html")
     self.assertEqual('attachment', disptype)
     self.assertEqual({'filename*': '\\foo.html'}, params)
Ejemplo n.º 28
0
 def test_attwithisofn2231iso(self):
     disptype, params = multipart.parse_content_disposition(
         "attachment; filename*=iso-8859-1''foo-%E4.html")
     self.assertEqual('attachment', disptype)
     self.assertEqual({'filename*': u'foo-ä.html'}, params)
Ejemplo n.º 29
0
 def test_dispext(self):
     disptype, params = multipart.parse_content_disposition('foobar')
     self.assertEqual('foobar', disptype)
     self.assertEqual({}, params)
Ejemplo n.º 30
0
 def test_attmissingdisposition3(self):
     with self.assertWarns(multipart.BadContentDispositionHeader):
         disptype, params = multipart.parse_content_disposition(
             '"foo; filename=bar;baz"; filename=qux')
     self.assertEqual(None, disptype)
     self.assertEqual({}, params)