~didrocks/unity/altf10

« back to all changes in this revision

Viewing changes to grackle/tests/test_client.py

  • Committer: Curtis Hovey
  • Date: 2012-03-16 19:49:31 UTC
  • Revision ID: curtis.hovey@canonical.com-20120316194931-xngt1fdw9ewovwqn
Use PUT for creating messages.

Show diffs side-by-side

added added

removed removed

Lines of Context:
133
133
        self.logger = logging.getLogger('http')
134
134
        BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
135
135
 
136
 
    def do_POST(self):
137
 
        """Create a message on POST."""
 
136
    def do_PUT(self):
 
137
        """Create an archive or message on PUT."""
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?
143
143
            return
144
 
        if 'content-length' in self.headers:
145
 
            operation = 'put_message'
146
 
        else:
147
 
            operation = 'hide_message'
148
 
        if operation == 'put_message':
149
 
            message = self.rfile.read(int(self.headers['content-length']))
 
144
        if len(parts) == 4:
 
145
            # This expected path is /archive/archive_id/message_id.
150
146
            try:
151
 
                # This expected path is /archive/archive_id/message_id.
 
147
                message = self.rfile.read(int(self.headers['content-length']))
152
148
                self.server.store.put_message(parts[2], parts[3], message)
153
149
                self.send_response(httplib.CREATED)
154
150
                self.end_headers()
155
151
                self.wfile.close()
156
152
            except:
157
153
                self.send_error(httplib.BAD_REQUEST)
158
 
        elif operation == 'hide_message':
 
154
 
 
155
    def do_POST(self):
 
156
        """Change a message on POST."""
 
157
        scheme, netloc, path, params, query_string, fragments = (
 
158
            urlparse(self.path))
 
159
        parts = path.split('/')
 
160
        if parts[1] != 'archive':
 
161
            # This is an unknonwn operation?
 
162
            return
 
163
        if len(parts) == 4:
 
164
            # This expected path is /archive/archive_id/message_id.
159
165
            try:
160
166
                # This expected path is /archive/archive_id/message_id.
161
167
                response = self.server.store.hide_message(