Added method to OpenStackHeatStack to return OpenStackRouter objects.
[snaps.git] / snaps / domain / test / network_tests.py
index 592090b..3e449b4 100644 (file)
@@ -24,18 +24,40 @@ class NetworkObjectTests(unittest.TestCase):
     Tests the construction of the snaps.domain.network.Network class
     """
 
-    def test_construction_kwargs(self):
+    def test_construction_kwargs_1(self):
         network = Network(
-            **{'name': 'name', 'id': 'id', 'provider:network_type': 'flat'})
-        self.assertEqual('name', network.name)
-        self.assertEqual('id', network.id)
+            **{'name': 'foo', 'id': 'bar', 'provider:network_type': 'flat',
+               'admin_state_up': False, 'shared': True,
+               'router:external': False})
+        self.assertEqual('foo', network.name)
+        self.assertEqual('bar', network.id)
         self.assertEqual('flat', network.type)
+        self.assertFalse(network.admin_state_up)
+        self.assertFalse(network.external)
+        self.assertTrue(network.shared)
+
+    def test_construction_kwargs_2(self):
+        network = Network(
+            **{'name': 'foo', 'id': 'bar', 'type': 'flat',
+               'admin_state_up': False, 'shared': True,
+               'external': False})
+        self.assertEqual('foo', network.name)
+        self.assertEqual('bar', network.id)
+        self.assertEqual('flat', network.type)
+        self.assertFalse(network.admin_state_up)
+        self.assertFalse(network.external)
+        self.assertTrue(network.shared)
 
     def test_construction_named(self):
-        network = Network(id='id', name='name')
-        self.assertEqual('name', network.name)
-        self.assertEqual('id', network.id)
-        self.assertIsNone(network.type)
+        network = Network(
+            name='foo', id='bar', type='flat', admin_state_up=False,
+            shared=True, external=False)
+        self.assertEqual('foo', network.name)
+        self.assertEqual('bar', network.id)
+        self.assertEqual('flat', network.type)
+        self.assertFalse(network.admin_state_up)
+        self.assertFalse(network.external)
+        self.assertTrue(network.shared)
 
 
 class SubnetObjectTests(unittest.TestCase):
@@ -45,16 +67,39 @@ class SubnetObjectTests(unittest.TestCase):
 
     def test_construction_kwargs(self):
         subnet = Subnet(
-            **{'name': 'name', 'id': 'id', 'cidr': '10.0.0.0/24'})
-        self.assertEqual('name', subnet.name)
-        self.assertEqual('id', subnet.id)
+            **{'name': 'foo', 'id': 'bar', 'cidr': '10.0.0.0/24',
+               'ip_version': 4, 'gateway_ip': '10.0.0.1', 'enable_dhcp': True,
+               'dns_nameservers': ['8.8.8.8'], 'host_routes': list(),
+               'ipv6_ra_mode': 'hello', 'ipv6_address_mode': 'world'})
+        self.assertEqual('foo', subnet.name)
+        self.assertEqual('bar', subnet.id)
         self.assertEqual('10.0.0.0/24', subnet.cidr)
+        self.assertEqual(4, subnet.ip_version)
+        self.assertEqual('10.0.0.1', subnet.gateway_ip)
+        self.assertTrue(subnet.enable_dhcp)
+        self.assertEqual(1, len(subnet.dns_nameservers))
+        self.assertEqual('8.8.8.8', subnet.dns_nameservers[0])
+        self.assertEqual(list(), subnet.host_routes)
+        self.assertEqual('hello', subnet.ipv6_ra_mode)
+        self.assertEqual('world', subnet.ipv6_address_mode)
 
     def test_construction_named(self):
-        subnet = Subnet(cidr='10.0.0.0/24', id='id', name='name')
-        self.assertEqual('name', subnet.name)
-        self.assertEqual('id', subnet.id)
+        subnet = Subnet(
+            name='foo', id='bar', cidr='10.0.0.0/24',
+            ip_version=4, gateway_ip='10.0.0.1', enable_dhcp=True,
+            dns_nameservers=['8.8.8.8'], host_routes=list(),
+            ipv6_ra_mode='hello', ipv6_address_mode='world')
+        self.assertEqual('foo', subnet.name)
+        self.assertEqual('bar', subnet.id)
         self.assertEqual('10.0.0.0/24', subnet.cidr)
+        self.assertEqual(4, subnet.ip_version)
+        self.assertEqual('10.0.0.1', subnet.gateway_ip)
+        self.assertTrue(subnet.enable_dhcp)
+        self.assertEqual(1, len(subnet.dns_nameservers))
+        self.assertEqual('8.8.8.8', subnet.dns_nameservers[0])
+        self.assertEqual(list(), subnet.host_routes)
+        self.assertEqual('hello', subnet.ipv6_ra_mode)
+        self.assertEqual('world', subnet.ipv6_address_mode)
 
 
 class PortDomainObjectTests(unittest.TestCase):
@@ -62,20 +107,95 @@ class PortDomainObjectTests(unittest.TestCase):
     Tests the construction of the snaps.domain.network.Port class
     """
 
-    def test_construction_kwargs(self):
+    def test_construction_ips_kwargs(self):
         ips = ['10', '11']
         port = Port(
-            **{'name': 'name', 'id': 'id', 'ips': ips})
-        self.assertEqual('name', port.name)
-        self.assertEqual('id', port.id)
+            **{'name': 'foo', 'id': 'bar', 'description': 'test desc',
+               'ips': ips, 'mac_address': 'abc123',
+               'allowed_address_pairs': list(), 'admin_state_up': False,
+               'device_id': 'def456', 'device_owner': 'joe',
+               'network_id': 'ghi789', 'port_security_enabled': False,
+               'security_groups': list(), 'tenant_id': 'jkl098'})
+        self.assertEqual('foo', port.name)
+        self.assertEqual('bar', port.id)
+        self.assertEqual('test desc', port.description)
         self.assertEqual(ips, port.ips)
+        self.assertEqual('abc123', port.mac_address)
+        self.assertEqual(list(), port.allowed_address_pairs)
+        self.assertFalse(port.admin_state_up)
+        self.assertEqual('def456', port.device_id)
+        self.assertEqual('joe', port.device_owner)
+        self.assertEqual('ghi789', port.network_id)
+        self.assertFalse(port.port_security_enabled)
+        self.assertEqual(list(), port.security_groups)
+        self.assertEqual(list(), port.security_groups)
 
-    def test_construction_named(self):
+    def test_construction_fixed_ips_kwargs(self):
+        ips = ['10', '11']
+        port = Port(
+            **{'name': 'foo', 'id': 'bar', 'description': 'test desc',
+               'fixed_ips': ips, 'mac_address': 'abc123',
+               'allowed_address_pairs': list(), 'admin_state_up': False,
+               'device_id': 'def456', 'device_owner': 'joe',
+               'network_id': 'ghi789', 'port_security_enabled': False,
+               'security_groups': list(), 'tenant_id': 'jkl098'})
+        self.assertEqual('foo', port.name)
+        self.assertEqual('bar', port.id)
+        self.assertEqual('test desc', port.description)
+        self.assertEqual(ips, port.ips)
+        self.assertEqual('abc123', port.mac_address)
+        self.assertEqual(list(), port.allowed_address_pairs)
+        self.assertFalse(port.admin_state_up)
+        self.assertEqual('def456', port.device_id)
+        self.assertEqual('joe', port.device_owner)
+        self.assertEqual('ghi789', port.network_id)
+        self.assertFalse(port.port_security_enabled)
+        self.assertEqual(list(), port.security_groups)
+        self.assertEqual(list(), port.security_groups)
+
+    def test_construction_named_ips(self):
+        ips = ['10', '11']
+        port = Port(
+            mac_address='abc123', description='test desc', ips=ips, id='bar',
+            name='foo', allowed_address_pairs=list(), admin_state_up=False,
+            device_id='def456', device_owner='joe', network_id='ghi789',
+            port_security_enabled=False, security_groups=list(),
+            tenant_id='jkl098')
+        self.assertEqual('foo', port.name)
+        self.assertEqual('bar', port.id)
+        self.assertEqual('test desc', port.description)
+        self.assertEqual(ips, port.ips)
+        self.assertEqual('abc123', port.mac_address)
+        self.assertEqual(list(), port.allowed_address_pairs)
+        self.assertFalse(port.admin_state_up)
+        self.assertEqual('def456', port.device_id)
+        self.assertEqual('joe', port.device_owner)
+        self.assertEqual('ghi789', port.network_id)
+        self.assertFalse(port.port_security_enabled)
+        self.assertEqual(list(), port.security_groups)
+        self.assertEqual(list(), port.security_groups)
+
+    def test_construction_named_fixed_ips(self):
         ips = ['10', '11']
-        port = Port(ips=ips, id='id', name='name')
-        self.assertEqual('name', port.name)
-        self.assertEqual('id', port.id)
+        port = Port(
+            mac_address='abc123', description='test desc', fixed_ips=ips,
+            id='bar', name='foo', allowed_address_pairs=list(),
+            admin_state_up=False, device_id='def456', device_owner='joe',
+            network_id='ghi789', port_security_enabled=False,
+            security_groups=list(), tenant_id='jkl098')
+        self.assertEqual('foo', port.name)
+        self.assertEqual('bar', port.id)
+        self.assertEqual('test desc', port.description)
         self.assertEqual(ips, port.ips)
+        self.assertEqual('abc123', port.mac_address)
+        self.assertEqual(list(), port.allowed_address_pairs)
+        self.assertFalse(port.admin_state_up)
+        self.assertEqual('def456', port.device_id)
+        self.assertEqual('joe', port.device_owner)
+        self.assertEqual('ghi789', port.network_id)
+        self.assertFalse(port.port_security_enabled)
+        self.assertEqual(list(), port.security_groups)
+        self.assertEqual(list(), port.security_groups)
 
 
 class RouterDomainObjectTests(unittest.TestCase):
@@ -93,7 +213,8 @@ class RouterDomainObjectTests(unittest.TestCase):
         self.assertEqual('hello', router.status)
         self.assertEqual('1234', router.tenant_id)
         self.assertEqual('yes', router.admin_state_up)
-        self.assertEqual('no', router.external_gateway_info)
+        self.assertIsNone(router.external_fixed_ips)
+        self.assertIsNone(router.external_network_id)
 
     def test_construction_named(self):
         router = Router(
@@ -104,7 +225,38 @@ class RouterDomainObjectTests(unittest.TestCase):
         self.assertEqual('hello', router.status)
         self.assertEqual('1234', router.tenant_id)
         self.assertEqual('yes', router.admin_state_up)
-        self.assertEqual('no', router.external_gateway_info)
+        self.assertIsNone(router.external_fixed_ips)
+        self.assertIsNone(router.external_network_id)
+
+    def test_ext_gateway_named(self):
+        ext_gateway = {'network_id': '123',
+                       'external_fixed_ips': ['456', '789']}
+        router = Router(
+            external_fixed_ips=['456', '789'], external_network_id='123',
+            admin_state_up='yes', tenant_id='1234', status='hello', id='id',
+            name='name')
+        self.assertEqual('name', router.name)
+        self.assertEqual('id', router.id)
+        self.assertEqual('hello', router.status)
+        self.assertEqual('1234', router.tenant_id)
+        self.assertEqual('yes', router.admin_state_up)
+        self.assertEqual(['456', '789'], router.external_fixed_ips)
+        self.assertEqual('123', router.external_network_id)
+
+
+    def test_ext_net_ips_named(self):
+        ext_gateway = {'network_id': '123',
+                       'external_fixed_ips': ['456', '789']}
+        router = Router(
+            external_gateway_info=ext_gateway, admin_state_up='yes',
+            tenant_id='1234', status='hello', id='id', name='name')
+        self.assertEqual('name', router.name)
+        self.assertEqual('id', router.id)
+        self.assertEqual('hello', router.status)
+        self.assertEqual('1234', router.tenant_id)
+        self.assertEqual('yes', router.admin_state_up)
+        self.assertEqual(['456', '789'], router.external_fixed_ips)
+        self.assertEqual('123', router.external_network_id)
 
 
 class InterfaceRouterDomainObjectTests(unittest.TestCase):
@@ -133,10 +285,11 @@ class SecurityGroupDomainObjectTests(unittest.TestCase):
 
     def test_construction_proj_id_kwargs(self):
         sec_grp = SecurityGroup(
-            **{'name': 'name', 'id': 'id',
-               'project_id': 'foo'})
+            **{'name': 'name', 'id': 'id', 'project_id': 'foo',
+               'description': 'test desc'})
         self.assertEqual('name', sec_grp.name)
         self.assertEqual('id', sec_grp.id)
+        self.assertEqual('test desc', sec_grp.description)
         self.assertEqual('foo', sec_grp.project_id)
 
     def test_construction_tenant_id_kwargs(self):
@@ -146,11 +299,14 @@ class SecurityGroupDomainObjectTests(unittest.TestCase):
         self.assertEqual('name', sec_grp.name)
         self.assertEqual('id', sec_grp.id)
         self.assertEqual('foo', sec_grp.project_id)
+        self.assertIsNone(sec_grp.description)
 
     def test_construction_named(self):
-        sec_grp = SecurityGroup(tenant_id='foo', id='id', name='name')
+        sec_grp = SecurityGroup(description='test desc', tenant_id='foo',
+                                id='id', name='name')
         self.assertEqual('name', sec_grp.name)
         self.assertEqual('id', sec_grp.id)
+        self.assertEqual('test desc', sec_grp.description)
         self.assertEqual('foo', sec_grp.project_id)