def setUp(self): self.comment = Comment('*****@*****.**', 'Happy new year!', datetime.datetime(2012, 1, 1)) self.data = { 'email': '*****@*****.**', 'content': 'Happy new year!', 'created': datetime.datetime(2012, 1, 1), 'sub_comment': 'This wont change' } self.expected = { 'email': '*****@*****.**', 'content': 'Happy new year!', 'created': datetime.datetime(2012, 1, 1), 'sub_comment': 'And Merry Christmas!' } self.person_data = {'name': 'dwight', 'age': 35} self.person = Person(**self.person_data) self.person.save()
def test_pickle_inner_serializer(self): """ Test pickling a serializer whose resulting .data (a SortedDictWithMetadata) will have unpickleable meta data--in order to make sure metadata doesn't get pulled into the pickle. See DictWithMetadata.__getstate__ """ class InnerPersonSerializer(serializers.ModelSerializer): class Meta: model = Person fields = ('name', 'age') pickle.dumps(InnerPersonSerializer(Person(name="Noah", age=950)).data, 0)
def setUp(self): self.comment = Comment("*****@*****.**", "Happy new year!", datetime.datetime(2012, 1, 1)) self.data = { "email": "*****@*****.**", "content": "Happy new year!", "created": datetime.datetime(2012, 1, 1), "sub_comment": "This wont change", } self.expected = { "email": "*****@*****.**", "content": "Happy new year!", "created": datetime.datetime(2012, 1, 1), "sub_comment": "And Merry Christmas!", } self.person_data = {"name": "dwight", "age": 35} self.person = Person(**self.person_data) self.person.save()
def setUp(self): self.comment = Comment( '*****@*****.**', 'Happy new year!', datetime.datetime(2012, 1, 1) ) self.data = { 'email': '*****@*****.**', 'content': 'Happy new year!', 'created': datetime.datetime(2012, 1, 1), 'sub_comment': 'This wont change' } self.expected = { 'email': '*****@*****.**', 'content': 'Happy new year!', 'created': '2012-01-01T00:00:00', 'sub_comment': 'And Merry Christmas!' } self.person_data = {'name': 'dwight', 'age': 35} self.person = Person(**self.person_data) self.person.save()
class BasicTests(TestCase): def setUp(self): self.comment = Comment('*****@*****.**', 'Happy new year!', datetime.datetime(2012, 1, 1)) self.data = { 'email': '*****@*****.**', 'content': 'Happy new year!', 'created': datetime.datetime(2012, 1, 1), 'sub_comment': 'This wont change' } self.expected = { 'email': '*****@*****.**', 'content': 'Happy new year!', 'created': datetime.datetime(2012, 1, 1), 'sub_comment': 'And Merry Christmas!' } self.person_data = {'name': 'dwight', 'age': 35} self.person = Person(**self.person_data) self.person.save() def test_empty(self): serializer = CommentSerializer() expected = { 'email': '', 'content': '', 'created': None, 'sub_comment': '' } self.assertEquals(serializer.data, expected) def test_retrieve(self): serializer = CommentSerializer(self.comment) self.assertEquals(serializer.data, self.expected) def test_create(self): serializer = CommentSerializer(data=self.data) expected = self.comment self.assertEquals(serializer.is_valid(), True) self.assertEquals(serializer.object, expected) self.assertFalse(serializer.object is expected) self.assertEquals(serializer.data['sub_comment'], 'And Merry Christmas!') def test_update(self): serializer = CommentSerializer(self.comment, data=self.data) expected = self.comment self.assertEquals(serializer.is_valid(), True) self.assertEquals(serializer.object, expected) self.assertTrue(serializer.object is expected) self.assertEquals(serializer.data['sub_comment'], 'And Merry Christmas!') def test_partial_update(self): msg = 'Merry New Year!' partial_data = {'content': msg} serializer = CommentSerializer(self.comment, data=partial_data) self.assertEquals(serializer.is_valid(), False) serializer = CommentSerializer(self.comment, data=partial_data, partial=True) expected = self.comment self.assertEqual(serializer.is_valid(), True) self.assertEquals(serializer.object, expected) self.assertTrue(serializer.object is expected) self.assertEquals(serializer.data['content'], msg) def test_model_fields_as_expected(self): """ Make sure that the fields returned are the same as defined in the Meta data """ serializer = PersonSerializer(self.person) self.assertEquals(set(serializer.data.keys()), set(['name', 'age', 'info'])) def test_field_with_dictionary(self): """ Make sure that dictionaries from fields are left intact """ serializer = PersonSerializer(self.person) expected = self.person_data self.assertEquals(serializer.data['info'], expected) def test_read_only_fields(self): """ Attempting to update fields set as read_only should have no effect. """ serializer = PersonSerializer(self.person, data={ 'name': 'dwight', 'age': 99 }) self.assertEquals(serializer.is_valid(), True) instance = serializer.save() self.assertEquals(serializer.errors, {}) # Assert age is unchanged (35) self.assertEquals(instance.age, self.person_data['age'])
def test_pickle_simple_model_serializer_data(self): """ Test simple serializer """ pickle.dumps(PersonSerializer(Person(name="Methusela", age=969)).data)
class BasicTests(TestCase): def setUp(self): self.comment = Comment( '*****@*****.**', 'Happy new year!', datetime.datetime(2012, 1, 1) ) self.data = { 'email': '*****@*****.**', 'content': 'Happy new year!', 'created': datetime.datetime(2012, 1, 1), 'sub_comment': 'This wont change' } self.expected = { 'email': '*****@*****.**', 'content': 'Happy new year!', 'created': '2012-01-01T00:00:00', 'sub_comment': 'And Merry Christmas!' } self.person_data = {'name': 'dwight', 'age': 35} self.person = Person(**self.person_data) self.person.save() def test_empty(self): serializer = CommentSerializer() expected = { 'email': '', 'content': '', 'created': None, 'sub_comment': '' } self.assertEqual(serializer.data, expected) def test_retrieve(self): serializer = CommentSerializer(self.comment) self.assertEqual(serializer.data, self.expected) def test_create(self): serializer = CommentSerializer(data=self.data) expected = self.comment self.assertEqual(serializer.is_valid(), True) self.assertEqual(serializer.object, expected) self.assertFalse(serializer.object is expected) self.assertEqual(serializer.data['sub_comment'], 'And Merry Christmas!') def test_update(self): serializer = CommentSerializer(self.comment, data=self.data) expected = self.comment self.assertEqual(serializer.is_valid(), True) self.assertEqual(serializer.object, expected) self.assertTrue(serializer.object is expected) self.assertEqual(serializer.data['sub_comment'], 'And Merry Christmas!') def test_partial_update(self): msg = 'Merry New Year!' partial_data = {'content': msg} serializer = CommentSerializer(self.comment, data=partial_data) self.assertEqual(serializer.is_valid(), False) serializer = CommentSerializer(self.comment, data=partial_data, partial=True) expected = self.comment self.assertEqual(serializer.is_valid(), True) self.assertEqual(serializer.object, expected) self.assertTrue(serializer.object is expected) self.assertEqual(serializer.data['content'], msg) def test_model_fields_as_expected(self): """ Make sure that the fields returned are the same as defined in the Meta data """ serializer = PersonSerializer(self.person) self.assertEqual(set(serializer.data.keys()), set(['name', 'age', 'info'])) def test_field_with_dictionary(self): """ Make sure that dictionaries from fields are left intact """ serializer = PersonSerializer(self.person) expected = self.person_data self.assertEqual(serializer.data['info'], expected) def test_read_only_fields(self): """ Attempting to update fields set as read_only should have no effect. """ serializer = PersonSerializer(self.person, data={'name': 'dwight', 'age': 99}) self.assertEqual(serializer.is_valid(), True) instance = serializer.save() self.assertEqual(serializer.errors, {}) # Assert age is unchanged (35) self.assertEqual(instance.age, self.person_data['age'])
class BasicTests(TestCase): def setUp(self): self.comment = Comment( '*****@*****.**', 'Happy new year!', datetime.datetime(2012, 1, 1) ) self.data = { 'email': '*****@*****.**', 'content': 'Happy new year!', 'created': datetime.datetime(2012, 1, 1), 'sub_comment': 'This wont change' } self.expected = { 'email': '*****@*****.**', 'content': 'Happy new year!', 'created': datetime.datetime(2012, 1, 1), 'sub_comment': 'And Merry Christmas!' } self.person_data = {'name': 'dwight', 'age': 35} self.person = Person(**self.person_data) self.person.save() def test_empty(self): serializer = CommentSerializer() expected = { 'email': '', 'content': '', 'created': None, 'sub_comment': '' } self.assertEquals(serializer.data, expected) def test_retrieve(self): serializer = CommentSerializer(self.comment) self.assertEquals(serializer.data, self.expected) def test_create(self): serializer = CommentSerializer(data=self.data) expected = self.comment self.assertEquals(serializer.is_valid(), True) self.assertEquals(serializer.object, expected) self.assertFalse(serializer.object is expected) self.assertEquals(serializer.data['sub_comment'], 'And Merry Christmas!') def test_update(self): serializer = CommentSerializer(self.comment, data=self.data) expected = self.comment self.assertEquals(serializer.is_valid(), True) self.assertEquals(serializer.object, expected) self.assertTrue(serializer.object is expected) self.assertEquals(serializer.data['sub_comment'], 'And Merry Christmas!') def test_model_fields_as_expected(self): """ Make sure that the fields returned are the same as defined in the Meta data """ serializer = PersonSerializer(self.person) self.assertEquals(set(serializer.data.keys()), set(['name', 'age', 'info'])) def test_field_with_dictionary(self): """ Make sure that dictionaries from fields are left intact """ serializer = PersonSerializer(self.person) expected = self.person_data self.assertEquals(serializer.data['info'], expected)
class BasicTests(TestCase): def setUp(self): self.comment = Comment( '*****@*****.**', 'Happy new year!', datetime.datetime(2012, 1, 1) ) self.data = { 'email': '*****@*****.**', 'content': 'Happy new year!', 'created': datetime.datetime(2012, 1, 1), 'sub_comment': 'This wont change' } self.expected = { 'email': '*****@*****.**', 'content': 'Happy new year!', 'created': datetime.datetime(2012, 1, 1), 'sub_comment': 'And Merry Christmas!' } self.person_data = {'name': 'dwight', 'age': 35} self.person = Person(**self.person_data) self.person.save() def test_empty(self): serializer = CommentSerializer() expected = { 'email': '', 'content': '', 'created': None, 'sub_comment': '' } self.assertEqual(serializer.data, expected) def test_retrieve(self): serializer = CommentSerializer(self.comment) self.assertEqual(serializer.data, self.expected) def test_create(self): serializer = CommentSerializer(data=self.data) expected = self.comment self.assertEqual(serializer.is_valid(), True) self.assertEqual(serializer.object, expected) self.assertFalse(serializer.object is expected) self.assertEqual(serializer.data['sub_comment'], 'And Merry Christmas!') def test_create_nested(self): """Test a serializer with nested data.""" names = {'first': 'John', 'last': 'Doe', 'initials': 'jd'} data = {'ssn': '1234567890', 'names': names} serializer = PersonIdentifierSerializer(data=data) self.assertEqual(serializer.is_valid(), True) self.assertEqual(serializer.object, data) self.assertFalse(serializer.object is data) self.assertEqual(serializer.data['names'], names) def test_create_partial_nested(self): """Test a serializer with nested data which has missing fields.""" names = {'first': 'John'} data = {'ssn': '1234567890', 'names': names} serializer = PersonIdentifierSerializer(data=data) expected_names = {'first': 'John', 'last': '', 'initials': ''} data['names'] = expected_names self.assertEqual(serializer.is_valid(), True) self.assertEqual(serializer.object, data) self.assertFalse(serializer.object is expected_names) self.assertEqual(serializer.data['names'], expected_names) def test_null_nested(self): """Test a serializer with a nonexistent nested field""" data = {'ssn': '1234567890'} serializer = PersonIdentifierSerializer(data=data) self.assertEqual(serializer.is_valid(), True) self.assertEqual(serializer.object, data) self.assertFalse(serializer.object is data) expected = {'ssn': '1234567890', 'names': None} self.assertEqual(serializer.data, expected) def test_update(self): serializer = CommentSerializer(self.comment, data=self.data) expected = self.comment self.assertEqual(serializer.is_valid(), True) self.assertEqual(serializer.object, expected) self.assertTrue(serializer.object is expected) self.assertEqual(serializer.data['sub_comment'], 'And Merry Christmas!') def test_partial_update(self): msg = 'Merry New Year!' partial_data = {'content': msg} serializer = CommentSerializer(self.comment, data=partial_data) self.assertEqual(serializer.is_valid(), False) serializer = CommentSerializer(self.comment, data=partial_data, partial=True) expected = self.comment self.assertEqual(serializer.is_valid(), True) self.assertEqual(serializer.object, expected) self.assertTrue(serializer.object is expected) self.assertEqual(serializer.data['content'], msg) def test_model_fields_as_expected(self): """ Make sure that the fields returned are the same as defined in the Meta data """ serializer = PersonSerializer(self.person) self.assertEqual(set(serializer.data.keys()), set(['name', 'age', 'info'])) def test_field_with_dictionary(self): """ Make sure that dictionaries from fields are left intact """ serializer = PersonSerializer(self.person) expected = self.person_data self.assertEqual(serializer.data['info'], expected) def test_read_only_fields(self): """ Attempting to update fields set as read_only should have no effect. """ serializer = PersonSerializer(self.person, data={'name': 'dwight', 'age': 99}) self.assertEqual(serializer.is_valid(), True) instance = serializer.save() self.assertEqual(serializer.errors, {}) # Assert age is unchanged (35) self.assertEqual(instance.age, self.person_data['age']) def test_invalid_read_only_fields(self): """ Regression test for #652. """ self.assertRaises(AssertionError, PersonSerializerInvalidReadOnly, [])
class BasicTests(TestCase): def setUp(self): self.comment = Comment('*****@*****.**', 'Happy new year!', datetime.datetime(2012, 1, 1)) self.data = { 'email': '*****@*****.**', 'content': 'Happy new year!', 'created': datetime.datetime(2012, 1, 1), 'sub_comment': 'This wont change' } self.expected = { 'email': '*****@*****.**', 'content': 'Happy new year!', 'created': datetime.datetime(2012, 1, 1), 'sub_comment': 'And Merry Christmas!' } self.person_data = {'name': 'dwight', 'age': 35} self.person = Person(**self.person_data) self.person.save() def test_empty(self): serializer = CommentSerializer() expected = { 'email': '', 'content': '', 'created': None, 'sub_comment': '' } self.assertEquals(serializer.data, expected) def test_retrieve(self): serializer = CommentSerializer(instance=self.comment) self.assertEquals(serializer.data, self.expected) def test_create(self): serializer = CommentSerializer(self.data) expected = self.comment self.assertEquals(serializer.is_valid(), True) self.assertEquals(serializer.object, expected) self.assertFalse(serializer.object is expected) self.assertEquals(serializer.data['sub_comment'], 'And Merry Christmas!') def test_update(self): serializer = CommentSerializer(self.data, instance=self.comment) expected = self.comment self.assertEquals(serializer.is_valid(), True) self.assertEquals(serializer.object, expected) self.assertTrue(serializer.object is expected) self.assertEquals(serializer.data['sub_comment'], 'And Merry Christmas!') def test_model_fields_as_expected(self): """ Make sure that the fields returned are the same as defined in the Meta data """ serializer = PersonSerializer(instance=self.person) self.assertEquals(set(serializer.data.keys()), set(['name', 'age', 'info'])) def test_field_with_dictionary(self): """ Make sure that dictionaries from fields are left intact """ serializer = PersonSerializer(instance=self.person) expected = self.person_data self.assertEquals(serializer.data['info'], expected)
class BasicTests(TestCase): def setUp(self): self.comment = Comment("*****@*****.**", "Happy new year!", datetime.datetime(2012, 1, 1)) self.data = { "email": "*****@*****.**", "content": "Happy new year!", "created": datetime.datetime(2012, 1, 1), "sub_comment": "This wont change", } self.expected = { "email": "*****@*****.**", "content": "Happy new year!", "created": datetime.datetime(2012, 1, 1), "sub_comment": "And Merry Christmas!", } self.person_data = {"name": "dwight", "age": 35} self.person = Person(**self.person_data) self.person.save() def test_empty(self): serializer = CommentSerializer() expected = {"email": "", "content": "", "created": None, "sub_comment": ""} self.assertEquals(serializer.data, expected) def test_retrieve(self): serializer = CommentSerializer(self.comment) self.assertEquals(serializer.data, self.expected) def test_create(self): serializer = CommentSerializer(data=self.data) expected = self.comment self.assertEquals(serializer.is_valid(), True) self.assertEquals(serializer.object, expected) self.assertFalse(serializer.object is expected) self.assertEquals(serializer.data["sub_comment"], "And Merry Christmas!") def test_update(self): serializer = CommentSerializer(self.comment, data=self.data) expected = self.comment self.assertEquals(serializer.is_valid(), True) self.assertEquals(serializer.object, expected) self.assertTrue(serializer.object is expected) self.assertEquals(serializer.data["sub_comment"], "And Merry Christmas!") def test_model_fields_as_expected(self): """ Make sure that the fields returned are the same as defined in the Meta data """ serializer = PersonSerializer(self.person) self.assertEquals(set(serializer.data.keys()), set(["name", "age", "info"])) def test_field_with_dictionary(self): """ Make sure that dictionaries from fields are left intact """ serializer = PersonSerializer(self.person) expected = self.person_data self.assertEquals(serializer.data["info"], expected) def test_read_only_fields(self): """ Attempting to update fields set as read_only should have no effect. """ serializer = PersonSerializer(self.person, data={"name": "dwight", "age": 99}) self.assertEquals(serializer.is_valid(), True) instance = serializer.save() self.assertEquals(serializer.errors, {}) # Assert age is unchanged (35) self.assertEquals(instance.age, self.person_data["age"])