Merge "Update schema definition for network interfaces port"
This commit is contained in:
commit
e89c1fb40f
|
@ -1325,7 +1325,7 @@ validators = {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
},
|
},
|
||||||
"port": {
|
"port": {
|
||||||
"type": "string",
|
"type": "integer",
|
||||||
},
|
},
|
||||||
"duplex": {
|
"duplex": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
|
|
|
@ -217,6 +217,9 @@ class TestCase(testtools.TestCase):
|
||||||
def assertNoContent(self, response):
|
def assertNoContent(self, response):
|
||||||
self.assertEqual(requests.codes.NO_CONTENT, response.status_code)
|
self.assertEqual(requests.codes.NO_CONTENT, response.status_code)
|
||||||
|
|
||||||
|
def assertBadRequest(self, response):
|
||||||
|
self.assertEqual(requests.codes.BAD_REQUEST, response.status_code)
|
||||||
|
|
||||||
def get(self, url, headers=None, **params):
|
def get(self, url, headers=None, **params):
|
||||||
resp = self.session.get(
|
resp = self.session.get(
|
||||||
url, verify=False, headers=headers, params=params,
|
url, verify=False, headers=headers, params=params,
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
from craton.tests import functional
|
||||||
|
|
||||||
|
|
||||||
|
class APIv1NetworkInterfacesTest(functional.DeviceTestBase):
|
||||||
|
def setUp(self):
|
||||||
|
super(APIv1NetworkInterfacesTest, self).setUp()
|
||||||
|
self.interfaces_url = self.url + '/v1/network-interfaces'
|
||||||
|
|
||||||
|
def test_associate_network_device_with_a_host(self):
|
||||||
|
host = self.create_host('host-0', 'server', '127.0.0.1')
|
||||||
|
|
||||||
|
payload = {
|
||||||
|
'name': 'lo',
|
||||||
|
'ip_address': '127.0.0.1',
|
||||||
|
'device_id': host['id'],
|
||||||
|
'interface_type': 'loopback',
|
||||||
|
}
|
||||||
|
response = self.post(self.interfaces_url, data=payload)
|
||||||
|
self.assertSuccessCreated(response)
|
||||||
|
self.assertIn('Location', response.headers)
|
||||||
|
interface = response.json()
|
||||||
|
self.assertEqual(
|
||||||
|
'{}/{}'.format(self.interfaces_url, interface['id']),
|
||||||
|
response.headers['Location']
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_port_must_be_an_integer_on_create(self):
|
||||||
|
host = self.create_host('host-0', 'server', '127.0.0.1')
|
||||||
|
|
||||||
|
payload = {
|
||||||
|
'name': 'lo',
|
||||||
|
'ip_address': '127.0.0.1',
|
||||||
|
'device_id': host['id'],
|
||||||
|
'interface_type': 'loopback',
|
||||||
|
'port': 'asdf',
|
||||||
|
}
|
||||||
|
response = self.post(self.interfaces_url, data=payload)
|
||||||
|
self.assertBadRequest(response)
|
||||||
|
|
||||||
|
def test_port_must_be_an_integer_on_update(self):
|
||||||
|
host = self.create_host('host-0', 'server', '127.0.0.1')
|
||||||
|
|
||||||
|
payload = {
|
||||||
|
'name': 'lo',
|
||||||
|
'ip_address': '127.0.0.1',
|
||||||
|
'device_id': host['id'],
|
||||||
|
'interface_type': 'loopback',
|
||||||
|
'port': 80,
|
||||||
|
}
|
||||||
|
response = self.post(self.interfaces_url, data=payload)
|
||||||
|
self.assertSuccessCreated(response)
|
||||||
|
interface = response.json()
|
||||||
|
|
||||||
|
url = self.interfaces_url + '/{}'.format(interface['id'])
|
||||||
|
payload = {'port': 'asdf'}
|
||||||
|
response = self.put(url, data=payload)
|
||||||
|
self.assertBadRequest(response)
|
Loading…
Reference in New Issue