Fixed #32929 -- Fixed handling query strings in AsyncRequestFactory.
This commit is contained in:
parent
f479df7f8d
commit
f6d3557aa1
|
@ -547,6 +547,8 @@ class AsyncRequestFactory(RequestFactory):
|
||||||
follow = extra.pop('follow', None)
|
follow = extra.pop('follow', None)
|
||||||
if follow is not None:
|
if follow is not None:
|
||||||
s['follow'] = follow
|
s['follow'] = follow
|
||||||
|
if query_string := extra.pop('QUERY_STRING', None):
|
||||||
|
s['query_string'] = query_string
|
||||||
s['headers'] += [
|
s['headers'] += [
|
||||||
(key.lower().encode('ascii'), value.encode('latin1'))
|
(key.lower().encode('ascii'), value.encode('latin1'))
|
||||||
for key, value in extra.items()
|
for key, value in extra.items()
|
||||||
|
|
|
@ -1010,6 +1010,10 @@ class AsyncClientTest(TestCase):
|
||||||
with self.assertRaisesMessage(NotImplementedError, msg):
|
with self.assertRaisesMessage(NotImplementedError, msg):
|
||||||
await method('/redirect_view/', follow=True)
|
await method('/redirect_view/', follow=True)
|
||||||
|
|
||||||
|
async def test_get_data(self):
|
||||||
|
response = await self.async_client.get('/get_view/', {'var': 'val'})
|
||||||
|
self.assertContains(response, 'This is a test. val is the value.')
|
||||||
|
|
||||||
|
|
||||||
@override_settings(ROOT_URLCONF='test_client.urls')
|
@override_settings(ROOT_URLCONF='test_client.urls')
|
||||||
class AsyncRequestFactoryTest(SimpleTestCase):
|
class AsyncRequestFactoryTest(SimpleTestCase):
|
||||||
|
@ -1063,3 +1067,8 @@ class AsyncRequestFactoryTest(SimpleTestCase):
|
||||||
self.assertIn('HTTP_AUTHORIZATION', request.META)
|
self.assertIn('HTTP_AUTHORIZATION', request.META)
|
||||||
self.assertEqual(request.headers['x-another-header'], 'some other value')
|
self.assertEqual(request.headers['x-another-header'], 'some other value')
|
||||||
self.assertIn('HTTP_X_ANOTHER_HEADER', request.META)
|
self.assertIn('HTTP_X_ANOTHER_HEADER', request.META)
|
||||||
|
|
||||||
|
def test_request_factory_query_string(self):
|
||||||
|
request = self.request_factory.get('/somewhere/', {'example': 'data'})
|
||||||
|
self.assertNotIn('Query-String', request.headers)
|
||||||
|
self.assertEqual(request.GET['example'], 'data')
|
||||||
|
|
Loading…
Reference in New Issue