diff options
| author | Tom Christie | 2014-09-05 16:29:46 +0100 | 
|---|---|---|
| committer | Tom Christie | 2014-09-05 16:29:46 +0100 | 
| commit | d934824bff21e4a11226af61efba319be227f4f0 (patch) | |
| tree | b5c856cc1fdb9245bfa59db450fc2c228835e3b9 /tests | |
| parent | c1036c17533a3091401ff90f825571f0e6125eca (diff) | |
| download | django-rest-framework-d934824bff21e4a11226af61efba319be227f4f0.tar.bz2 | |
Workin on
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_generics.py | 41 | ||||
| -rw-r--r-- | tests/test_validation.py | 5 | ||||
| -rw-r--r-- | tests/test_write_only_fields.py | 69 | 
3 files changed, 41 insertions, 74 deletions
| diff --git a/tests/test_generics.py b/tests/test_generics.py index 55f361b2..1b00c351 100644 --- a/tests/test_generics.py +++ b/tests/test_generics.py @@ -360,18 +360,15 @@ class TestInstanceView(TestCase):      def test_put_to_deleted_instance(self):          """ -        PUT requests to RetrieveUpdateDestroyAPIView should create an object -        if it does not currently exist. +        PUT requests to RetrieveUpdateDestroyAPIView should return 404 if +        an object does not currently exist.          """          self.objects.get(id=1).delete()          data = {'text': 'foobar'}          request = factory.put('/1', data, format='json') -        with self.assertNumQueries(2): +        with self.assertNumQueries(1):              response = self.view(request, pk=1).render() -        self.assertEqual(response.status_code, status.HTTP_201_CREATED) -        self.assertEqual(response.data, {'id': 1, 'text': 'foobar'}) -        updated = self.objects.get(id=1) -        self.assertEqual(updated.text, 'foobar') +        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)      def test_put_to_filtered_out_instance(self):          """ @@ -382,35 +379,7 @@ class TestInstanceView(TestCase):          filtered_out_pk = BasicModel.objects.filter(text='filtered out')[0].pk          request = factory.put('/{0}'.format(filtered_out_pk), data, format='json')          response = self.view(request, pk=filtered_out_pk).render() -        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) - -    def test_put_as_create_on_id_based_url(self): -        """ -        PUT requests to RetrieveUpdateDestroyAPIView should create an object -        at the requested url if it doesn't exist. -        """ -        data = {'text': 'foobar'} -        # pk fields can not be created on demand, only the database can set the pk for a new object -        request = factory.put('/5', data, format='json') -        with self.assertNumQueries(2): -            response = self.view(request, pk=5).render() -        self.assertEqual(response.status_code, status.HTTP_201_CREATED) -        new_obj = self.objects.get(pk=5) -        self.assertEqual(new_obj.text, 'foobar') - -    def test_put_as_create_on_slug_based_url(self): -        """ -        PUT requests to RetrieveUpdateDestroyAPIView should create an object -        at the requested url if possible, else return HTTP_403_FORBIDDEN error-response. -        """ -        data = {'text': 'foobar'} -        request = factory.put('/test_slug', data, format='json') -        with self.assertNumQueries(2): -            response = self.slug_based_view(request, slug='test_slug').render() -        self.assertEqual(response.status_code, status.HTTP_201_CREATED) -        self.assertEqual(response.data, {'slug': 'test_slug', 'text': 'foobar'}) -        new_obj = SlugBasedModel.objects.get(slug='test_slug') -        self.assertEqual(new_obj.text, 'foobar') +        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)      def test_patch_cannot_create_an_object(self):          """ diff --git a/tests/test_validation.py b/tests/test_validation.py index f62d9068..fcfc853d 100644 --- a/tests/test_validation.py +++ b/tests/test_validation.py @@ -48,11 +48,10 @@ class ShouldValidateModel(models.Model):  class ShouldValidateModelSerializer(serializers.ModelSerializer):      renamed = serializers.CharField(source='should_validate_field', required=False) -    def validate_renamed(self, attrs, source): -        value = attrs[source] +    def validate_renamed(self, value):          if len(value) < 3:              raise serializers.ValidationError('Minimum 3 characters.') -        return attrs +        return value      class Meta:          model = ShouldValidateModel diff --git a/tests/test_write_only_fields.py b/tests/test_write_only_fields.py index aabb18d6..367048ac 100644 --- a/tests/test_write_only_fields.py +++ b/tests/test_write_only_fields.py @@ -1,42 +1,41 @@ -from django.db import models -from django.test import TestCase -from rest_framework import serializers +# from django.db import models +# from django.test import TestCase +# from rest_framework import serializers -class ExampleModel(models.Model): -    email = models.EmailField(max_length=100) -    password = models.CharField(max_length=100) +# class ExampleModel(models.Model): +#     email = models.EmailField(max_length=100) +#     password = models.CharField(max_length=100) -class WriteOnlyFieldTests(TestCase): -    def test_write_only_fields(self): -        class ExampleSerializer(serializers.Serializer): -            email = serializers.EmailField() -            password = serializers.CharField(write_only=True) +# class WriteOnlyFieldTests(TestCase): +#     def test_write_only_fields(self): +#         class ExampleSerializer(serializers.Serializer): +#             email = serializers.EmailField() +#             password = serializers.CharField(write_only=True) -        data = { -            'email': 'foo@example.com', -            'password': '123' -        } -        serializer = ExampleSerializer(data=data) -        self.assertTrue(serializer.is_valid()) -        self.assertEquals(serializer.object, data) -        self.assertEquals(serializer.data, {'email': 'foo@example.com'}) +#         data = { +#             'email': 'foo@example.com', +#             'password': '123' +#         } +#         serializer = ExampleSerializer(data=data) +#         self.assertTrue(serializer.is_valid()) +#         self.assertEquals(serializer.validated_data, data) +#         self.assertEquals(serializer.data, {'email': 'foo@example.com'}) -    def test_write_only_fields_meta(self): -        class ExampleSerializer(serializers.ModelSerializer): -            class Meta: -                model = ExampleModel -                fields = ('email', 'password') -                write_only_fields = ('password',) +#     def test_write_only_fields_meta(self): +#         class ExampleSerializer(serializers.ModelSerializer): +#             class Meta: +#                 model = ExampleModel +#                 fields = ('email', 'password') +#                 write_only_fields = ('password',) -        data = { -            'email': 'foo@example.com', -            'password': '123' -        } -        serializer = ExampleSerializer(data=data) -        self.assertTrue(serializer.is_valid()) -        self.assertTrue(isinstance(serializer.object, ExampleModel)) -        self.assertEquals(serializer.object.email, data['email']) -        self.assertEquals(serializer.object.password, data['password']) -        self.assertEquals(serializer.data, {'email': 'foo@example.com'}) +#         data = { +#             'email': 'foo@example.com', +#             'password': '123' +#         } +#         serializer = ExampleSerializer(data=data) +#         self.assertTrue(serializer.is_valid()) +#         self.assertTrue(isinstance(serializer.object, ExampleModel)) +#         self.assertEquals(serializer.validated_data, data) +#         self.assertEquals(serializer.data, {'email': 'foo@example.com'}) | 
