support QueueNamePrefix in the SQS Backend

This commit is contained in:
Michael Ossareh 2014-02-20 11:00:08 -08:00
commit 470ade25eb
4 changed files with 31 additions and 3 deletions

View file

@ -1,5 +1,6 @@
import hashlib
import time
import re
from moto.core import BaseBackend
from moto.core.utils import camelcase_to_underscores, get_random_message_id
@ -73,8 +74,16 @@ class SQSBackend(BaseBackend):
self.queues[name] = queue
return queue
def list_queues(self):
return self.queues.values()
def list_queues(self, queue_name_prefix):
re_str = '.*'
if queue_name_prefix:
re_str = '^{0}.*'.format(queue_name_prefix)
prefix_re = re.compile(re_str)
qs = []
for name, q in self.queues.items():
if prefix_re.search(name):
qs.append(q)
return qs
def get_queue(self, queue_name):
return self.queues.get(queue_name, None)

View file

@ -27,7 +27,8 @@ class QueuesResponse(BaseResponse):
return "", dict(status=404)
def list_queues(self):
queues = sqs_backend.list_queues()
queue_name_prefix = self.querystring.get("QueueNamePrefix", [None])[0]
queues = sqs_backend.list_queues(queue_name_prefix)
template = Template(LIST_QUEUES_RESPONSE)
return template.render(queues=queues)