Merge lp:~eday/burrow/backend-unittests into lp:burrow
- backend-unittests
- Merge into trunk
Proposed by
Eric Day
Status: | Merged |
---|---|
Approved by: | Eric Day |
Approved revision: | 39 |
Merged at revision: | 32 |
Proposed branch: | lp:~eday/burrow/backend-unittests |
Merge into: | lp:burrow |
Diff against target: |
425 lines (+170/-63) 6 files modified
.bzrignore (+1/-1) burrow/backend/__init__.py (+3/-3) burrow/backend/http.py (+47/-19) burrow/frontend/wsgi.py (+28/-26) test/backend/test_http.py (+77/-0) test/backend/test_memory.py (+14/-14) |
To merge this branch: | bzr merge lp:~eday/burrow/backend-unittests |
Related bugs: | |
Related blueprints: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Burrow Core Team | Pending | ||
Review via email: mp+70990@code.launchpad.net |
Commit message
Description of the change
Added HTTP backend unit tests that work against a running server (auto started/killed with test).
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file '.bzrignore' | |||
2 | --- .bzrignore 2011-04-20 18:21:51 +0000 | |||
3 | +++ .bzrignore 2011-08-10 05:42:35 +0000 | |||
4 | @@ -1,4 +1,4 @@ | |||
6 | 1 | .coverage | 1 | .coverage* |
7 | 2 | burrow.egg-info | 2 | burrow.egg-info |
8 | 3 | ChangeLog | 3 | ChangeLog |
9 | 4 | coverage | 4 | coverage |
10 | 5 | 5 | ||
11 | === modified file 'burrow/backend/__init__.py' | |||
12 | --- burrow/backend/__init__.py 2011-08-09 19:43:03 +0000 | |||
13 | +++ burrow/backend/__init__.py 2011-08-10 05:42:35 +0000 | |||
14 | @@ -112,7 +112,7 @@ | |||
15 | 112 | if detail == 'none': | 112 | if detail == 'none': |
16 | 113 | detail = None | 113 | detail = None |
17 | 114 | elif detail is not None and detail not in ['id', 'all']: | 114 | elif detail is not None and detail not in ['id', 'all']: |
19 | 115 | raise burrow.backend.BadDetail(detail) | 115 | raise burrow.backend.InvalidArguments(detail) |
20 | 116 | return detail | 116 | return detail |
21 | 117 | 117 | ||
22 | 118 | def _get_message_detail(self, filters, default=None): | 118 | def _get_message_detail(self, filters, default=None): |
23 | @@ -121,7 +121,7 @@ | |||
24 | 121 | if detail == 'none': | 121 | if detail == 'none': |
25 | 122 | detail = None | 122 | detail = None |
26 | 123 | elif detail is not None and detail not in options: | 123 | elif detail is not None and detail not in options: |
28 | 124 | raise burrow.backend.BadDetail(detail) | 124 | raise burrow.backend.InvalidArguments(detail) |
29 | 125 | return detail | 125 | return detail |
30 | 126 | 126 | ||
31 | 127 | 127 | ||
32 | @@ -129,5 +129,5 @@ | |||
33 | 129 | pass | 129 | pass |
34 | 130 | 130 | ||
35 | 131 | 131 | ||
37 | 132 | class BadDetail(Exception): | 132 | class InvalidArguments(Exception): |
38 | 133 | pass | 133 | pass |
39 | 134 | 134 | ||
40 | === modified file 'burrow/backend/http.py' | |||
41 | --- burrow/backend/http.py 2011-04-22 02:18:26 +0000 | |||
42 | +++ burrow/backend/http.py 2011-08-10 05:42:35 +0000 | |||
43 | @@ -67,7 +67,7 @@ | |||
44 | 67 | url = self._add_parameters(url, filters=filters) | 67 | url = self._add_parameters(url, filters=filters) |
45 | 68 | return self._request('GET', url) | 68 | return self._request('GET', url) |
46 | 69 | 69 | ||
48 | 70 | def update_messages(self, account, queue, attributes={}, filters={}): | 70 | def update_messages(self, account, queue, attributes, filters={}): |
49 | 71 | url = '/%s/%s' % (account, queue) | 71 | url = '/%s/%s' % (account, queue) |
50 | 72 | url = self._add_parameters(url, attributes, filters) | 72 | url = self._add_parameters(url, attributes, filters) |
51 | 73 | return self._request('POST', url) | 73 | return self._request('POST', url) |
52 | @@ -75,20 +75,34 @@ | |||
53 | 75 | def create_message(self, account, queue, message, body, attributes={}): | 75 | def create_message(self, account, queue, message, body, attributes={}): |
54 | 76 | url = '/%s/%s/%s' % (account, queue, message) | 76 | url = '/%s/%s/%s' % (account, queue, message) |
55 | 77 | url = self._add_parameters(url, attributes) | 77 | url = self._add_parameters(url, attributes) |
70 | 78 | return self._request('PUT', url, body=body) | 78 | try: |
71 | 79 | 79 | return self._request('PUT', url, body=body).next() | |
72 | 80 | def delete_message(self, account, queue, message): | 80 | except StopIteration: |
73 | 81 | url = '/%s/%s/%s' % (account, queue, message) | 81 | return False |
74 | 82 | return self._request('DELETE', url) | 82 | |
75 | 83 | 83 | def delete_message(self, account, queue, message, filters={}): | |
76 | 84 | def get_message(self, account, queue, message): | 84 | url = '/%s/%s/%s' % (account, queue, message) |
77 | 85 | url = '/%s/%s/%s' % (account, queue, message) | 85 | url = self._add_parameters(url, filters=filters) |
78 | 86 | return self._request('GET', url) | 86 | try: |
79 | 87 | 87 | return self._request('DELETE', url).next() | |
80 | 88 | def update_message(self, account, queue, message, attributes={}): | 88 | except StopIteration: |
81 | 89 | url = '/%s/%s/%s' % (account, queue, message) | 89 | return None |
82 | 90 | url = self._add_parameters(url, attributes) | 90 | |
83 | 91 | return self._request('POST', url) | 91 | def get_message(self, account, queue, message, filters={}): |
84 | 92 | url = '/%s/%s/%s' % (account, queue, message) | ||
85 | 93 | url = self._add_parameters(url, filters=filters) | ||
86 | 94 | try: | ||
87 | 95 | return self._request('GET', url).next() | ||
88 | 96 | except StopIteration: | ||
89 | 97 | return None | ||
90 | 98 | |||
91 | 99 | def update_message(self, account, queue, message, attributes, filters={}): | ||
92 | 100 | url = '/%s/%s/%s' % (account, queue, message) | ||
93 | 101 | url = self._add_parameters(url, attributes, filters) | ||
94 | 102 | try: | ||
95 | 103 | return self._request('POST', url).next() | ||
96 | 104 | except StopIteration: | ||
97 | 105 | return None | ||
98 | 92 | 106 | ||
99 | 93 | def clean(self): | 107 | def clean(self): |
100 | 94 | pass | 108 | pass |
101 | @@ -111,7 +125,21 @@ | |||
102 | 111 | connection = httplib.HTTPConnection(*self.server) | 125 | connection = httplib.HTTPConnection(*self.server) |
103 | 112 | connection.request(method, '/v1.0' + url, *args, **kwargs) | 126 | connection.request(method, '/v1.0' + url, *args, **kwargs) |
104 | 113 | response = connection.getresponse() | 127 | response = connection.getresponse() |
109 | 114 | if response.status == 200: | 128 | if response.status >= 200 and response.status < 300: |
110 | 115 | return json.loads(response.read()) | 129 | if int(response.getheader('content-length')) == 0: |
111 | 116 | if response.status >= 400: | 130 | if response.status == 201: |
112 | 117 | raise Exception(response.reason) | 131 | yield True |
113 | 132 | return | ||
114 | 133 | body = response.read() | ||
115 | 134 | if response.getheader('content-type')[:16] == 'application/json': | ||
116 | 135 | body = json.loads(body) | ||
117 | 136 | if isinstance(body, list): | ||
118 | 137 | for item in body: | ||
119 | 138 | yield item | ||
120 | 139 | return | ||
121 | 140 | yield body | ||
122 | 141 | if response.status == 400: | ||
123 | 142 | raise burrow.backend.InvalidArguments() | ||
124 | 143 | if response.status == 404: | ||
125 | 144 | raise burrow.backend.NotFound() | ||
126 | 145 | raise Exception(response.reason) | ||
127 | 118 | 146 | ||
128 | === modified file 'burrow/frontend/wsgi.py' | |||
129 | --- burrow/frontend/wsgi.py 2011-08-09 17:22:31 +0000 | |||
130 | +++ burrow/frontend/wsgi.py 2011-08-10 05:42:35 +0000 | |||
131 | @@ -173,33 +173,24 @@ | |||
132 | 173 | @webob.dec.wsgify | 173 | @webob.dec.wsgify |
133 | 174 | def _delete_message(self, req, account, queue, message): | 174 | def _delete_message(self, req, account, queue, message): |
134 | 175 | filters = self._parse_filters(req) | 175 | filters = self._parse_filters(req) |
141 | 176 | try: | 176 | body = lambda: self.backend.delete_message(account, queue, message, |
142 | 177 | message = self.backend.delete_message(account, queue, message, | 177 | filters) |
143 | 178 | filters) | 178 | return self._response(body=body) |
138 | 179 | except burrow.backend.NotFound: | ||
139 | 180 | return self._response(status=404) | ||
140 | 181 | return self._response(body=message) | ||
144 | 182 | 179 | ||
145 | 183 | @webob.dec.wsgify | 180 | @webob.dec.wsgify |
146 | 184 | def _get_message(self, req, account, queue, message): | 181 | def _get_message(self, req, account, queue, message): |
147 | 185 | filters = self._parse_filters(req) | 182 | filters = self._parse_filters(req) |
154 | 186 | try: | 183 | body = lambda: self.backend.get_message(account, queue, message, |
155 | 187 | message = self.backend.get_message(account, queue, message, | 184 | filters) |
156 | 188 | filters) | 185 | return self._response(body=body) |
151 | 189 | except burrow.backend.NotFound: | ||
152 | 190 | return self._response(status=404) | ||
153 | 191 | return self._response(body=message) | ||
157 | 192 | 186 | ||
158 | 193 | @webob.dec.wsgify | 187 | @webob.dec.wsgify |
159 | 194 | def _post_message(self, req, account, queue, message): | 188 | def _post_message(self, req, account, queue, message): |
160 | 195 | attributes = self._parse_attributes(req) | 189 | attributes = self._parse_attributes(req) |
161 | 196 | filters = self._parse_filters(req) | 190 | filters = self._parse_filters(req) |
168 | 197 | try: | 191 | body = lambda: self.backend.update_message(account, queue, message, |
169 | 198 | message = self.backend.update_message(account, queue, message, | 192 | attributes, filters) |
170 | 199 | attributes, filters) | 193 | return self._response(body=body) |
165 | 200 | except burrow.backend.NotFound: | ||
166 | 201 | return self._response(status=404) | ||
167 | 202 | return self._response(body=message) | ||
171 | 203 | 194 | ||
172 | 204 | @webob.dec.wsgify | 195 | @webob.dec.wsgify |
173 | 205 | def _put_message(self, req, account, queue, message): | 196 | def _put_message(self, req, account, queue, message): |
174 | @@ -241,12 +232,17 @@ | |||
175 | 241 | return attributes | 232 | return attributes |
176 | 242 | 233 | ||
177 | 243 | def _response(self, status=200, body=None, content_type=None): | 234 | def _response(self, status=200, body=None, content_type=None): |
180 | 244 | if isinstance(body, types.GeneratorType): | 235 | try: |
181 | 245 | try: | 236 | if isinstance(body, types.GeneratorType): |
182 | 246 | body = list(body) | 237 | body = list(body) |
186 | 247 | except burrow.backend.NotFound: | 238 | if isinstance(body, types.FunctionType): |
187 | 248 | body = None | 239 | body = body() |
188 | 249 | status = 404 | 240 | except burrow.backend.InvalidArguments: |
189 | 241 | status = 400 | ||
190 | 242 | body = None | ||
191 | 243 | except burrow.backend.NotFound: | ||
192 | 244 | status = 404 | ||
193 | 245 | body = None | ||
194 | 250 | if body == []: | 246 | if body == []: |
195 | 251 | body = None | 247 | body = None |
196 | 252 | if body is None: | 248 | if body is None: |
197 | @@ -258,11 +254,17 @@ | |||
198 | 258 | if isinstance(body, list) or isinstance(body, dict): | 254 | if isinstance(body, list) or isinstance(body, dict): |
199 | 259 | content_type = 'application/json' | 255 | content_type = 'application/json' |
200 | 260 | else: | 256 | else: |
202 | 261 | content_type = "application/octet-stream" | 257 | content_type = 'application/octet-stream' |
203 | 262 | if content_type == 'application/json': | 258 | if content_type == 'application/json': |
204 | 263 | body = json.dumps(body, indent=2) | 259 | body = json.dumps(body, indent=2) |
207 | 264 | return webob.Response(status=status, body=body, | 260 | response = webob.Response(status=status) |
208 | 265 | content_type=content_type) | 261 | if body is not None: |
209 | 262 | response.content_type = content_type | ||
210 | 263 | if isinstance(body, unicode): | ||
211 | 264 | response.unicode_body = body | ||
212 | 265 | else: | ||
213 | 266 | response.body = body | ||
214 | 267 | return response | ||
215 | 266 | 268 | ||
216 | 267 | 269 | ||
217 | 268 | class WSGILog(object): | 270 | class WSGILog(object): |
218 | 269 | 271 | ||
219 | === added file 'test/backend/test_http.py' | |||
220 | --- test/backend/test_http.py 1970-01-01 00:00:00 +0000 | |||
221 | +++ test/backend/test_http.py 2011-08-10 05:42:35 +0000 | |||
222 | @@ -0,0 +1,77 @@ | |||
223 | 1 | # Copyright (C) 2011 OpenStack LLC. | ||
224 | 2 | # | ||
225 | 3 | # Licensed under the Apache License, Version 2.0 (the "License"); | ||
226 | 4 | # you may not use this file except in compliance with the License. | ||
227 | 5 | # You may obtain a copy of the License at | ||
228 | 6 | # | ||
229 | 7 | # http://www.apache.org/licenses/LICENSE-2.0 | ||
230 | 8 | # | ||
231 | 9 | # Unless required by applicable law or agreed to in writing, software | ||
232 | 10 | # distributed under the License is distributed on an "AS IS" BASIS, | ||
233 | 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
234 | 12 | # See the License for the specific language governing permissions and | ||
235 | 13 | # limitations under the License. | ||
236 | 14 | |||
237 | 15 | import atexit | ||
238 | 16 | import ConfigParser | ||
239 | 17 | import os | ||
240 | 18 | import signal | ||
241 | 19 | import time | ||
242 | 20 | |||
243 | 21 | import burrow.server | ||
244 | 22 | import burrow.backend.http | ||
245 | 23 | import test.backend.test_memory | ||
246 | 24 | |||
247 | 25 | |||
248 | 26 | class TestHTTP(test.backend.test_memory.TestMemory): | ||
249 | 27 | '''Unittests for the HTTP backend.''' | ||
250 | 28 | |||
251 | 29 | def setUp(self): | ||
252 | 30 | config = (ConfigParser.ConfigParser(), 'test') | ||
253 | 31 | self.backend = burrow.backend.http.Backend(config) | ||
254 | 32 | self.check_empty() | ||
255 | 33 | |||
256 | 34 | |||
257 | 35 | def kill_server(): | ||
258 | 36 | try: | ||
259 | 37 | pid_file = open('server.pid', 'r') | ||
260 | 38 | pid = pid_file.read() | ||
261 | 39 | pid_file.close() | ||
262 | 40 | try: | ||
263 | 41 | os.kill(int(pid), signal.SIGUSR1) | ||
264 | 42 | time.sleep(1) | ||
265 | 43 | os.kill(int(pid), signal.SIGTERM) | ||
266 | 44 | except OSError: | ||
267 | 45 | pass | ||
268 | 46 | os.unlink('server.pid') | ||
269 | 47 | except IOError: | ||
270 | 48 | pass | ||
271 | 49 | |||
272 | 50 | |||
273 | 51 | def start_server(): | ||
274 | 52 | pid = os.fork() | ||
275 | 53 | if pid == 0: | ||
276 | 54 | try: | ||
277 | 55 | import coverage | ||
278 | 56 | cov = coverage.coverage(data_suffix=True) | ||
279 | 57 | cov.start() | ||
280 | 58 | |||
281 | 59 | def save_coverage(signum, frame): | ||
282 | 60 | cov.save() | ||
283 | 61 | |||
284 | 62 | signal.signal(signal.SIGUSR1, save_coverage) | ||
285 | 63 | except: | ||
286 | 64 | pass | ||
287 | 65 | server = burrow.server.Server(add_default_log_handler=False) | ||
288 | 66 | server.frontends[0].default_ttl = 0 | ||
289 | 67 | server.run() | ||
290 | 68 | os.exit(0) | ||
291 | 69 | pid_file = open('server.pid', 'w') | ||
292 | 70 | pid_file.write(str(pid)) | ||
293 | 71 | pid_file.close() | ||
294 | 72 | time.sleep(1) | ||
295 | 73 | |||
296 | 74 | |||
297 | 75 | kill_server() | ||
298 | 76 | start_server() | ||
299 | 77 | atexit.register(kill_server) | ||
300 | 0 | 78 | ||
301 | === modified file 'test/backend/test_memory.py' | |||
302 | --- test/backend/test_memory.py 2011-08-09 22:53:44 +0000 | |||
303 | +++ test/backend/test_memory.py 2011-08-10 05:42:35 +0000 | |||
304 | @@ -75,7 +75,7 @@ | |||
305 | 75 | self.backend.create_message('a', 'q', 'm', 'test') | 75 | self.backend.create_message('a', 'q', 'm', 'test') |
306 | 76 | filters = dict(detail='bad') | 76 | filters = dict(detail='bad') |
307 | 77 | accounts = self.backend.delete_accounts(filters) | 77 | accounts = self.backend.delete_accounts(filters) |
309 | 78 | self.assertRaises(burrow.backend.BadDetail, list, accounts) | 78 | self.assertRaises(burrow.backend.InvalidArguments, list, accounts) |
310 | 79 | self.assertEquals([], list(self.backend.delete_accounts())) | 79 | self.assertEquals([], list(self.backend.delete_accounts())) |
311 | 80 | 80 | ||
312 | 81 | def test_accounts_delete_marker(self): | 81 | def test_accounts_delete_marker(self): |
313 | @@ -145,7 +145,7 @@ | |||
314 | 145 | self.backend.create_message('a', 'q', 'm', 'test') | 145 | self.backend.create_message('a', 'q', 'm', 'test') |
315 | 146 | filters = dict(detail='bad') | 146 | filters = dict(detail='bad') |
316 | 147 | accounts = self.backend.get_accounts(filters) | 147 | accounts = self.backend.get_accounts(filters) |
318 | 148 | self.assertRaises(burrow.backend.BadDetail, list, accounts) | 148 | self.assertRaises(burrow.backend.InvalidArguments, list, accounts) |
319 | 149 | self.assertEquals([], list(self.backend.delete_accounts())) | 149 | self.assertEquals([], list(self.backend.delete_accounts())) |
320 | 150 | 150 | ||
321 | 151 | def test_accounts_get_marker(self): | 151 | def test_accounts_get_marker(self): |
322 | @@ -237,7 +237,7 @@ | |||
323 | 237 | self.backend.create_message('a', 'q', 'm', 'test') | 237 | self.backend.create_message('a', 'q', 'm', 'test') |
324 | 238 | filters = dict(detail='bad') | 238 | filters = dict(detail='bad') |
325 | 239 | queues = self.backend.delete_queues('a', filters) | 239 | queues = self.backend.delete_queues('a', filters) |
327 | 240 | self.assertRaises(burrow.backend.BadDetail, list, queues) | 240 | self.assertRaises(burrow.backend.InvalidArguments, list, queues) |
328 | 241 | self.assertEquals([], list(self.backend.delete_queues('a'))) | 241 | self.assertEquals([], list(self.backend.delete_queues('a'))) |
329 | 242 | 242 | ||
330 | 243 | def test_queues_delete_marker(self): | 243 | def test_queues_delete_marker(self): |
331 | @@ -307,7 +307,7 @@ | |||
332 | 307 | self.backend.create_message('a', 'q', 'm', 'test') | 307 | self.backend.create_message('a', 'q', 'm', 'test') |
333 | 308 | filters = dict(detail='bad') | 308 | filters = dict(detail='bad') |
334 | 309 | queues = self.backend.get_queues('a', filters) | 309 | queues = self.backend.get_queues('a', filters) |
336 | 310 | self.assertRaises(burrow.backend.BadDetail, list, queues) | 310 | self.assertRaises(burrow.backend.InvalidArguments, list, queues) |
337 | 311 | self.assertEquals([], list(self.backend.delete_queues('a'))) | 311 | self.assertEquals([], list(self.backend.delete_queues('a'))) |
338 | 312 | 312 | ||
339 | 313 | def test_queues_get_marker(self): | 313 | def test_queues_get_marker(self): |
340 | @@ -428,7 +428,7 @@ | |||
341 | 428 | self.backend.create_message('a', 'q', 'm', 'test') | 428 | self.backend.create_message('a', 'q', 'm', 'test') |
342 | 429 | filters = dict(detail='bad') | 429 | filters = dict(detail='bad') |
343 | 430 | messages = self.backend.delete_messages('a', 'q', filters) | 430 | messages = self.backend.delete_messages('a', 'q', filters) |
345 | 431 | self.assertRaises(burrow.backend.BadDetail, list, messages) | 431 | self.assertRaises(burrow.backend.InvalidArguments, list, messages) |
346 | 432 | self.assertEquals([], list(self.backend.delete_messages('a', 'q'))) | 432 | self.assertEquals([], list(self.backend.delete_messages('a', 'q'))) |
347 | 433 | 433 | ||
348 | 434 | def test_messages_delete_marker(self): | 434 | def test_messages_delete_marker(self): |
349 | @@ -514,7 +514,7 @@ | |||
350 | 514 | self.backend.create_message('a', 'q', 'm', 'test') | 514 | self.backend.create_message('a', 'q', 'm', 'test') |
351 | 515 | filters = dict(detail='bad') | 515 | filters = dict(detail='bad') |
352 | 516 | messages = self.backend.get_messages('a', 'q', filters) | 516 | messages = self.backend.get_messages('a', 'q', filters) |
354 | 517 | self.assertRaises(burrow.backend.BadDetail, list, messages) | 517 | self.assertRaises(burrow.backend.InvalidArguments, list, messages) |
355 | 518 | self.delete_messages() | 518 | self.delete_messages() |
356 | 519 | 519 | ||
357 | 520 | def test_messages_get_marker(self): | 520 | def test_messages_get_marker(self): |
358 | @@ -618,7 +618,7 @@ | |||
359 | 618 | attributes = dict(ttl=100, hide=200) | 618 | attributes = dict(ttl=100, hide=200) |
360 | 619 | filters = dict(detail='bad') | 619 | filters = dict(detail='bad') |
361 | 620 | messages = self.backend.update_messages('a', 'q', attributes, filters) | 620 | messages = self.backend.update_messages('a', 'q', attributes, filters) |
363 | 621 | self.assertRaises(burrow.backend.BadDetail, list, messages) | 621 | self.assertRaises(burrow.backend.InvalidArguments, list, messages) |
364 | 622 | self.delete_messages() | 622 | self.delete_messages() |
365 | 623 | 623 | ||
366 | 624 | def test_messages_update_marker(self): | 624 | def test_messages_update_marker(self): |
367 | @@ -752,7 +752,7 @@ | |||
368 | 752 | def test_message_delete_detail_bad(self): | 752 | def test_message_delete_detail_bad(self): |
369 | 753 | self.backend.create_message('a', 'q', 'm', 'test') | 753 | self.backend.create_message('a', 'q', 'm', 'test') |
370 | 754 | filters = dict(detail='bad') | 754 | filters = dict(detail='bad') |
372 | 755 | self.assertRaises(burrow.backend.BadDetail, | 755 | self.assertRaises(burrow.backend.InvalidArguments, |
373 | 756 | self.backend.delete_message, 'a', 'q', 'm', filters) | 756 | self.backend.delete_message, 'a', 'q', 'm', filters) |
374 | 757 | self.delete_messages() | 757 | self.delete_messages() |
375 | 758 | 758 | ||
376 | @@ -794,7 +794,7 @@ | |||
377 | 794 | def test_message_get_detail_bad(self): | 794 | def test_message_get_detail_bad(self): |
378 | 795 | self.backend.create_message('a', 'q', 'm', 'test') | 795 | self.backend.create_message('a', 'q', 'm', 'test') |
379 | 796 | filters = dict(detail='bad') | 796 | filters = dict(detail='bad') |
381 | 797 | self.assertRaises(burrow.backend.BadDetail, | 797 | self.assertRaises(burrow.backend.InvalidArguments, |
382 | 798 | self.backend.get_message, 'a', 'q', 'm', filters) | 798 | self.backend.get_message, 'a', 'q', 'm', filters) |
383 | 799 | self.delete_messages() | 799 | self.delete_messages() |
384 | 800 | 800 | ||
385 | @@ -848,27 +848,27 @@ | |||
386 | 848 | self.backend.create_message('a', 'q', 'm', 'test') | 848 | self.backend.create_message('a', 'q', 'm', 'test') |
387 | 849 | attributes = dict(ttl=100, hide=200) | 849 | attributes = dict(ttl=100, hide=200) |
388 | 850 | filters = dict(detail='bad') | 850 | filters = dict(detail='bad') |
390 | 851 | self.assertRaises(burrow.backend.BadDetail, | 851 | self.assertRaises(burrow.backend.InvalidArguments, |
391 | 852 | self.backend.update_message, 'a', 'q', 'm', attributes, filters) | 852 | self.backend.update_message, 'a', 'q', 'm', attributes, filters) |
392 | 853 | self.delete_messages() | 853 | self.delete_messages() |
393 | 854 | 854 | ||
394 | 855 | def test_message_ttl(self): | 855 | def test_message_ttl(self): |
395 | 856 | attributes = dict(ttl=1) | 856 | attributes = dict(ttl=1) |
396 | 857 | self.backend.create_message('a', 'q', 'm', 'test', attributes) | 857 | self.backend.create_message('a', 'q', 'm', 'test', attributes) |
398 | 858 | time.sleep(1) | 858 | time.sleep(2) |
399 | 859 | self.backend.clean() | 859 | self.backend.clean() |
400 | 860 | 860 | ||
401 | 861 | def test_message_ttl_large(self): | 861 | def test_message_ttl_large(self): |
402 | 862 | attributes = dict(ttl=1) | 862 | attributes = dict(ttl=1) |
403 | 863 | for x in xrange(0, 1000): | 863 | for x in xrange(0, 1000): |
404 | 864 | self.backend.create_message('a', 'q', str(x), str(x), attributes) | 864 | self.backend.create_message('a', 'q', str(x), str(x), attributes) |
406 | 865 | time.sleep(1) | 865 | time.sleep(2) |
407 | 866 | self.backend.clean() | 866 | self.backend.clean() |
408 | 867 | 867 | ||
409 | 868 | def test_message_hide(self): | 868 | def test_message_hide(self): |
410 | 869 | attributes = dict(hide=1) | 869 | attributes = dict(hide=1) |
411 | 870 | self.backend.create_message('a', 'q', 'm', 'test', attributes) | 870 | self.backend.create_message('a', 'q', 'm', 'test', attributes) |
413 | 871 | time.sleep(1) | 871 | time.sleep(2) |
414 | 872 | self.backend.clean() | 872 | self.backend.clean() |
415 | 873 | message = self.backend.get_message('a', 'q', 'm') | 873 | message = self.backend.get_message('a', 'q', 'm') |
416 | 874 | self.assertEquals(dict(id='m', ttl=0, hide=0, body='test'), message) | 874 | self.assertEquals(dict(id='m', ttl=0, hide=0, body='test'), message) |
417 | @@ -878,7 +878,7 @@ | |||
418 | 878 | attributes = dict(hide=1) | 878 | attributes = dict(hide=1) |
419 | 879 | for x in xrange(0, 1000): | 879 | for x in xrange(0, 1000): |
420 | 880 | self.backend.create_message('a', 'q', str(x), str(x), attributes) | 880 | self.backend.create_message('a', 'q', str(x), str(x), attributes) |
422 | 881 | time.sleep(1) | 881 | time.sleep(2) |
423 | 882 | self.backend.clean() | 882 | self.backend.clean() |
424 | 883 | message = self.backend.get_message('a', 'q', '0') | 883 | message = self.backend.get_message('a', 'q', '0') |
425 | 884 | self.assertEquals(dict(id='0', ttl=0, hide=0, body='0'), message) | 884 | self.assertEquals(dict(id='0', ttl=0, hide=0, body='0'), message) |