Skip to content

Commit

Permalink
Implement SQS get_queue_url. Closes #18
Browse files Browse the repository at this point in the history
  • Loading branch information
spulec committed Apr 19, 2013
1 parent afc7a64 commit dbf2368
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 0 deletions.
15 changes: 15 additions & 0 deletions moto/sqs/responses.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ def create_queue(self):
template = Template(CREATE_QUEUE_RESPONSE)
return template.render(queue=queue)

def get_queue_url(self):
queue_name = self.querystring.get("QueueName")[0]
queue = sqs_backend.get_queue(queue_name)
template = Template(GET_QUEUE_URL_RESPONSE)
return template.render(queue=queue)

def list_queues(self):
queues = sqs_backend.list_queues()
template = Template(LIST_QUEUES_RESPONSE)
Expand Down Expand Up @@ -143,6 +149,15 @@ def receive_message(self):
</ResponseMetadata>
</CreateQueueResponse>"""

GET_QUEUE_URL_RESPONSE = """<GetQueueUrlResponse>
<GetQueueUrlResult>
<QueueUrl>http://sqs.us-east-1.amazonaws.com/123456789012/{{ queue.name }}</QueueUrl>
</GetQueueUrlResult>
<ResponseMetadata>
<RequestId>470a6f13-2ed9-4181-ad8a-2fdea142988e</RequestId>
</ResponseMetadata>
</GetQueueUrlResponse>"""

LIST_QUEUES_RESPONSE = """<ListQueuesResponse>
<ListQueuesResult>
{% for queue in queues %}
Expand Down
10 changes: 10 additions & 0 deletions tests/test_sqs/test_sqs.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@ def test_create_queue():
all_queues[0].get_timeout().should.equal(60)


@mock_sqs
def test_get_queue():
conn = boto.connect_sqs('the_key', 'the_secret')
conn.create_queue("test-queue", visibility_timeout=60)

queue = conn.get_queue("test-queue")
queue.name.should.equal("test-queue")
queue.get_timeout().should.equal(60)


@mock_sqs
def test_delete_queue():
conn = boto.connect_sqs('the_key', 'the_secret')
Expand Down

1 comment on commit dbf2368

@antimora
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a bug regarding this implementation #23. According to the boto's docs, when a queue is not found, None should be returned.

Please sign in to comment.