diff options
| author | Andreas Pelme | 2014-03-02 12:40:30 +0100 | 
|---|---|---|
| committer | Andreas Pelme | 2014-03-02 12:40:30 +0100 | 
| commit | 971578ca345c3d3bae7fd93b87c41d43483b6f05 (patch) | |
| tree | 72a6d3d0ced5750a8ba01bedc3a6f8a936e05e2f /tests/test_write_only_fields.py | |
| parent | 62786a7ad64918022f11f1b95ce84adb8d798830 (diff) | |
| download | django-rest-framework-971578ca345c3d3bae7fd93b87c41d43483b6f05.tar.bz2 | |
Support for running the test suite with py.test
 * Get rid of runtests.py
 * Moved test code  from rest_framework/tests and rest_framework/runtests to tests
 * Invoke py.test from setup.py
 * Invoke py.test from Travis
 * Invoke py.test from tox
 * Changed setUpClass to be just plain setUp in test_permissions.py
 * Updated contribution guideline to show how to invoke py.test
Diffstat (limited to 'tests/test_write_only_fields.py')
| -rw-r--r-- | tests/test_write_only_fields.py | 42 | 
1 files changed, 42 insertions, 0 deletions
| diff --git a/tests/test_write_only_fields.py b/tests/test_write_only_fields.py new file mode 100644 index 00000000..aabb18d6 --- /dev/null +++ b/tests/test_write_only_fields.py @@ -0,0 +1,42 @@ +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 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'}) + +    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'}) | 
