OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 class Request(object): | 5 class Request(object): |
6 '''Request data. | 6 '''Request data. |
7 ''' | 7 ''' |
8 def __init__(self, path, host, headers): | 8 def __init__(self, path, host, headers): |
9 self.path = path.lstrip('/') | 9 self.path = path.lstrip('/') |
10 self.host = host.rstrip('/') | 10 self.host = host.rstrip('/') |
11 self.headers = headers | 11 self.headers = headers |
12 | 12 |
13 @staticmethod | 13 @staticmethod |
14 def ForTest(path, host='http://developer.chrome.com', headers=None): | 14 def ForTest(path, host='http://developer.chrome.com', headers=None): |
15 return Request(path, host, headers or {}) | 15 return Request(path, host, headers or {}) |
16 | 16 |
17 def __repr__(self): | 17 def __repr__(self): |
18 return 'Request(path=%s, host=%s, headers=%s entries)' % ( | 18 return 'Request(path=%s, host=%s, headers=%s)' % ( |
19 self.path, self.host, len(self.headers.keys())) | 19 self.path, self.host, self.headers) |
20 | 20 |
21 def __str__(self): | 21 def __str__(self): |
22 return repr(self) | 22 return repr(self) |
23 | 23 |
24 class _ContentBuilder(object): | 24 class _ContentBuilder(object): |
25 '''Builds the response content. | 25 '''Builds the response content. |
26 ''' | 26 ''' |
27 def __init__(self): | 27 def __init__(self): |
28 self._buf = [] | 28 self._buf = [] |
29 | 29 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 self.headers.update(headers) | 98 self.headers.update(headers) |
99 | 99 |
100 def SetStatus(self, status): | 100 def SetStatus(self, status): |
101 self.status = status | 101 self.status = status |
102 | 102 |
103 def GetRedirect(self): | 103 def GetRedirect(self): |
104 if self.headers.get('Location') is None: | 104 if self.headers.get('Location') is None: |
105 return (None, None) | 105 return (None, None) |
106 return (self.headers.get('Location'), self.status == 301) | 106 return (self.headers.get('Location'), self.status == 301) |
107 | 107 |
| 108 def __eq__(self, other): |
| 109 return (isinstance(other, self.__class__) and |
| 110 str(other.content) == str(self.content) and |
| 111 other.headers == self.headers and |
| 112 other.status == self.status) |
| 113 |
| 114 def __ne__(self, other): |
| 115 return not (self == other) |
| 116 |
108 def __repr__(self): | 117 def __repr__(self): |
109 return 'Response(content=%s bytes, status=%s, headers=%s entries)' % ( | 118 return 'Response(content=%s bytes, status=%s, headers=%s)' % ( |
110 len(self.content), self.status, len(self.headers.keys())) | 119 len(self.content), self.status, self.headers) |
111 | 120 |
112 def __str__(self): | 121 def __str__(self): |
113 return repr(self) | 122 return repr(self) |
114 | 123 |
115 class Servlet(object): | 124 class Servlet(object): |
116 def __init__(self, request): | 125 def __init__(self, request): |
117 self._request = request | 126 self._request = request |
118 | 127 |
119 def Get(self): | 128 def Get(self): |
120 '''Returns a Response. | 129 '''Returns a Response. |
121 ''' | 130 ''' |
122 raise NotImplemented() | 131 raise NotImplemented() |
OLD | NEW |