Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Side by Side Diff: chrome/common/extensions/docs/server2/servlet.py

Issue 15009006: Docserver: refactor Servlet, ObjectStore, and ServerInstance architecture to (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cduvall, redirect fix Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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, headers): 8 def __init__(self, path, host, headers):
9 self.path = path 9 self.path = path.lstrip('/')
10 self.host = host.rstrip('/')
10 self.headers = headers 11 self.headers = headers
11 12
13 @staticmethod
14 def ForTest(path, url='http://localhost', headers=None):
15 return Request(path, url, headers or {})
16
17 def __repr__(self):
18 return 'Request(path=%s, host=%s, headers=%s entries)' % (
19 self.path, self.host, len(self.headers.keys()))
20
21 def __str__(self):
22 return repr(self)
23
12 class _ContentBuilder(object): 24 class _ContentBuilder(object):
13 '''Builds the response content. 25 '''Builds the response content.
14 ''' 26 '''
15 def __init__(self): 27 def __init__(self):
16 self._buf = [] 28 self._buf = []
17 29
18 def Append(self, content): 30 def Append(self, content):
19 if isinstance(content, unicode): 31 if isinstance(content, unicode):
20 content = content.encode('utf-8', 'replace') 32 content = content.encode('utf-8', 'replace')
21 self._buf.append(content) 33 self._buf.append(content)
(...skipping 26 matching lines...) Expand all
48 @staticmethod 60 @staticmethod
49 def Ok(content, headers=None): 61 def Ok(content, headers=None):
50 '''Returns an OK (200) response. 62 '''Returns an OK (200) response.
51 ''' 63 '''
52 return Response(content=content, headers=headers, status=200) 64 return Response(content=content, headers=headers, status=200)
53 65
54 @staticmethod 66 @staticmethod
55 def Redirect(url, permanent=False): 67 def Redirect(url, permanent=False):
56 '''Returns a redirect (301 or 302) response. 68 '''Returns a redirect (301 or 302) response.
57 ''' 69 '''
58 if not url.startswith('/'):
59 url = '/%s' % url
60 status = 301 if permanent else 302 70 status = 301 if permanent else 302
61 return Response(headers={'Location': url}, status=status) 71 return Response(headers={'Location': url}, status=status)
62 72
63 @staticmethod 73 @staticmethod
64 def NotFound(content, headers=None): 74 def NotFound(content, headers=None):
65 '''Returns a not found (404) response. 75 '''Returns a not found (404) response.
66 ''' 76 '''
67 return Response(content=content, headers=headers, status=404) 77 return Response(content=content, headers=headers, status=404)
68 78
69 @staticmethod 79 @staticmethod
(...skipping 14 matching lines...) Expand all
84 94
85 def AddHeaders(self, headers): 95 def AddHeaders(self, headers):
86 '''Adds several headers to the response. 96 '''Adds several headers to the response.
87 ''' 97 '''
88 self.headers.update(headers) 98 self.headers.update(headers)
89 99
90 def SetStatus(self, status): 100 def SetStatus(self, status):
91 self.status = status 101 self.status = status
92 102
93 def __repr__(self): 103 def __repr__(self):
94 return '{content: %s bytes, status: %s, headers: %s entries}' % ( 104 return 'Response(content=%s bytes, status=%s, headers=%s entries)' % (
95 len(self.content), self.status, len(self.headers.keys())) 105 len(self.content), self.status, len(self.headers.keys()))
96 106
107 def __str__(self):
108 return repr(self)
109
97 class Servlet(object): 110 class Servlet(object):
98 def __init__(self, request): 111 def __init__(self, request):
99 self._request = request 112 self._request = request
100 113
101 def Get(self): 114 def Get(self):
102 '''Returns a Response. 115 '''Returns a Response.
103 ''' 116 '''
104 raise NotImplemented() 117 raise NotImplemented()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698