def test_reserve_with_address(self): request = {"floatingip": { "floating_network_id": self.pool.id, "floating_ip_address": "192.168.2.10"} } with mocked_quotaholder(): response = self.post(URL, "test_user", json.dumps(request), "json") self.assertSuccess(response) ip = floating_ips.get() self.assertEqual(json.loads(response.content)["floatingip"], {"instance_id": None, "floating_ip_address": "192.168.2.10", "fixed_ip_address": None, "id": str(ip.id), "port_id": None, "deleted": False, "user_id": "test_user", "tenant_id": "test_user", "shared_to_project": False, "floating_network_id": str(self.pool.id)}) # Already reserved with mocked_quotaholder(): response = self.post(URL, "test_user", json.dumps(request), "json") self.assertFault(response, 409, "conflict") # Used by instance with transaction.commit_on_success(): self.pool.reserve_address("192.168.2.20") request = {"floatingip": { "floating_network_id": self.pool.id, "floating_ip_address": "192.168.2.20"} } with mocked_quotaholder(): response = self.post(URL, "test_user", json.dumps(request), "json") self.assertFault(response, 409, "conflict") # Address out of pool request = {"floatingip": { "floating_network_id": self.pool.id, "floating_ip_address": "192.168.3.5"} } with mocked_quotaholder(): response = self.post(URL, "test_user", json.dumps(request), "json") self.assertBadRequest(response)
def test_bad_transaction_custom_decorator_using(self): with self.assertRaises(TransactionException): cyclades_transaction.commit_on_success(using="default")(self.bad_transaction)() self.assertEqual(VirtualMachine.objects.count(), 0)
def test_bad_transaction_custom_decorator_incorrect_dbs(self): settings.DATABASES['cyclades'] = settings.DATABASES['default'] with self.assertRaises(TransactionException): cyclades_transaction.commit_on_success(self.bad_transaction)() self.assertEqual(VirtualMachine.objects.count(), 0) settings.DATABASES.pop("cyclades")
def test_good_transaction_custom_decorator(self): cyclades_transaction.commit_on_success(self.good_transaction)() self.assertEqual(VirtualMachine.objects.count(), 1)
def test_bad_transaction_custom_decorator_using(self): with self.assertRaises(TransactionException): cyclades_transaction.commit_on_success(using="default")( self.bad_transaction)() self.assertEqual(VirtualMachine.objects.count(), 0)