]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Add Quantum port tests to improve coverage.
authorAngus Salkeld <asalkeld@redhat.com>
Fri, 8 Mar 2013 12:12:29 +0000 (23:12 +1100)
committerAngus Salkeld <asalkeld@redhat.com>
Fri, 8 Mar 2013 12:12:29 +0000 (23:12 +1100)
bug 1152445

Change-Id: I6cb5d5dc03e0ed8ffd17cd3e0e2d36e705864bac
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
heat/tests/test_quantum.py

index 98cfedfdc581c7dc26ae670885b415a8438d6162..15f5ad0b9edbdb2d0d0c86bffbaea342f2dc61a1 100644 (file)
@@ -26,6 +26,7 @@ from heat.common import template_format
 from heat.engine import properties
 from heat.engine.resources.quantum import net
 from heat.engine.resources.quantum import floatingip
+from heat.engine.resources.quantum import port
 from heat.engine.resources.quantum.quantum import QuantumResource as qr
 from heat.engine import parser
 
@@ -53,6 +54,21 @@ class FakeQuantum():
                 "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766"
                 }}
 
+    def create_port(self, props):
+        return {'port': {
+                "status": "ACTIVE",
+                "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766"
+                }}
+
+    def delete_port(self, id):
+        return None
+
+    def show_port(self, id):
+        return {'port': {
+                "status": "ACTIVE",
+                "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766"
+                }}
+
     def create_network(self, name):
         return {"network": {
             "status": "ACTIVE",
@@ -185,6 +201,7 @@ class QuantumFloatingIPTest(unittest.TestCase):
     def setUp(self):
         self.m = mox.Mox()
         self.m.StubOutWithMock(floatingip.FloatingIP, 'quantum')
+        self.m.StubOutWithMock(port.Port, 'quantum')
 
     def tearDown(self):
         self.m.UnsetStubs()
@@ -244,3 +261,35 @@ class QuantumFloatingIPTest(unittest.TestCase):
         self.assertEqual(fip.delete(), None)
 
         self.m.VerifyAll()
+
+    def test_port(self):
+        fq = FakeQuantum()
+        port.Port.quantum().MultipleTimes().AndReturn(fq)
+
+        self.m.ReplayAll()
+
+        t = self.load_template('Quantum_floating')
+        stack = self.parse_stack(t)
+
+        p = stack['port_floating']
+        self.assertEqual(None, p.create())
+        self.assertEqual(port.Port.CREATE_COMPLETE, p.state)
+        p.validate()
+
+        port_id = p.FnGetRefId()
+        self.assertEqual('fc68ea2c-b60b-4b4f-bd82-94ec81110766', port_id)
+
+        self.assertEqual('ACTIVE', p.FnGetAtt('status'))
+        try:
+            p.FnGetAtt('Foo')
+            raise Exception('Expected InvalidTemplateAttribute')
+        except exception.InvalidTemplateAttribute:
+            pass
+
+        self.assertEqual('fc68ea2c-b60b-4b4f-bd82-94ec81110766',
+                         p.FnGetAtt('id'))
+
+        self.assertEqual(port.Port.UPDATE_REPLACE,
+                         p.handle_update({}))
+
+        self.m.VerifyAll()