From 0cef3328402b13abc8e5e8ccfcc58886b33d3430 Mon Sep 17 00:00:00 2001 From: Hugo Lopes Tavares Date: Wed, 16 Sep 2015 15:49:15 -0400 Subject: [PATCH] Add support to ListPipelines --- moto/datapipeline/models.py | 3 +++ moto/datapipeline/responses.py | 10 ++++++++ tests/test_datapipeline/test_datapipeline.py | 24 ++++++++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/moto/datapipeline/models.py b/moto/datapipeline/models.py index 2eb181bb1..3b31c9eb2 100644 --- a/moto/datapipeline/models.py +++ b/moto/datapipeline/models.py @@ -90,6 +90,9 @@ class DataPipelineBackend(BaseBackend): self.pipelines[pipeline.pipeline_id] = pipeline return pipeline + def list_pipelines(self): + return self.pipelines.values() + def describe_pipelines(self, pipeline_ids): pipelines = [pipeline for pipeline in self.pipelines.values() if pipeline.pipeline_id in pipeline_ids] return pipelines diff --git a/moto/datapipeline/responses.py b/moto/datapipeline/responses.py index 273543329..582e8504f 100644 --- a/moto/datapipeline/responses.py +++ b/moto/datapipeline/responses.py @@ -28,6 +28,16 @@ class DataPipelineResponse(BaseResponse): "pipelineId": pipeline.pipeline_id, }) + def list_pipelines(self): + pipelines = self.datapipeline_backend.list_pipelines() + return json.dumps({ + "HasMoreResults": False, + "Marker": None, + "PipelineIdList": [ + {"Id": pipeline.pipeline_id, "Name": pipeline.name} for pipeline in pipelines + ] + }) + def describe_pipelines(self): pipeline_ids = self.parameters["pipelineIds"] pipelines = self.datapipeline_backend.describe_pipelines(pipeline_ids) diff --git a/tests/test_datapipeline/test_datapipeline.py b/tests/test_datapipeline/test_datapipeline.py index b374d9a4c..e18cbec94 100644 --- a/tests/test_datapipeline/test_datapipeline.py +++ b/tests/test_datapipeline/test_datapipeline.py @@ -130,3 +130,27 @@ def test_activate_pipeline(): fields = pipeline_description['Fields'] get_value_from_fields('@pipelineState', fields).should.equal("SCHEDULED") + + +@mock_datapipeline +def test_listing_pipelines(): + conn = boto.datapipeline.connect_to_region("us-west-2") + res1 = conn.create_pipeline("mypipeline1", "some-unique-id1") + res2 = conn.create_pipeline("mypipeline2", "some-unique-id2") + pipeline_id1 = res1["pipelineId"] + pipeline_id2 = res2["pipelineId"] + + response = conn.list_pipelines() + + response["HasMoreResults"].should.be(False) + response["Marker"].should.be.none + response["PipelineIdList"].should.equal([ + { + "Id": res1["pipelineId"], + "Name": "mypipeline1", + }, + { + "Id": res2["pipelineId"], + "Name": "mypipeline2" + } + ])