133
133
self.logger = logging.getLogger('http')
134
134
BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
137
"""Create an archive or message on PUT."""
137
"""Create a message on POST."""
138
138
scheme, netloc, path, params, query_string, fragments = (
139
139
urlparse(self.path))
140
140
parts = path.split('/')
141
141
if parts[1] != 'archive':
142
142
# This is an unknonwn operation?
145
# This expected path is /archive/archive_id.
147
self.server.store.put_archive(parts[2])
148
self.send_response(httplib.CREATED)
152
self.send_error(httplib.BAD_REQUEST)
154
# This expected path is /archive/archive_id/message_id.
156
message = self.rfile.read(int(self.headers['content-length']))
144
if 'content-length' in self.headers:
145
operation = 'put_message'
147
operation = 'hide_message'
148
if operation == 'put_message':
149
message = self.rfile.read(int(self.headers['content-length']))
151
# This expected path is /archive/archive_id/message_id.
157
152
self.server.store.put_message(parts[2], parts[3], message)
158
153
self.send_response(httplib.CREATED)
159
154
self.end_headers()
160
155
self.wfile.close()
162
157
self.send_error(httplib.BAD_REQUEST)
165
"""Change a message on POST."""
166
scheme, netloc, path, params, query_string, fragments = (
168
parts = path.split('/')
169
if parts[1] != 'archive':
170
# This is an unknonwn operation?
173
# This expected path is /archive/archive_id/message_id.
158
elif operation == 'hide_message':
175
160
# This expected path is /archive/archive_id/message_id.
176
161
response = self.server.store.hide_message(
205
190
self.logger.info(message)
208
class TestPutArchive(TestCase):
210
def test_put_message(self):
211
client = GrackleClient('localhost', 8410)
212
message_archives = {}
213
with ForkedFakeService.from_client(client, message_archives):
214
client.put_archive('arch1')
215
response = client.get_messages('arch1')
216
self.assertEqual(0, len(response['messages']))
219
193
class TestPutMessage(TestCase):
221
195
def test_put_message(self):