@@ -1022,12 +1022,13 @@ def test_form_encoded_post_query_multivalued_element(self, httpbin):
1022
1022
assert prep .body == "test=foo&test=baz"
1023
1023
1024
1024
def test_different_encodings_dont_break_post (self , httpbin ):
1025
- r = requests .post (
1026
- httpbin ("post" ),
1027
- data = {"stuff" : json .dumps ({"a" : 123 })},
1028
- params = {"blah" : "asdf1234" },
1029
- files = {"file" : ("test_requests.py" , open (__file__ , "rb" ))},
1030
- )
1025
+ with open (__file__ , "rb" ) as f :
1026
+ r = requests .post (
1027
+ httpbin ("post" ),
1028
+ data = {"stuff" : json .dumps ({"a" : 123 })},
1029
+ params = {"blah" : "asdf1234" },
1030
+ files = {"file" : ("test_requests.py" , f )},
1031
+ )
1031
1032
assert r .status_code == 200
1032
1033
1033
1034
@pytest .mark .parametrize (
@@ -1040,35 +1041,44 @@ def test_different_encodings_dont_break_post(self, httpbin):
1040
1041
),
1041
1042
)
1042
1043
def test_unicode_multipart_post (self , httpbin , data ):
1043
- r = requests .post (
1044
- httpbin ("post" ),
1045
- data = data ,
1046
- files = {"file" : ("test_requests.py" , open (__file__ , "rb" ))},
1047
- )
1044
+ with open (__file__ , "rb" ) as f :
1045
+ r = requests .post (
1046
+ httpbin ("post" ),
1047
+ data = data ,
1048
+ files = {"file" : ("test_requests.py" , f )},
1049
+ )
1048
1050
assert r .status_code == 200
1049
1051
1050
1052
def test_unicode_multipart_post_fieldnames (self , httpbin ):
1051
1053
filename = os .path .splitext (__file__ )[0 ] + ".py"
1052
- r = requests .Request (
1053
- method = "POST" ,
1054
- url = httpbin ("post" ),
1055
- data = {b"stuff" : "elixr" },
1056
- files = {"file" : ("test_requests.py" , open (filename , "rb" ))},
1057
- )
1058
- prep = r .prepare ()
1054
+ with open (filename , "rb" ) as f :
1055
+ r = requests .Request (
1056
+ method = "POST" ,
1057
+ url = httpbin ("post" ),
1058
+ data = {b"stuff" : "elixr" },
1059
+ files = {"file" : ("test_requests.py" , f )},
1060
+ )
1061
+ prep = r .prepare ()
1062
+
1059
1063
assert b'name="stuff"' in prep .body
1060
1064
assert b"name=\" b'stuff'\" " not in prep .body
1061
1065
1062
1066
def test_unicode_method_name (self , httpbin ):
1063
- files = {"file" : open (__file__ , "rb" )}
1064
- r = requests .request (method = "POST" , url = httpbin ("post" ), files = files )
1067
+ with open (__file__ , "rb" ) as f :
1068
+ files = {"file" : f }
1069
+ r = requests .request (
1070
+ method = "POST" ,
1071
+ url = httpbin ("post" ),
1072
+ files = files ,
1073
+ )
1065
1074
assert r .status_code == 200
1066
1075
1067
1076
def test_unicode_method_name_with_request_object (self , httpbin ):
1068
- files = {"file" : open (__file__ , "rb" )}
1069
1077
s = requests .Session ()
1070
- req = requests .Request ("POST" , httpbin ("post" ), files = files )
1071
- prep = s .prepare_request (req )
1078
+ with open (__file__ , "rb" ) as f :
1079
+ files = {"file" : f }
1080
+ req = requests .Request ("POST" , httpbin ("post" ), files = files )
1081
+ prep = s .prepare_request (req )
1072
1082
assert isinstance (prep .method , builtin_str )
1073
1083
assert prep .method == "POST"
1074
1084
@@ -1084,18 +1094,14 @@ def test_non_prepared_request_error(self):
1084
1094
assert str (e .value ) == "You can only send PreparedRequests."
1085
1095
1086
1096
def test_custom_content_type (self , httpbin ):
1087
- r = requests .post (
1088
- httpbin ("post" ),
1089
- data = {"stuff" : json .dumps ({"a" : 123 })},
1090
- files = {
1091
- "file1" : ("test_requests.py" , open (__file__ , "rb" )),
1092
- "file2" : (
1093
- "test_requests" ,
1094
- open (__file__ , "rb" ),
1095
- "text/py-content-type" ,
1096
- ),
1097
- },
1098
- )
1097
+ with open (__file__ , "rb" ) as f1 :
1098
+ with open (__file__ , "rb" ) as f2 :
1099
+ data = {"stuff" : json .dumps ({"a" : 123 })}
1100
+ files = {
1101
+ "file1" : ("test_requests.py" , f1 ),
1102
+ "file2" : ("test_requests" , f2 , "text/py-content-type" ),
1103
+ }
1104
+ r = requests .post (httpbin ("post" ), data = data , files = files )
1099
1105
assert r .status_code == 200
1100
1106
assert b"text/py-content-type" in r .request .body
1101
1107
@@ -1484,9 +1490,9 @@ def test_prepared_request_is_pickleable(self, httpbin):
1484
1490
assert resp .status_code == 200
1485
1491
1486
1492
def test_prepared_request_with_file_is_pickleable (self , httpbin ):
1487
- files = { "file" : open (__file__ , "rb" )}
1488
- r = requests .Request ("POST" , httpbin ("post" ), files = files )
1489
- p = r .prepare ()
1493
+ with open (__file__ , "rb" ) as f :
1494
+ r = requests .Request ("POST" , httpbin ("post" ), files = { "file" : f } )
1495
+ p = r .prepare ()
1490
1496
1491
1497
# Verify PreparedRequest can be pickled and unpickled
1492
1498
r = pickle .loads (pickle .dumps (p ))
0 commit comments