Lines Matching +full:form +full:- +full:data
44 fp = BytesIO(buf.encode('latin-1')) # FieldStorage expects bytes
46 env['CONTENT_TYPE'] = 'application/x-www-form-urlencoded'
75 ("x=1&y=2.0&z=2-3.%2b0", {'x': ['1'], 'y': ['2.0'], 'z': ['2-3.+0']}),
76 …ustomer&order_id=0bb2e248638833d48cb7fed300000f1b&expire=964546263&lobale=en-US&kid=130003.300038&…
81 'lobale': ['en-US'],
106 def gen_result(data, environ): argument
107 encoding = 'latin-1'
108 fake_stdin = BytesIO(data.encode(encoding))
110 form = cgi.FieldStorage(fp=fake_stdin, environ=environ, encoding=encoding)
113 for k, v in dict(form).items():
114 result[k] = isinstance(v, list) and form.getlist(k) or v.value
123 'CONTENT-LENGTH': '558'}
130 POSTDATA = '''--JfISa01
131 Content-Disposition: form-data; name="submit-name"
135 --JfISa01--
140 expected = {'submit-name': ['just a string\n']}
145 POSTDATA = """--JfISa01
146 Content-Disposition: form-data; name="submit-name"
147 Content-Length: 3
150 --JfISa01"""
153 'CONTENT-LENGTH': str(len(POSTDATA.encode('utf8')))}
156 expected = {'submit-name': ["\udce2\udc98\udc83"]}
159 result["submit-name"][0].encode('utf8', 'surrogateescape'))
170 self.assertRaises(TypeError, cgi.FieldStorage, "not-a-file-obj",
173 fs = cgi.FieldStorage(headers={'content-type':'text/plain'})
205 ("x=1;y=2.0;z=2-3.%2b0", {'x': ['1'], 'y': ['2.0'], 'z': ['2-3.+0']}),
245 # non-GET/HEAD requests
282 'CONTENT_TYPE': 'multipart/form-data; boundary={}'.format(BOUNDARY),
284 fp = BytesIO(POSTDATA.encode('latin-1'))
285 fs = cgi.FieldStorage(fp, environ=env, encoding="latin-1")
299 'CONTENT_TYPE': 'multipart/form-data; boundary={}'.format(BOUNDARY),
301 # Add some leading whitespace to our post data that will cause the
303 fp = BytesIO(b"\r\n" + POSTDATA.encode('latin-1'))
304 fs = cgi.FieldStorage(fp, environ=env, encoding="latin-1")
318 'CONTENT_TYPE': 'multipart/form-data; boundary={}'.format(BOUNDARY),
320 for encoding in ['iso-8859-1','utf-8']:
335 data = """---123
336 Content-Disposition: form-data; name="upload"; filename="fake.txt"
337 Content-Type: text/plain
340 ---123--
343 'CONTENT_LENGTH': str(len(data)),
344 'CONTENT_TYPE': 'multipart/form-data; boundary=-123',
347 self.assertEqual(gen_result(data, environ),
349 check('x' * (maxline - 1))
350 check('x' * (maxline - 1) + '\r')
351 check('x' * (maxline - 1) + '\r' + 'y' * (maxline - 1))
357 'CONTENT_TYPE': 'multipart/form-data; boundary={}'.format(BOUNDARY_W3),
359 fp = BytesIO(POSTDATA_W3.encode('latin-1'))
360 fs = cgi.FieldStorage(fp, environ=env, encoding="latin-1")
362 self.assertEqual(fs.list[0].name, 'submit-name')
376 POSTDATA = """--JfISa01
377 Content-Disposition: form-data; name="submit-name"
378 Content-Length: 5
381 --JfISa01"""
384 'CONTENT_TYPE': 'multipart/form-data; boundary={}'.format(BOUNDARY),
386 fp = BytesIO(POSTDATA.encode('latin-1'))
387 fs = cgi.FieldStorage(fp, environ=env, encoding="latin-1")
389 self.assertEqual(fs.list[0].name, 'submit-name')
393 fp = BytesIO(b"""--MyBoundary
394 Content-Disposition: form-data; name="my-arg"; filename="foo"
398 --MyBoundary--
402 "CONTENT_TYPE": "multipart/form-data; boundary=MyBoundary",
407 self.assertEqual(len(fields["my-arg"].file.read()), 5)
427 data = "key2=value2x&key3=value3&key4=value4"
429 'CONTENT_LENGTH': str(len(data)),
430 'CONTENT_TYPE': 'application/x-www-form-urlencoded',
434 v = gen_result(data, environ)
438 # For application/x-www-form-urlencoded
439 data = '&'.join(['a=a']*11)
441 'CONTENT_LENGTH': str(len(data)),
442 'CONTENT_TYPE': 'application/x-www-form-urlencoded',
448 fp=BytesIO(data.encode()),
453 # For multipart/form-data
454 data = """---123
455 Content-Disposition: form-data; name="a"
458 ---123
459 Content-Type: application/x-www-form-urlencoded
462 ---123
463 Content-Type: application/x-www-form-urlencoded
466 ---123--
469 'CONTENT_LENGTH': str(len(data)),
470 'CONTENT_TYPE': 'multipart/form-data; boundary=-123',
481 fp=BytesIO(data.encode()),
486 fp=BytesIO(data.encode()),
492 data = """---123
493 Content-Disposition: form-data; name="key2"
496 ---123
497 Content-Disposition: form-data; name="key3"
500 ---123
501 Content-Disposition: form-data; name="key4"
504 ---123--
507 'CONTENT_LENGTH': str(len(data)),
508 'CONTENT_TYPE': 'multipart/form-data; boundary=-123',
512 v = gen_result(data, environ)
516 data = """---123
517 Content-Disposition: form-data; name="key2"
520 ---123
521 Content-Disposition: form-data; name="key3"
524 ---123
525 Content-Disposition: form-data; name="key4"
528 ---123
529 Content-Disposition: form-data; name="upload"; filename="fake.txt"
530 Content-Type: text/plain
534 ---123--
537 'CONTENT_LENGTH': str(len(data)),
538 'CONTENT_TYPE': 'multipart/form-data; boundary=-123',
546 v = gen_result(data, environ)
557 cgi.parse_header("text/plain;charset=us-ascii"),
558 ("text/plain", {"charset": "us-ascii"}))
560 cgi.parse_header('text/plain ; charset="us-ascii"'),
561 ("text/plain", {"charset": "us-ascii"}))
563 cgi.parse_header('text/plain ; charset="us-ascii"; another=opt'),
564 ("text/plain", {"charset": "us-ascii", "another": "opt"}))
575 cgi.parse_header('form-data; name="files"; filename="fo\\"o;bar"'),
576 ("form-data", {"name": "files", "filename": 'fo"o;bar'}))
585 BOUNDARY = "---------------------------721837373350705526688164684"
587 POSTDATA = """-----------------------------721837373350705526688164684
588 Content-Disposition: form-data; name="id"
591 -----------------------------721837373350705526688164684
592 Content-Disposition: form-data; name="title"
595 -----------------------------721837373350705526688164684
596 Content-Disposition: form-data; name="file"; filename="test.txt"
597 Content-Type: text/plain
601 -----------------------------721837373350705526688164684
602 Content-Disposition: form-data; name="submit"
605 -----------------------------721837373350705526688164684--
608 POSTDATA_NON_ASCII = """-----------------------------721837373350705526688164684
609 Content-Disposition: form-data; name="id"
612 -----------------------------721837373350705526688164684
615 # http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4
617 POSTDATA_W3 = """--AaB03x
618 Content-Disposition: form-data; name="submit-name"
621 --AaB03x
622 Content-Disposition: form-data; name="files"
623 Content-Type: multipart/mixed; boundary=BbC04y
625 --BbC04y
626 Content-Disposition: file; filename="file1.txt"
627 Content-Type: text/plain
630 --BbC04y
631 Content-Disposition: file; filename="file2.gif"
632 Content-Type: image/gif
633 Content-Transfer-Encoding: binary
636 --BbC04y--
637 --AaB03x--