From db23b7d24cd0ddf1d2e32a94b4c3cde0399c96d9 Mon Sep 17 00:00:00 2001 From: Steve Pulec Date: Wed, 16 Sep 2015 11:22:52 -0400 Subject: [PATCH] Fix state to start as PENDING and only become SCHEDULED on activation. --- moto/datapipeline/models.py | 5 +++-- tests/test_datapipeline/test_datapipeline.py | 20 +++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/moto/datapipeline/models.py b/moto/datapipeline/models.py index 393218558..2eb181bb1 100644 --- a/moto/datapipeline/models.py +++ b/moto/datapipeline/models.py @@ -28,13 +28,14 @@ class Pipeline(object): self.pipeline_id = get_random_pipeline_id() self.creation_time = datetime.datetime.utcnow() self.objects = [] + self.status = "PENDING" def to_json(self): return { "Description": self.description, "Fields": [{ "key": "@pipelineState", - "stringValue": "SCHEDULED" + "stringValue": self.status, }, { "key": "description", "stringValue": self.description @@ -76,7 +77,7 @@ class Pipeline(object): ] def activate(self): - pass + self.status = "SCHEDULED" class DataPipelineBackend(BaseBackend): diff --git a/tests/test_datapipeline/test_datapipeline.py b/tests/test_datapipeline/test_datapipeline.py index e48606780..b374d9a4c 100644 --- a/tests/test_datapipeline/test_datapipeline.py +++ b/tests/test_datapipeline/test_datapipeline.py @@ -6,6 +6,12 @@ import sure # noqa from moto import mock_datapipeline +def get_value_from_fields(key, fields): + for field in fields: + if field['key'] == key: + return field['stringValue'] + + @mock_datapipeline def test_create_pipeline(): conn = boto.datapipeline.connect_to_region("us-west-2") @@ -21,12 +27,7 @@ def test_create_pipeline(): pipeline_description["PipelineId"].should.equal(pipeline_id) fields = pipeline_description['Fields'] - def get_value_from_fields(key, fields): - for field in fields: - if field['key'] == key: - return field['stringValue'] - - get_value_from_fields('@pipelineState', fields).should.equal("SCHEDULED") + get_value_from_fields('@pipelineState', fields).should.equal("PENDING") get_value_from_fields('uniqueId', fields).should.equal("some-unique-id") @@ -123,4 +124,9 @@ def test_activate_pipeline(): pipeline_id = res["pipelineId"] conn.activate_pipeline(pipeline_id) - # TODO what do we need to assert here. Change in pipeline status? + pipeline_descriptions = conn.describe_pipelines([pipeline_id])["PipelineDescriptionList"] + pipeline_descriptions.should.have.length_of(1) + pipeline_description = pipeline_descriptions[0] + fields = pipeline_description['Fields'] + + get_value_from_fields('@pipelineState', fields).should.equal("SCHEDULED")