diff options
| author | Tom Christie | 2014-10-08 11:23:40 +0100 |
|---|---|---|
| committer | Tom Christie | 2014-10-08 11:23:40 +0100 |
| commit | af0f01c5b6597fe2f146268f7632f7e3954d17c2 (patch) | |
| tree | d91a7d943592e3dad23ffe8dbdada8a23baf3c84 /tests/test_genericrelations.py | |
| parent | 6b09e5f2bba9167404ec329fa12c7f0215ca51ac (diff) | |
| download | django-rest-framework-af0f01c5b6597fe2f146268f7632f7e3954d17c2.tar.bz2 | |
Move generic relation tests
Diffstat (limited to 'tests/test_genericrelations.py')
| -rw-r--r-- | tests/test_genericrelations.py | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/tests/test_genericrelations.py b/tests/test_genericrelations.py deleted file mode 100644 index 380ad91d..00000000 --- a/tests/test_genericrelations.py +++ /dev/null @@ -1,104 +0,0 @@ -from __future__ import unicode_literals -from django.contrib.contenttypes.models import ContentType -from django.contrib.contenttypes.generic import GenericRelation, GenericForeignKey -from django.db import models -from django.test import TestCase -from rest_framework import serializers -from rest_framework.compat import python_2_unicode_compatible - - -@python_2_unicode_compatible -class Tag(models.Model): - """ - Tags have a descriptive slug, and are attached to an arbitrary object. - """ - tag = models.SlugField() - content_type = models.ForeignKey(ContentType) - object_id = models.PositiveIntegerField() - tagged_item = GenericForeignKey('content_type', 'object_id') - - def __str__(self): - return self.tag - - -@python_2_unicode_compatible -class Bookmark(models.Model): - """ - A URL bookmark that may have multiple tags attached. - """ - url = models.URLField() - tags = GenericRelation(Tag) - - def __str__(self): - return 'Bookmark: %s' % self.url - - -@python_2_unicode_compatible -class Note(models.Model): - """ - A textual note that may have multiple tags attached. - """ - text = models.TextField() - tags = GenericRelation(Tag) - - def __str__(self): - return 'Note: %s' % self.text - - -class TestGenericRelations(TestCase): - def setUp(self): - self.bookmark = Bookmark.objects.create(url='https://www.djangoproject.com/') - Tag.objects.create(tagged_item=self.bookmark, tag='django') - Tag.objects.create(tagged_item=self.bookmark, tag='python') - self.note = Note.objects.create(text='Remember the milk') - Tag.objects.create(tagged_item=self.note, tag='reminder') - - def test_generic_relation(self): - """ - Test a relationship that spans a GenericRelation field. - IE. A reverse generic relationship. - """ - - class BookmarkSerializer(serializers.ModelSerializer): - tags = serializers.StringRelatedField(many=True) - - class Meta: - model = Bookmark - fields = ('tags', 'url') - - serializer = BookmarkSerializer(self.bookmark) - expected = { - 'tags': ['django', 'python'], - 'url': 'https://www.djangoproject.com/' - } - self.assertEqual(serializer.data, expected) - - def test_generic_fk(self): - """ - Test a relationship that spans a GenericForeignKey field. - IE. A forward generic relationship. - """ - - class TagSerializer(serializers.ModelSerializer): - tagged_item = serializers.StringRelatedField() - - class Meta: - model = Tag - fields = ('tag', 'tagged_item') - - serializer = TagSerializer(Tag.objects.all(), many=True) - expected = [ - { - 'tag': 'django', - 'tagged_item': 'Bookmark: https://www.djangoproject.com/' - }, - { - 'tag': 'python', - 'tagged_item': 'Bookmark: https://www.djangoproject.com/' - }, - { - 'tag': 'reminder', - 'tagged_item': 'Note: Remember the milk' - } - ] - self.assertEqual(serializer.data, expected) |
