aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/nested_relations.py
diff options
context:
space:
mode:
authorTrey Hunner2012-11-14 15:27:38 -0800
committerMark Aaron Shirley2012-12-19 07:30:19 -0800
commit2910bfb5275c88d30aa73e580a35a46684177d38 (patch)
tree76c049fc3b01b327cafc7b4e62b38ae174d9eb93 /rest_framework/tests/nested_relations.py
parentcbf342900515859f4322d273a7ef8988a119f507 (diff)
downloaddjango-rest-framework-2910bfb5275c88d30aa73e580a35a46684177d38.tar.bz2
Add two functions for more DRY reverse fk tests
Diffstat (limited to 'rest_framework/tests/nested_relations.py')
-rw-r--r--rest_framework/tests/nested_relations.py40
1 files changed, 17 insertions, 23 deletions
diff --git a/rest_framework/tests/nested_relations.py b/rest_framework/tests/nested_relations.py
index 93d95622..c88bd2b3 100644
--- a/rest_framework/tests/nested_relations.py
+++ b/rest_framework/tests/nested_relations.py
@@ -44,57 +44,51 @@ class ReverseForeignKeyTests(TestCase):
self.new_target_data = {'id': 2, 'name': u'target-2', 'sources': []}
self.data = [self.target_data, self.new_target_data]
- def test_reverse_foreign_key_retrieve(self):
+ def save_serialized_target(self, instance, data):
+ serializer = ForeignKeyTargetSerializer(instance, data=data)
+ self.assertTrue(serializer.is_valid())
+ self.assertEquals(serializer.data, data)
+ serializer.save()
+
+ def check_serialized_targets(self, data):
queryset = ForeignKeyTarget.objects.all()
serializer = ForeignKeyTargetSerializer(queryset)
- self.assertEquals(serializer.data, self.data)
+ self.assertEquals(serializer.data, data)
+
+ def test_reverse_foreign_key_retrieve(self):
+ self.check_serialized_targets(self.data)
def test_reverse_foreign_key_create(self):
data = deepcopy(self.new_target_data)
data['sources'].append({'name': u'source-4', 'target': 2})
instance = ForeignKeyTarget.objects.get(pk=2)
- serializer = ForeignKeyTargetSerializer(instance, data=data)
- self.assertTrue(serializer.is_valid())
- self.assertEquals(serializer.data, data)
- serializer.save()
+ self.save_serialized_target(instance, data)
# Ensure target 2 has new source and everything else is as expected
- queryset = ForeignKeyTarget.objects.all()
- serializer = ForeignKeyTargetSerializer(queryset)
expected = deepcopy(self.data)
expected[1]['sources'].append({'id': 4, 'name': 'source-4', 'target': 2})
- self.assertEquals(serializer.data, expected)
+ self.check_serialized_targets(expected)
def test_reverse_foreign_key_update(self):
data = deepcopy(self.target_data)
data['sources'][0]['name'] = 'source-1-changed'
data['sources'][2]['name'] = 'source-3-changed'
instance = ForeignKeyTarget.objects.get(pk=1)
- serializer = ForeignKeyTargetSerializer(instance, data=data)
- self.assertTrue(serializer.is_valid())
- self.assertEquals(serializer.data, data)
- serializer.save()
+ self.save_serialized_target(instance, data)
# Ensure target 1 is updated, and everything else is as expected
- queryset = ForeignKeyTarget.objects.all()
- serializer = ForeignKeyTargetSerializer(queryset)
expected = deepcopy(self.data)
expected[0]['sources'][0]['name'] = 'source-1-changed'
expected[0]['sources'][2]['name'] = 'source-3-changed'
- self.assertEquals(serializer.data, expected)
+ self.check_serialized_targets(expected)
def test_reverse_foreign_key_delete(self):
data = deepcopy(self.target_data)
del data['sources'][2]
instance = ForeignKeyTarget.objects.get(pk=1)
- serializer = ForeignKeyTargetSerializer(instance, data=data)
- self.assertTrue(serializer.is_valid())
- self.assertEquals(serializer.data, data)
- serializer.save()
+ self.save_serialized_target(instance, data)
# Ensure target 1 has 2 sources and everything else is as expected
- queryset = ForeignKeyTarget.objects.all()
- serializer = ForeignKeyTargetSerializer(queryset)
expected = deepcopy(self.data)
del expected[0]['sources'][2]
- self.assertEquals(serializer.data, expected)
+ self.check_serialized_targets(expected)