fixes bug 911255 show on deallocated ip fails
Change-Id: I92d6ebc44414bc15989a4a9dd90acf24250d38fb
This commit is contained in:
parent
f1091479c1
commit
14966a13f3
@ -644,6 +644,10 @@ class IpAddress(ModelBase):
|
||||
def interface(self):
|
||||
return Interface.get(self.interface_id)
|
||||
|
||||
@property
|
||||
def virtual_interface_id(self):
|
||||
return self.interface.virtual_interface_id if self.interface else None
|
||||
|
||||
@utils.cached_property
|
||||
def mac_address(self):
|
||||
return MacAddress.get_by(interface_id=self.interface_id)
|
||||
|
@ -38,7 +38,7 @@ class IpConfigurationView(object):
|
||||
def _ip_address_data(self, ip):
|
||||
return {
|
||||
'id': ip.id,
|
||||
'interface_id': ip.interface.virtual_interface_id,
|
||||
'interface_id': ip.virtual_interface_id,
|
||||
'address': ip.address,
|
||||
'version': ip.version,
|
||||
}
|
||||
|
@ -25,7 +25,9 @@ from melange.db import db_api
|
||||
class BaseTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
#maxDiff=None ensures diff output of assert methods are not truncated
|
||||
self.maxDiff = None
|
||||
|
||||
self.mock = mox.Mox()
|
||||
db_api.clean_db()
|
||||
super(BaseTest, self).setUp()
|
||||
|
@ -1313,13 +1313,19 @@ class TestIpAddress(tests.BaseTest):
|
||||
self.assertEqual(ipv4.version, 4)
|
||||
self.assertEqual(ipv6.version, 6)
|
||||
|
||||
def test_retrives_interface(self):
|
||||
def test_retrieves_interface(self):
|
||||
interface = factory_models.InterfaceFactory(virtual_interface_id="112")
|
||||
ip = factory_models.IpAddressFactory(interface_id=interface.id)
|
||||
|
||||
self.assertEqual(ip.interface, interface)
|
||||
self.assertEqual(ip.interface.virtual_interface_id, "112")
|
||||
|
||||
def test_virtual_interface_id(self):
|
||||
interface = factory_models.InterfaceFactory(virtual_interface_id="112")
|
||||
ip = factory_models.IpAddressFactory(interface_id=interface.id)
|
||||
|
||||
self.assertEqual(ip.virtual_interface_id, "112")
|
||||
|
||||
def test_mac_address(self):
|
||||
mac_range = factory_models.MacAddressRangeFactory()
|
||||
interface = factory_models.InterfaceFactory()
|
||||
|
@ -47,7 +47,7 @@ class ControllerTestBase(tests.BaseTest):
|
||||
|
||||
class DummyApp(wsgi.Router):
|
||||
|
||||
def __init__(self, controller ):
|
||||
def __init__(self, controller):
|
||||
mapper = routes.Mapper()
|
||||
mapper.resource("resource", "/resources",
|
||||
controller=controller.create_resource())
|
||||
|
@ -39,6 +39,18 @@ class TestIpConfigurationView(tests.BaseTest):
|
||||
self.assertEqual(expected_ip1_config, ip_configuration_view.data()[0])
|
||||
self.assertEqual(expected_ip2_config, ip_configuration_view.data()[1])
|
||||
|
||||
def test_data_returns_deallocated_ip_info(self):
|
||||
block = factory_models.IpBlockFactory()
|
||||
interface = factory_models.InterfaceFactory(virtual_interface_id="123")
|
||||
ip = factory_models.IpAddressFactory(ip_block_id=block.id,
|
||||
interface_id=interface.id)
|
||||
ip.deallocate()
|
||||
deallocated_ip = models.IpAddress.find(ip.id)
|
||||
expected_ip_config = _ip_data(deallocated_ip, block)
|
||||
ip_configuration_view = views.IpConfigurationView(deallocated_ip)
|
||||
|
||||
self.assertEqual(expected_ip_config, ip_configuration_view.data()[0])
|
||||
|
||||
def test_data_returns_route_info(self):
|
||||
block = factory_models.IpBlockFactory()
|
||||
interface = factory_models.InterfaceFactory(virtual_interface_id="123")
|
||||
@ -57,7 +69,7 @@ class TestIpConfigurationView(tests.BaseTest):
|
||||
def _ip_data(ip, block):
|
||||
return {
|
||||
'id': ip.id,
|
||||
'interface_id': ip.interface.virtual_interface_id,
|
||||
'interface_id': ip.virtual_interface_id,
|
||||
'address': ip.address,
|
||||
'version': ip.version,
|
||||
'ip_block': {
|
||||
|
Loading…
x
Reference in New Issue
Block a user