Skip to content

Commit

Permalink
Merge 13ffd12 into a2992d9
Browse files Browse the repository at this point in the history
  • Loading branch information
ks129 committed Dec 14, 2020
2 parents a2992d9 + 13ffd12 commit 6c8864b
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 1 deletion.
30 changes: 30 additions & 0 deletions pydis_site/apps/api/tests/test_infractions.py
Original file line number Diff line number Diff line change
Expand Up @@ -512,6 +512,36 @@ def test_integrity_error_if_missing_active_field(self):
)


class InfractionDeletionTests(APISubdomainTestCase):
@classmethod
def setUpTestData(cls):
cls.user = User.objects.create(
id=9876,
name='Unknown user',
discriminator=9876,
)

cls.warning = Infraction.objects.create(
user_id=cls.user.id,
actor_id=cls.user.id,
type='warning',
active=False
)

def test_delete_unknown_infraction_returns_404(self):
url = reverse('bot:infraction-detail', args=('something',), host='api')
response = self.client.delete(url)

self.assertEqual(response.status_code, 404)

def test_delete_known_infraction_returns_204(self):
url = reverse('bot:infraction-detail', args=(self.warning.id,), host='api')
response = self.client.delete(url)

self.assertEqual(response.status_code, 204)
self.assertRaises(Infraction.DoesNotExist, Infraction.objects.get, id=self.warning.id)


class ExpandedTests(APISubdomainTestCase):
@classmethod
def setUpTestData(cls):
Expand Down
16 changes: 15 additions & 1 deletion pydis_site/apps/api/viewsets/bot/infraction.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from rest_framework.filters import OrderingFilter, SearchFilter
from rest_framework.mixins import (
CreateModelMixin,
DestroyModelMixin,
ListModelMixin,
RetrieveModelMixin
)
Expand All @@ -18,7 +19,13 @@
)


class InfractionViewSet(CreateModelMixin, RetrieveModelMixin, ListModelMixin, GenericViewSet):
class InfractionViewSet(
CreateModelMixin,
RetrieveModelMixin,
ListModelMixin,
GenericViewSet,
DestroyModelMixin
):
"""
View providing CRUD operations on infractions for Discord users.
Expand Down Expand Up @@ -108,6 +115,13 @@ class InfractionViewSet(CreateModelMixin, RetrieveModelMixin, ListModelMixin, Ge
- 400: if a field in the request body is invalid or disallowed
- 404: if an infraction with the given `id` could not be found
### DELETE /bot/infractions/<id:int>
Delete the infraction with the given `id`.
#### Status codes
- 204: returned on success
- 404: if a infraction with the given `id` does not exist
### Expanded routes
All routes support expansion of `user` and `actor` in responses. To use an expanded route,
append `/expanded` to the end of the route e.g. `GET /bot/infractions/expanded`.
Expand Down

0 comments on commit 6c8864b

Please sign in to comment.