Skip to content

Commit 7b4ad81

Browse files
author
Emmanouil Konstantinidis
committed
Test that errors can exist
1 parent c1f719e commit 7b4ad81

File tree

4 files changed

+18
-3
lines changed

4 files changed

+18
-3
lines changed

tests/serializers.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,14 @@ def get_user(self, obj):
5353
return serializer.data
5454

5555

56-
class OrganisationDetailSerializer(serializers.ModelSerializer):
56+
class OrganisationErroredSerializer(serializers.ModelSerializer):
5757

5858
class Meta:
5959
model = Organisation
6060
fields = ('name', 'slug', 'is_active')
61+
62+
def __init__(self, *args, **kwargs):
63+
super().__init__(*args, **kwargs)
64+
65+
# Should raise a KeyError
66+
self.context["test_value"]

tests/tests.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def test_index_view_with_endpoints(self):
2727
response = self.client.get(reverse('drfdocs'))
2828

2929
self.assertEqual(response.status_code, 200)
30-
self.assertEqual(len(response.context["endpoints"]), 9)
30+
self.assertEqual(len(response.context["endpoints"]), 10)
3131

3232
# Test the login view
3333
self.assertEqual(response.context["endpoints"][0].name_parent, "accounts")
@@ -37,6 +37,9 @@ def test_index_view_with_endpoints(self):
3737
self.assertEqual(response.context["endpoints"][0].fields[0]["type"], "CharField")
3838
self.assertTrue(response.context["endpoints"][0].fields[0]["required"])
3939

40+
# The view "OrganisationErroredView" (organisations/(?P<slug>[\w-]+)/errored/) should contain an error.
41+
self.assertEqual(str(response.context["endpoints"][8].errors), "'test_value'")
42+
4043
@override_settings(REST_FRAMEWORK_DOCS=SETTINGS_HIDE_DOCS)
4144
def test_index_view_docs_hidden(self):
4245
"""

tests/urls.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
organisations_urls = [
1919
url(r'^create/$', view=views.CreateOrganisationView.as_view(), name="create"),
2020
url(r'^(?P<slug>[\w-]+)/members/$', view=views.OrganisationMembersView.as_view(), name="members"),
21-
url(r'^(?P<slug>[\w-]+)/leave/$', view=views.LeaveOrganisationView.as_view(), name="leave")
21+
url(r'^(?P<slug>[\w-]+)/leave/$', view=views.LeaveOrganisationView.as_view(), name="leave"),
22+
url(r'^(?P<slug>[\w-]+)/errored/$', view=views.OrganisationErroredView.as_view(), name="errored")
2223
]
2324

2425
urlpatterns = [

tests/views.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,3 +100,8 @@ def delete(self, request, *args, **kwargs):
100100
instance = self.get_object()
101101
self.perform_destroy(instance)
102102
return Response(status=status.HTTP_204_NO_CONTENT)
103+
104+
105+
class OrganisationErroredView(generics.ListAPIView):
106+
107+
serializer_class = serializers.OrganisationErroredSerializer

0 commit comments

Comments
 (0)