1+ from urllib .parse import parse_qs
2+
13import pytest
24import requests_oauthlib
35import responses
46from flask import Flask
57from urlobject import URLObject
6- from werkzeug .urls import url_decode
78
89from flask_dance .consumer import OAuth2ConsumerBlueprint
910from flask_dance .consumer .storage import MemoryStorage
@@ -117,12 +118,12 @@ def test_auto_token_get(make_app):
117118 "chat.postMessage" ,
118119 data = {"channel" : "#general" , "text" : "ping" , "icon_emoji" : ":robot_face:" },
119120 )
120- request_data = url_decode (resp .request .body )
121- assert request_data ["channel" ] == "#general"
122- assert request_data ["text" ] == "ping"
123- assert request_data ["icon_emoji" ] == ":robot_face:"
121+ request_data = parse_qs (resp .request .body )
122+ assert request_data ["channel" ] == [ "#general" ]
123+ assert request_data ["text" ] == [ "ping" ]
124+ assert request_data ["icon_emoji" ] == [ ":robot_face:" ]
124125 # the `token` parameter should have been automatically added
125- assert request_data ["token" ] == "abcde"
126+ assert request_data ["token" ] == [ "abcde" ]
126127
127128
128129@responses .activate
@@ -141,12 +142,12 @@ def test_auto_token_post(make_app):
141142 "chat.postMessage" ,
142143 data = {"channel" : "#general" , "text" : "ping" , "icon_emoji" : ":robot_face:" },
143144 )
144- request_data = url_decode (resp .request .body )
145- assert request_data ["channel" ] == "#general"
146- assert request_data ["text" ] == "ping"
147- assert request_data ["icon_emoji" ] == ":robot_face:"
145+ request_data = parse_qs (resp .request .body )
146+ assert request_data ["channel" ] == [ "#general" ]
147+ assert request_data ["text" ] == [ "ping" ]
148+ assert request_data ["icon_emoji" ] == [ ":robot_face:" ]
148149 # the `token` parameter should have been automatically added
149- assert request_data ["token" ] == "abcde"
150+ assert request_data ["token" ] == [ "abcde" ]
150151
151152
152153@responses .activate
@@ -161,10 +162,10 @@ def test_auto_token_post_no_token(make_app):
161162 "chat.postMessage" ,
162163 data = {"channel" : "#general" , "text" : "ping" , "icon_emoji" : ":robot_face:" },
163164 )
164- request_data = url_decode (resp .request .body )
165- assert request_data ["channel" ] == "#general"
166- assert request_data ["text" ] == "ping"
167- assert request_data ["icon_emoji" ] == ":robot_face:"
165+ request_data = parse_qs (resp .request .body )
166+ assert request_data ["channel" ] == [ "#general" ]
167+ assert request_data ["text" ] == [ "ping" ]
168+ assert request_data ["icon_emoji" ] == [ ":robot_face:" ]
168169 assert "token" not in request_data
169170 url = URLObject (resp .request .url )
170171 assert "token" not in url .query_dict
@@ -191,11 +192,11 @@ def test_override_token_get(make_app):
191192 "icon_emoji" : ":robot_face:" ,
192193 },
193194 )
194- request_data = url_decode (resp .request .body )
195- assert request_data ["token" ] == "xyz"
196- assert request_data ["channel" ] == "#general"
197- assert request_data ["text" ] == "ping"
198- assert request_data ["icon_emoji" ] == ":robot_face:"
195+ request_data = parse_qs (resp .request .body )
196+ assert request_data ["token" ] == [ "xyz" ]
197+ assert request_data ["channel" ] == [ "#general" ]
198+ assert request_data ["text" ] == [ "ping" ]
199+ assert request_data ["icon_emoji" ] == [ ":robot_face:" ]
199200 # should not be present in URL
200201 url = URLObject (resp .request .url )
201202 assert "token" not in url .query_dict
@@ -222,11 +223,11 @@ def test_override_token_post(make_app):
222223 "icon_emoji" : ":robot_face:" ,
223224 },
224225 )
225- request_data = url_decode (resp .request .body )
226- assert request_data ["token" ] == "xyz"
227- assert request_data ["channel" ] == "#general"
228- assert request_data ["text" ] == "ping"
229- assert request_data ["icon_emoji" ] == ":robot_face:"
226+ request_data = parse_qs (resp .request .body )
227+ assert request_data ["token" ] == [ "xyz" ]
228+ assert request_data ["channel" ] == [ "#general" ]
229+ assert request_data ["text" ] == [ "ping" ]
230+ assert request_data ["icon_emoji" ] == [ ":robot_face:" ]
230231 # should not be present
231232 url = URLObject (resp .request .url )
232233 assert "token" not in url .query_dict
0 commit comments