?? api.py
字號:
# -*- coding: utf-8 -*-from trac.test import Mockfrom trac.web.api import Request, RequestDonefrom trac.web.clearsilver import HDFWrapperfrom Cookie import SimpleCookie as Cookiefrom StringIO import StringIOimport unittestclass RequestTestCase(unittest.TestCase): def _make_environ(self, scheme='http', server_name='example.org', server_port=80, method='GET', script_name='/trac', **kwargs): environ = {'wsgi.url_scheme': scheme, 'wsgi.input': StringIO(''), 'REQUEST_METHOD': method, 'SERVER_NAME': server_name, 'SERVER_PORT': server_port, 'SCRIPT_NAME': script_name} environ.update(kwargs) return environ def test_base_url(self): environ = self._make_environ() req = Request(environ, None) self.assertEqual('http://example.org/trac', req.base_url) def test_base_url_host(self): environ = self._make_environ(server_port=8080, HTTP_HOST='example.com') req = Request(environ, None) self.assertEqual('http://example.com/trac', req.base_url) def test_base_url_nondefaultport(self): environ = self._make_environ(server_port=8080) req = Request(environ, None) self.assertEqual('http://example.org:8080/trac', req.base_url) def test_base_url_https(self): environ = self._make_environ(scheme='https', server_port=443) req = Request(environ, None) self.assertEqual('https://example.org/trac', req.base_url) def test_base_url_https_host(self): environ = self._make_environ(scheme='https', server_port=443, HTTP_HOST='example.com') req = Request(environ, None) self.assertEqual('https://example.com/trac', req.base_url) def test_base_url_https_nondefaultport(self): environ = self._make_environ(scheme='https', server_port=8443) req = Request(environ, None) self.assertEqual('https://example.org:8443/trac', req.base_url) def test_base_url_proxy(self): environ = self._make_environ(HTTP_HOST='localhost', HTTP_X_FORWARDED_HOST='example.com') req = Request(environ, None) self.assertEqual('http://localhost/trac', req.base_url) def test_redirect(self): status_sent = [] headers_sent = {} def start_response(status, headers): status_sent.append(status) headers_sent.update(dict(headers)) environ = self._make_environ(method='HEAD') req = Request(environ, start_response) req.session = None self.assertRaises(RequestDone, req.redirect, '/trac/test') self.assertEqual('302 Found', status_sent[0]) self.assertEqual('http://example.org/trac/test', headers_sent['Location']) def test_redirect_absolute(self): status_sent = [] headers_sent = {} def start_response(status, headers): status_sent.append(status) headers_sent.update(dict(headers)) environ = self._make_environ(method='HEAD') req = Request(environ, start_response,) req.session = None self.assertRaises(RequestDone, req.redirect, 'http://example.com/trac/test') self.assertEqual('302 Found', status_sent[0]) self.assertEqual('http://example.com/trac/test', headers_sent['Location']) def test_write_unicode(self): buf = StringIO() def write(data): buf.write(data) def start_response(status, headers): return write environ = self._make_environ(method='HEAD') req = Request(environ, start_response) req.send_header('Content-Type', 'text/plain;charset=utf-8') req.write(u'F枚枚') self.assertEqual('F枚枚', buf.getvalue()) def test_invalid_cookies(self): environ = self._make_environ(HTTP_COOKIE='bad:key=value;') req = Request(environ, None) self.assertEqual('', str(req.incookie)) def test_read(self): environ = self._make_environ(**{'wsgi.input': StringIO('test input')}) req = Request(environ, None) self.assertEqual('test input', req.read()) def test_read_size(self): environ = self._make_environ(**{'wsgi.input': StringIO('test input')}) req = Request(environ, None) self.assertEqual('test', req.read(size=4))def suite(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(RequestTestCase, 'test')) return suiteif __name__ == '__main__': unittest.main()
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -