mirror of
				https://github.com/django/django.git
				synced 2025-10-30 17:16:10 +00:00 
			
		
		
		
	Migrated requests doctests. Thanks to Stephan Jaekel.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@13927 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -1,58 +1,68 @@ | |||||||
| """ | from datetime import datetime, timedelta | ||||||
| >>> from django.http import HttpRequest, HttpResponse | import time | ||||||
| >>> print repr(HttpRequest()) | import unittest | ||||||
| <HttpRequest |  | ||||||
| GET:{}, |  | ||||||
| POST:{}, |  | ||||||
| COOKIES:{}, |  | ||||||
| META:{}> |  | ||||||
|  |  | ||||||
| >>> from django.core.handlers.wsgi import WSGIRequest | from django.http import HttpRequest, HttpResponse, parse_cookie | ||||||
| >>> print repr(WSGIRequest({'PATH_INFO': 'bogus', 'REQUEST_METHOD': 'bogus'})) | from django.core.handlers.wsgi import WSGIRequest | ||||||
| <WSGIRequest | from django.core.handlers.modpython import ModPythonRequest | ||||||
| GET:<QueryDict: {}>, | from django.utils.http import cookie_date | ||||||
| POST:<QueryDict: {}>, |  | ||||||
| COOKIES:{}, |  | ||||||
| META:{...}> |  | ||||||
|  |  | ||||||
| >>> from django.core.handlers.modpython import ModPythonRequest | class RequestsTests(unittest.TestCase): | ||||||
| >>> class FakeModPythonRequest(ModPythonRequest): |  | ||||||
| ...    def __init__(self, *args, **kwargs): |  | ||||||
| ...        super(FakeModPythonRequest, self).__init__(*args, **kwargs) |  | ||||||
| ...        self._get = self._post = self._meta = self._cookies = {} |  | ||||||
| >>> class Dummy: |  | ||||||
| ...     def get_options(self): |  | ||||||
| ...         return {} |  | ||||||
| >>> req = Dummy() |  | ||||||
| >>> req.uri = 'bogus' |  | ||||||
| >>> print repr(FakeModPythonRequest(req)) |  | ||||||
| <ModPythonRequest |  | ||||||
| path:bogus, |  | ||||||
| GET:{}, |  | ||||||
| POST:{}, |  | ||||||
| COOKIES:{}, |  | ||||||
| META:{}> |  | ||||||
|  |  | ||||||
| >>> from django.http import parse_cookie |     def test_httprequest(self): | ||||||
| >>> parse_cookie('invalid:key=true') |         self.assertEquals(repr(HttpRequest()), | ||||||
| {} |             "<HttpRequest\n"\ | ||||||
|  |             "GET:{},\n"\ | ||||||
|  |             "POST:{},\n"\ | ||||||
|  |             "COOKIES:{},\n"\ | ||||||
|  |             "META:{}>" | ||||||
|  |         ) | ||||||
|  |  | ||||||
| >>> request = HttpRequest() |     def test_wsgirequest(self): | ||||||
| >>> print request.build_absolute_uri(location="https://www.example.com/asdf") |         self.assertEquals(repr(WSGIRequest({'PATH_INFO': 'bogus', 'REQUEST_METHOD': 'bogus'})), | ||||||
| https://www.example.com/asdf |             "<WSGIRequest\n"\ | ||||||
| >>> request.get_host = lambda: 'www.example.com' |             "GET:<QueryDict: {}>,\n"\ | ||||||
| >>> request.path = '' |             "POST:<QueryDict: {}>,\n"\ | ||||||
| >>> print request.build_absolute_uri(location="/path/with:colons") |             "COOKIES:{},\n"\ | ||||||
| http://www.example.com/path/with:colons |             "META:{'PATH_INFO': u'bogus', 'REQUEST_METHOD': 'bogus', 'SCRIPT_NAME': u''}>" | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |     def test_modpythonrequest(self): | ||||||
|  |         class FakeModPythonRequest(ModPythonRequest): | ||||||
|  |            def __init__(self, *args, **kwargs): | ||||||
|  |                super(FakeModPythonRequest, self).__init__(*args, **kwargs) | ||||||
|  |                self._get = self._post = self._meta = self._cookies = {} | ||||||
|  |  | ||||||
| # Test cookie datetime expiration logic |         class Dummy: | ||||||
| >>> from datetime import datetime, timedelta |             def get_options(self): | ||||||
| >>> import time |                 return {} | ||||||
| >>> delta = timedelta(seconds=10) |  | ||||||
| >>> response = HttpResponse() |  | ||||||
| >>> expires = datetime.utcnow() + delta |  | ||||||
|  |  | ||||||
|  |         req = Dummy() | ||||||
|  |         req.uri = 'bogus' | ||||||
|  |         self.assertEquals(repr(FakeModPythonRequest(req)), | ||||||
|  |             "<ModPythonRequest\n"\ | ||||||
|  |             "path:bogus,\n"\ | ||||||
|  |             "GET:{},\n"\ | ||||||
|  |             "POST:{},\n"\ | ||||||
|  |             "COOKIES:{},\n"\ | ||||||
|  |             "META:{}>") | ||||||
|  |  | ||||||
|  |     def test_parse_cookie(self): | ||||||
|  |         self.assertEquals(parse_cookie('invalid:key=true'), {}) | ||||||
|  |  | ||||||
|  |     def test_httprequest_location(self): | ||||||
|  |         request = HttpRequest() | ||||||
|  |         self.assertEquals(request.build_absolute_uri(location="https://www.example.com/asdf"), | ||||||
|  |             'https://www.example.com/asdf') | ||||||
|  |  | ||||||
|  |         request.get_host = lambda: 'www.example.com' | ||||||
|  |         request.path = '' | ||||||
|  |         self.assertEquals(request.build_absolute_uri(location="/path/with:colons"), | ||||||
|  |             'http://www.example.com/path/with:colons') | ||||||
|  |  | ||||||
|  |     def test_near_expiration(self): | ||||||
|  |         "Cookie will expire when an near expiration time is provided" | ||||||
|  |         response = HttpResponse() | ||||||
|         # There is a timing weakness in this test; The |         # There is a timing weakness in this test; The | ||||||
|         # expected result for max-age requires that there be |         # expected result for max-age requires that there be | ||||||
|         # a very slight difference between the evaluated expiration |         # a very slight difference between the evaluated expiration | ||||||
| @@ -60,22 +70,23 @@ http://www.example.com/path/with:colons | |||||||
|         # difference doesn't exist, the cookie time will be |         # difference doesn't exist, the cookie time will be | ||||||
|         # 1 second larger. To avoid the problem, put in a quick sleep, |         # 1 second larger. To avoid the problem, put in a quick sleep, | ||||||
|         # which guarantees that there will be a time difference. |         # which guarantees that there will be a time difference. | ||||||
| >>> time.sleep(0.001) |         expires = datetime.utcnow() + timedelta(seconds=10) | ||||||
| >>> response.set_cookie('datetime', expires=expires) |         time.sleep(0.001) | ||||||
| >>> datetime_cookie = response.cookies['datetime'] |         response.set_cookie('datetime', expires=expires) | ||||||
| >>> datetime_cookie['max-age'] |         datetime_cookie = response.cookies['datetime'] | ||||||
| 10 |         self.assertEquals(datetime_cookie['max-age'], 10) | ||||||
| >>> response.set_cookie('datetime', expires=datetime(2028, 1, 1, 4, 5, 6)) |  | ||||||
| >>> response.cookies['datetime']['expires'] |  | ||||||
| 'Sat, 01-Jan-2028 04:05:06 GMT' |  | ||||||
|  |  | ||||||
| # Test automatically setting cookie expires if only max_age is provided |     def test_far_expiration(self): | ||||||
| >>> response.set_cookie('max_age', max_age=10) |         "Cookie will expire when an distant expiration time is provided" | ||||||
| >>> max_age_cookie = response.cookies['max_age'] |         response = HttpResponse() | ||||||
| >>> max_age_cookie['max-age'] |         response.set_cookie('datetime', expires=datetime(2028, 1, 1, 4, 5, 6)) | ||||||
| 10 |         datetime_cookie = response.cookies['datetime'] | ||||||
| >>> from django.utils.http import cookie_date |         self.assertEquals(datetime_cookie['expires'], 'Sat, 01-Jan-2028 04:05:06 GMT') | ||||||
| >>> import time |  | ||||||
| >>> max_age_cookie['expires'] == cookie_date(time.time()+10) |     def test_max_age_expiration(self): | ||||||
| True |         "Cookie will expire if max_age is provided" | ||||||
| """ |         response = HttpResponse() | ||||||
|  |         response.set_cookie('max_age', max_age=10) | ||||||
|  |         max_age_cookie = response.cookies['max_age'] | ||||||
|  |         self.assertEqual(max_age_cookie['max-age'], 10) | ||||||
|  |         self.assertEqual(max_age_cookie['expires'], cookie_date(time.time()+10)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user