diff -r 058bb3dc685f -r 0b59724cb3f2 wsgi/test/unittest_wsgi.py --- a/wsgi/test/unittest_wsgi.py Mon Jan 04 18:40:30 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,116 +0,0 @@ -# encoding=utf-8 - -import webtest.app -from io import BytesIO - -from cubicweb.devtools.webtest import CubicWebTestTC - -from cubicweb.wsgi.request import CubicWebWsgiRequest -from cubicweb.multipart import MultipartError - - -class WSGIAppTC(CubicWebTestTC): - def test_content_type(self): - r = webtest.app.TestRequest.blank('/', {'CONTENT_TYPE': 'text/plain'}) - - req = CubicWebWsgiRequest(r.environ, self.vreg) - - self.assertEqual('text/plain', req.get_header('Content-Type')) - - def test_content_body(self): - r = webtest.app.TestRequest.blank('/', { - 'CONTENT_LENGTH': 12, - 'CONTENT_TYPE': 'text/plain', - 'wsgi.input': BytesIO(b'some content')}) - - req = CubicWebWsgiRequest(r.environ, self.vreg) - - self.assertEqual(b'some content', req.content.read()) - - def test_http_scheme(self): - r = webtest.app.TestRequest.blank('/', { - 'wsgi.url_scheme': 'http'}) - - req = CubicWebWsgiRequest(r.environ, self.vreg) - - self.assertFalse(req.https) - - def test_https_scheme(self): - r = webtest.app.TestRequest.blank('/', { - 'wsgi.url_scheme': 'https'}) - - req = CubicWebWsgiRequest(r.environ, self.vreg) - - self.assertTrue(req.https) - - def test_https_prefix(self): - r = webtest.app.TestRequest.blank('/https/', { - 'wsgi.url_scheme': 'http'}) - - req = CubicWebWsgiRequest(r.environ, self.vreg) - - self.assertTrue(req.https) - - def test_big_content(self): - content = b'x'*100001 - r = webtest.app.TestRequest.blank('/', { - 'CONTENT_LENGTH': len(content), - 'CONTENT_TYPE': 'text/plain', - 'wsgi.input': BytesIO(content)}) - - req = CubicWebWsgiRequest(r.environ, self.vreg) - - self.assertEqual(content, req.content.read()) - - def test_post(self): - self.webapp.post( - '/', - params={'__login': self.admlogin, '__password': self.admpassword}) - - def test_post_bad_form(self): - with self.assertRaises(MultipartError): - self.webapp.post( - '/', - params='badcontent', - headers={'Content-Type': 'multipart/form-data'}) - - def test_post_non_form(self): - self.webapp.post( - '/', - params='{}', - headers={'Content-Type': 'application/json'}) - - def test_get_multiple_variables(self): - r = webtest.app.TestRequest.blank('/?arg=1&arg=2') - req = CubicWebWsgiRequest(r.environ, self.vreg) - - self.assertEqual([u'1', u'2'], req.form['arg']) - - def test_post_multiple_variables(self): - r = webtest.app.TestRequest.blank('/', POST='arg=1&arg=2') - req = CubicWebWsgiRequest(r.environ, self.vreg) - - self.assertEqual([u'1', u'2'], req.form['arg']) - - def test_post_files(self): - content_type, params = self.webapp.encode_multipart( - (), (('filefield', 'aname', b'acontent'),)) - r = webtest.app.TestRequest.blank( - '/', POST=params, content_type=content_type) - req = CubicWebWsgiRequest(r.environ, self.vreg) - self.assertIn('filefield', req.form) - fieldvalue = req.form['filefield'] - self.assertEqual(u'aname', fieldvalue[0]) - self.assertEqual(b'acontent', fieldvalue[1].read()) - - def test_post_unicode_urlencoded(self): - params = 'arg=%C3%A9' - r = webtest.app.TestRequest.blank( - '/', POST=params, content_type='application/x-www-form-urlencoded') - req = CubicWebWsgiRequest(r.environ, self.vreg) - self.assertEqual(u"é", req.form['arg']) - - -if __name__ == '__main__': - import unittest - unittest.main()