aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/relations_hyperlink.py
diff options
context:
space:
mode:
authorTom Christie2013-01-18 21:29:21 +0000
committerTom Christie2013-01-18 21:29:21 +0000
commit211bb89eecfadd6831a0c59852926f16ea6bf733 (patch)
tree23592a21f3a67f1f96ad0e78e1a890d93559138e /rest_framework/tests/relations_hyperlink.py
parent6385ac519defc8e434fd4e24a48a680845341cb7 (diff)
downloaddjango-rest-framework-211bb89eecfadd6831a0c59852926f16ea6bf733.tar.bz2
Raise Validation Errors when relationships receive incorrect types. Fixes #590.
Diffstat (limited to 'rest_framework/tests/relations_hyperlink.py')
-rw-r--r--rest_framework/tests/relations_hyperlink.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/rest_framework/tests/relations_hyperlink.py b/rest_framework/tests/relations_hyperlink.py
index 7d65eae7..6d137f68 100644
--- a/rest_framework/tests/relations_hyperlink.py
+++ b/rest_framework/tests/relations_hyperlink.py
@@ -215,6 +215,13 @@ class HyperlinkedForeignKeyTests(TestCase):
]
self.assertEquals(serializer.data, expected)
+ def test_foreign_key_update_incorrect_type(self):
+ data = {'url': '/foreignkeysource/1/', 'name': u'source-1', 'target': 2}
+ instance = ForeignKeySource.objects.get(pk=1)
+ serializer = ForeignKeySourceSerializer(instance, data=data)
+ self.assertFalse(serializer.is_valid())
+ self.assertEquals(serializer.errors, {'target': [u'Incorrect type. Expected url string, received int.']})
+
def test_reverse_foreign_key_update(self):
data = {'url': '/foreignkeytarget/2/', 'name': u'target-2', 'sources': ['/foreignkeysource/1/', '/foreignkeysource/3/']}
instance = ForeignKeyTarget.objects.get(pk=2)
@@ -227,7 +234,7 @@ class HyperlinkedForeignKeyTests(TestCase):
expected = [
{'url': '/foreignkeytarget/1/', 'name': u'target-1', 'sources': ['/foreignkeysource/1/', '/foreignkeysource/2/', '/foreignkeysource/3/']},
{'url': '/foreignkeytarget/2/', 'name': u'target-2', 'sources': []},
- ]
+ ]
self.assertEquals(new_serializer.data, expected)
serializer.save()