@@ -0,0 +1,1671 @@
+# -*- coding: utf-8 -*-%0A# Licensed to the Apache Software Foundation (ASF) under one or more%C2%A7%0A# contributor license agreements.  See the NOTICE file distributed with%0A# this work for additional information regarding copyright ownership.%0A# The ASF licenses this file to You under the Apache License, Version 2.0%0A# (the %22License%22); you may not use this file except in compliance with%0A# the License.  You may obtain a copy of the License at%0A#%0A#     http://www.apache.org/licenses/LICENSE-2.0%0A#%0A# Unless required by applicable law or agreed to in writing, software%0A# distributed under the License is distributed on an %22AS IS%22 BASIS,%0A# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A# See the License for the specific language governing permissions and%0A# limitations under the License.%0A%0Aimport sys%0Aimport unittest%0A%0Afrom libcloud.compute.deployment import MultiStepDeployment, Deployment%0Afrom libcloud.compute.base import Node%0Afrom libcloud.compute.types import NodeState%0Afrom libcloud.compute.drivers.ec2 import EC2NodeDriver%0A%0Aclass MockDeployment(Deployment):%0A    def run(self, node, client):%0A        return node%0A%0Aclass DeploymentTests(unittest.TestCase):%0A%0A    def test_multi_step_deployment(self):%0A        msd = MultiStepDeployment()%0A        self.assertEqual(len(msd.steps), 0)%0A%0A        msd.add(MockDeployment())%0A        self.assertEqual(len(msd.steps), 1)%0A%0A        node = Node(id=1, name='test', state=NodeState.RUNNING,%0A                   public_ip=%5B'1.2.3.4'%5D, private_ip='1.2.3.5',%0A                   driver=EC2NodeDriver)%0A        self.assertEqual(node, msd.run(node=node, client=None))%0A%0Aif __name__ == '__main__':%0A    sys.exit(unittest.main())%0A

Add tests for deployment.