Revision 69c8d65d snf-cyclades-app/synnefo/api/tests/ports.py
b/snf-cyclades-app/synnefo/api/tests/ports.py | ||
---|---|---|
240 | 240 |
user=vm.userid) |
241 | 241 |
self.assertEqual(response.status_code, 201) |
242 | 242 |
|
243 |
@patch("synnefo.db.models.get_rapi_client") |
|
244 |
def test_create_port_with_address(self, mrapi): |
|
245 |
"""Test creation if IP address is specified.""" |
|
246 |
mrapi().ModifyInstance.return_value = 42 |
|
247 |
vm = dbmf.VirtualMachineFactory() |
|
248 |
net = dbmf.NetworkWithSubnetFactory(userid=vm.userid, |
|
249 |
public=False, |
|
250 |
subnet__cidr="192.168.2.0/24", |
|
251 |
subnet__pool__size=1, |
|
252 |
subnet__pool__offset=1) |
|
253 |
request = { |
|
254 |
"port": { |
|
255 |
"name": "port_with_address", |
|
256 |
"network_id": str(net.id), |
|
257 |
"device_id": str(vm.id), |
|
258 |
"fixed_ips": [{"ip_address": "192.168.2.1"}] |
|
259 |
} |
|
260 |
} |
|
261 |
with override_settings(settings, GANETI_USE_HOTPLUG=True): |
|
262 |
response = self.post(PORTS_URL, params=json.dumps(request), |
|
263 |
user=vm.userid) |
|
264 |
self.assertEqual(response.status_code, 201) |
|
265 |
new_port_ip = json.loads(response.content)["port"]["fixed_ips"][0] |
|
266 |
self.assertEqual(new_port_ip["ip_address"], "192.168.2.1") |
|
267 |
|
|
268 |
# But 409 if address is already used |
|
269 |
with override_settings(settings, GANETI_USE_HOTPLUG=True): |
|
270 |
response = self.post(PORTS_URL, params=json.dumps(request), |
|
271 |
user=vm.userid) |
|
272 |
self.assertConflict(response) |
|
273 |
|
|
274 |
# And bad request if IPv6 address is specified |
|
275 |
request["port"]["fixed_ips"][0]["ip_address"] = "babe::" |
|
276 |
with override_settings(settings, GANETI_USE_HOTPLUG=True): |
|
277 |
response = self.post(PORTS_URL, params=json.dumps(request), |
|
278 |
user=vm.userid) |
|
279 |
self.assertBadRequest(response) |
|
280 |
|
|
243 | 281 |
def test_add_nic_to_deleted_network(self): |
244 | 282 |
user = 'userr' |
245 | 283 |
vm = dbmf.VirtualMachineFactory(name='yo', userid=user, |
Also available in: Unified diff