Ticket #15898: patch_wsgi_input_RequestFactory.diff

File patch_wsgi_input_RequestFactory.diff, 2.4 KB (added by r1cky, 4 years ago)

Added wsgi.input to RequestFactory base environ, and added a test that verifies that RequestFactory().request() now works.

  • django/test/client.py

    diff --git a/django/test/client.py b/django/test/client.py
    index 5cbc0ca..e4c48fb 100644
    a b class RequestFactory(object): 
    198198            'wsgi.multiprocess': True,
    199199            'wsgi.multithread':  False,
    200200            'wsgi.run_once':     False,
     201            'wsgi.input':        FakePayload(''),
    201202        }
    202203        environ.update(self.defaults)
    203204        environ.update(request)
    class RequestFactory(object): 
    223224            'PATH_INFO':       self._get_path(parsed),
    224225            'QUERY_STRING':    urlencode(data, doseq=True) or parsed[4],
    225226            'REQUEST_METHOD': 'GET',
    226             'wsgi.input':      FakePayload('')
    227227        }
    228228        r.update(extra)
    229229        return self.request(**r)
    class RequestFactory(object): 
    264264            'PATH_INFO':       self._get_path(parsed),
    265265            'QUERY_STRING':    urlencode(data, doseq=True) or parsed[4],
    266266            'REQUEST_METHOD': 'HEAD',
    267             'wsgi.input':      FakePayload('')
    268267        }
    269268        r.update(extra)
    270269        return self.request(**r)
    class RequestFactory(object): 
    277276            'PATH_INFO':       self._get_path(parsed),
    278277            'QUERY_STRING':    urlencode(data, doseq=True) or parsed[4],
    279278            'REQUEST_METHOD': 'OPTIONS',
    280             'wsgi.input':      FakePayload('')
    281279        }
    282280        r.update(extra)
    283281        return self.request(**r)
    class RequestFactory(object): 
    317315            'PATH_INFO':       self._get_path(parsed),
    318316            'QUERY_STRING':    urlencode(data, doseq=True) or parsed[4],
    319317            'REQUEST_METHOD': 'DELETE',
    320             'wsgi.input':      FakePayload('')
    321318        }
    322319        r.update(extra)
    323320        return self.request(**r)
  • tests/modeltests/test_client/models.py

    diff --git a/tests/modeltests/test_client/models.py b/tests/modeltests/test_client/models.py
    index 16bdd2d..1389695 100644
    a b class RequestFactoryTest(TestCase): 
    488488
    489489        self.assertEqual(response.status_code, 200)
    490490        self.assertContains(response, 'This is a test')
     491
     492    def test_generic_request(self):
     493        factory = RequestFactory()
     494        request = factory.request()
     495        response = get_view(request)
     496
     497        self.assertEqual(response.status_code, 200)
     498        self.assertContains(response, 'This is a test')
Back to Top