From 4c86fd46d772e1fd3789d9ed2a76b9b92cce0872 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Fri, 4 Jan 2013 13:05:31 +0000 Subject: Rename module for basic relational field tests --- rest_framework/tests/relations.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 rest_framework/tests/relations.py (limited to 'rest_framework/tests/relations.py') diff --git a/rest_framework/tests/relations.py b/rest_framework/tests/relations.py new file mode 100644 index 00000000..108ec473 --- /dev/null +++ b/rest_framework/tests/relations.py @@ -0,0 +1,22 @@ +""" +General tests for relational fields. +""" + +from django.db import models +from django.test import TestCase +from rest_framework import serializers + + +class NullModel(models.Model): + pass + + +class FieldTests(TestCase): + def test_pk_related_field_with_empty_string(self): + """ + Regression test for #446 + + https://github.com/tomchristie/django-rest-framework/issues/446 + """ + field = serializers.PrimaryKeyRelatedField(queryset=NullModel.objects.all()) + self.assertRaises(serializers.ValidationError, field.from_native, ('',)) -- cgit v1.2.3 From eb14278a3b08247c0aff5b2338a98203b51728c3 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Fri, 4 Jan 2013 13:50:40 +0000 Subject: Add proper validation for updating relational fields with incorrect types. Fixes #446. --- rest_framework/tests/relations.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'rest_framework/tests/relations.py') diff --git a/rest_framework/tests/relations.py b/rest_framework/tests/relations.py index 108ec473..91daea8a 100644 --- a/rest_framework/tests/relations.py +++ b/rest_framework/tests/relations.py @@ -19,4 +19,15 @@ class FieldTests(TestCase): https://github.com/tomchristie/django-rest-framework/issues/446 """ field = serializers.PrimaryKeyRelatedField(queryset=NullModel.objects.all()) - self.assertRaises(serializers.ValidationError, field.from_native, ('',)) + self.assertRaises(serializers.ValidationError, field.from_native, '') + self.assertRaises(serializers.ValidationError, field.from_native, []) + + def test_hyperlinked_related_field_with_empty_string(self): + field = serializers.HyperlinkedRelatedField(queryset=NullModel.objects.all(), view_name='') + self.assertRaises(serializers.ValidationError, field.from_native, '') + self.assertRaises(serializers.ValidationError, field.from_native, []) + + def test_slug_related_field_with_empty_string(self): + field = serializers.SlugRelatedField(queryset=NullModel.objects.all(), slug_field='pk') + self.assertRaises(serializers.ValidationError, field.from_native, '') + self.assertRaises(serializers.ValidationError, field.from_native, []) -- cgit v1.2.3