~didrocks/unity/altf10

« back to all changes in this revision

Viewing changes to grackle/tests/test_client.py

  • Committer: Curtis Hovey
  • Date: 2012-02-29 23:55:28 UTC
  • Revision ID: curtis.hovey@canonical.com-20120229235528-7wphq02b2y9vt7ni
Implemented a partial put into the MemoryStore.

Show diffs side-by-side

added added

removed removed

Lines of Context:
136
136
    def do_POST(self):
137
137
        """Create a message on POST."""
138
138
        message = self.rfile.read(int(self.headers['content-length']))
 
139
        scheme, netloc, path, params, query_string, fragments = (
 
140
            urlparse(self.path))
 
141
        parts = path.split('/')
 
142
        if parts[1] == 'archive':
 
143
            # This expected path is /archive/archive_id/message_id.
 
144
            self.server.store.put_message(parts[2], parts[3], message)
139
145
        if message == 'This is a message':
140
146
            self.send_response(httplib.CREATED)
141
147
            self.end_headers()
171
177
 
172
178
    def test_put_message(self):
173
179
        client = GrackleClient('localhost', 8420)
174
 
        with ForkedFakeService.from_client(client):
175
 
            client.put_message('arch1', 'asdf', StringIO('This is a message'))
 
180
        message_archives = {'arch1': []}
 
181
        service = ForkedFakeService.from_client(client, message_archives)
 
182
        with service:
 
183
            client.put_message('arch1', 'id1', StringIO('This is a message'))
 
184
            response = client.get_messages('arch1')
 
185
            self.assertEqual(1, len(response['messages']))
 
186
            message = response['messages'][0]
 
187
            self.assertEqual('id1', message['message_id'])
 
188
 
 
189
    def test_put_message_without_message(self):
 
190
        client = GrackleClient('localhost', 8421)
 
191
        message_archives = {'arch1': []}
 
192
        with ForkedFakeService.from_client(client, message_archives):
176
193
            with ExpectedException(Exception, 'wtf'):
177
 
                client.put_message('arch1', 'asdf',
 
194
                client.put_message('arch1', 'id1',
178
195
                    StringIO('This is not a message'))
179
196
 
180
197