Fix return IPv4 address after validation

Closes-Bug: #1459155
Change-Id: Idaefe0a3c2fde70d6608eeffd818b4ddbcc985fb
This commit is contained in:
Saulius Alisauskas 2015-06-01 14:42:28 -04:00
parent 2b2970d53b
commit 2680d408c7
3 changed files with 23 additions and 0 deletions

View File

@ -217,5 +217,6 @@ class IPv4AddressType(wtypes.UserType):
def validate(value):
try:
netaddr.IPAddress(value, version=4, flags=netaddr.INET_PTON)
return value
except netaddr.AddrFormatError as e:
raise ValueError(six.text_type(e))

View File

@ -519,6 +519,16 @@ class TestPost(api_base.FunctionalTest):
response = self.post_json('/baymodels', cdict, expect_errors=True)
self.assertEqual(400, response.status_int)
@mock.patch.object(api_baymodel.BayModelsController, '_get_image_data')
def test_create_baymodel_with_dns(self, mock_image_data):
mock_image_data.return_value = {'name': 'mock_name',
'os_distro': 'fedora-atomic'}
cdict = apiutils.baymodel_post_data()
response = self.post_json('/baymodels', cdict)
self.assertEqual(201, response.status_int)
self.assertEqual(cdict['dns_nameserver'],
response.json['dns_nameserver'])
class TestDelete(api_base.FunctionalTest):

View File

@ -225,3 +225,15 @@ class TestNameType(base.FunctionalTest):
def test_invalid_name(self):
self.assertRaises(exception.InvalidName, types.NameType.validate, None)
self.assertRaises(exception.InvalidName, types.NameType.validate, '')
class TestIPv4AddressType(base.FunctionalTest):
def test_valid_value(self):
v = types.IPv4AddressType()
self.assertEqual('192.168.0.1', v.validate('192.168.0.1'))
def test_invalid_value(self):
v = types.IPv4AddressType()
self.assertRaises(ValueError, v.validate, "")
self.assertRaises(ValueError, v.validate, "1")