From 890fdc37f85b19122a841fc3e95330bc626245f1 Mon Sep 17 00:00:00 2001 From: tobhai Date: Tue, 1 Sep 2020 14:18:38 +0200 Subject: [PATCH] Fix sqs arn --- skew/resources/aws/sqs.py | 8 ++++++++ .../unit/responses/queues/sqs.ListQueueTags_1.json | 9 +++++++++ tests/unit/responses/queues/sqs.ListQueues_1.json | 9 +++++++++ tests/unit/test_arn.py | 14 +++++++++++++- 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 tests/unit/responses/queues/sqs.ListQueueTags_1.json create mode 100644 tests/unit/responses/queues/sqs.ListQueues_1.json diff --git a/skew/resources/aws/sqs.py b/skew/resources/aws/sqs.py index 7d11c59..e086fa1 100644 --- a/skew/resources/aws/sqs.py +++ b/skew/resources/aws/sqs.py @@ -35,3 +35,11 @@ def __init__(self, client, data, query=None): self.data = {self.Meta.id: data, 'QueueName': data.split('/')[-1]} self._id = self.data['QueueName'] + + @property + def arn(self): + return 'arn:aws:%s:%s:%s:%s' % ( + self._client.service_name, + self._client.region_name, + self._client.account_id, + self.id) diff --git a/tests/unit/responses/queues/sqs.ListQueueTags_1.json b/tests/unit/responses/queues/sqs.ListQueueTags_1.json new file mode 100644 index 0000000..8407e2d --- /dev/null +++ b/tests/unit/responses/queues/sqs.ListQueueTags_1.json @@ -0,0 +1,9 @@ +{ + "status_code": 200, + "data": { + "Tags": { + "Env": "Production", + "Project": "Marketing" + } + } +} diff --git a/tests/unit/responses/queues/sqs.ListQueues_1.json b/tests/unit/responses/queues/sqs.ListQueues_1.json new file mode 100644 index 0000000..c47b33f --- /dev/null +++ b/tests/unit/responses/queues/sqs.ListQueues_1.json @@ -0,0 +1,9 @@ +{ + "status_code": 200, + "data": { + "QueueUrls": [ + "https://us-east-1.queue.amazonaws.com/123456789012/someq" + ] + } + +} diff --git a/tests/unit/test_arn.py b/tests/unit/test_arn.py index 85f27c7..858d8e4 100644 --- a/tests/unit/test_arn.py +++ b/tests/unit/test_arn.py @@ -388,7 +388,6 @@ def test_ec2_address(self): self.assertEqual(l[2].data['Tags'], [{'Key': 'Name', 'Value': 'some-name'}, {'Key': 'Env', 'Value': 'Prod'}]) - def test_vpc_peering_connection(self): placebo_cfg = { 'placebo': placebo, @@ -401,4 +400,17 @@ def test_vpc_peering_connection(self): self.assertEqual(len(l), 1) self.assertEqual(l[0].arn, 'arn:aws:ec2:us-east-1:123456789012:vpc-peering-connection/pcx-027a582b95db2af78') + def test_sqs_queue(self): + placebo_cfg = { + 'placebo': placebo, + 'placebo_dir': self._get_response_path('queues'), + 'placebo_mode': 'playback'} + arn = scan( + 'arn:aws:sqs:us-east-1:123456789012:queue/*', + **placebo_cfg) + l = list(arn) + self.assertEqual(len(l), 1) + self.assertEqual(l[0].arn, 'arn:aws:sqs:us-east-1:123456789012:someq') + self.assertEqual(l[0].tags['Env'], 'Production') + self.assertEqual(l[0].tags['Project'], 'Marketing')