def test_related_by_invalid(self): data = { "vid": 100, "name": "Test VLAN 100", "site": "XXX", "status": "active", } url = reverse("ipam-api:vlan-list") self.add_permissions("ipam.add_vlan") with disable_warnings("django.request"): response = self.client.post(url, data, format="json", **self.header) self.assertHttpStatus(response, status.HTTP_400_BAD_REQUEST) self.assertEqual(VLAN.objects.count(), 0)
def test_related_by_attributes_no_match(self): data = { "vid": 100, "name": "Test VLAN 100", "status": "active", "site": {"name": "Site X"}, } url = reverse("ipam-api:vlan-list") self.add_permissions("ipam.add_vlan") with disable_warnings("django.request"): response = self.client.post(url, data, format="json", **self.header) self.assertHttpStatus(response, status.HTTP_400_BAD_REQUEST) self.assertEqual(VLAN.objects.count(), 0) self.assertTrue(response.data["site"][0].startswith("Related object not found"))
def test_delete_vlan_with_prefix(self): """ Attempt and fail to delete a VLAN with a Prefix assigned to it. """ vlan = VLAN.objects.first() Prefix.objects.create(prefix=IPNetwork("192.0.2.0/24"), vlan=vlan) self.add_permissions("ipam.delete_vlan") url = reverse("ipam-api:vlan-detail", kwargs={"pk": vlan.pk}) with disable_warnings("django.request"): response = self.client.delete(url, **self.header) self.assertHttpStatus(response, status.HTTP_409_CONFLICT) content = json.loads(response.content.decode("utf-8")) self.assertIn("detail", content) self.assertTrue(content["detail"].startswith("Unable to delete object."))