Esempio n. 1
0
    def test_create_raises_type_error(self):

        class UserSerializer(ModelSerializer):
            addresses = serializers.PrimaryKeyRelatedField(
                queryset=Query(self.TestModelSerializerAddressModel),
                many=True
            )

            class Meta:
                model = self.TestModelSerializerUserModel

        session = SESSION()
        address = self.TestModelSerializerAddressModel(email='*****@*****.**')
        session.add(address)
        session.commit()
        data = {
            'name': 'admin_with_email',
            'addresses': [{'id': address.id}, ],
            'gender': 'male'

        }
        instance = UserSerializer(data=data)
        instance.is_valid(raise_exception=True)

        self.assertRaises(TypeError, instance.create, data)

        session.delete(address)
        session.commit()
        session.close()
Esempio n. 2
0
    def test_create(self):

        class UserSerializer(ModelSerializer):

            class Meta:
                model = self.TestModelSerializerUserModel
                exclude = ('addresses', )

        data = {'name': 'default_admin', 'gender': 'male'}
        instance = UserSerializer(data=data)
        instance.is_valid(raise_exception=True)
        instance.create(instance.data)
        session = SESSION()
        user = session\
            .query(self.TestModelSerializerUserModel)\
            .filter(self.TestModelSerializerUserModel.name == data['name'])\
            .first()

        self.assertIsNotNone(user)
        self.assertIsInstance(user, self.TestModelSerializerUserModel)
        self.assertEqual(user.name, data['name'])
        self.assertEqual(user.gender, data['gender'])

        session.delete(user)
        session.commit()
        session.close()
Esempio n. 3
0
    def test_update_with_relations(self):

        class UserSerializer(ModelSerializer):
            addresses = serializers.PrimaryKeyRelatedField(
                queryset=Query(self.TestModelSerializerAddressModel),
                many=True
            )

            class Meta:
                model = self.TestModelSerializerUserModel

        session = SESSION()
        address = self.TestModelSerializerAddressModel(email='*****@*****.**')
        session.add(address)
        session.commit()
        data = {
            'name': 'admin_for_update_v1',
            'addresses': [],
            'gender': 'male'
        }
        instance = UserSerializer(data=data)
        instance.is_valid(raise_exception=True)
        instance.save()
        user = session \
            .query(self.TestModelSerializerUserModel) \
            .filter(self.TestModelSerializerUserModel.name == data['name']) \
            .first()

        self.assertIsNotNone(user)
        self.assertIsInstance(user, self.TestModelSerializerUserModel)
        self.assertEqual(user.name, data['name'])
        self.assertEqual(user.gender, data['gender'])

        data = {
            'name': 'admin_for_update_v2',
            'addresses': [{'id': address.id}, ],
            'gender': 'male'
        }
        instance = UserSerializer(user, data=data, partial=True)
        instance.is_valid(raise_exception=True)
        updated_user = instance.save()

        self.assertIsNotNone(updated_user)
        self.assertIsInstance(updated_user, self.TestModelSerializerUserModel)
        self.assertEqual(updated_user.name, data['name'])
        self.assertEqual(updated_user.gender, data['gender'])
        self.assertEqual(len(updated_user.addresses), 1)
        self.assertEqual(updated_user.addresses[0].id, address.id)

        session.delete(address)
        session.delete(user)
        session.commit()
        session.close()
Esempio n. 4
0
    def test_update(self):

        class UserSerializer(ModelSerializer):

            class Meta:
                model = self.TestModelSerializerUserModel
                exclude = ('addresses', )

        data = {'name': 'admin_for_update_v1', 'gender': 'male'}
        instance = UserSerializer(data=data)
        instance.is_valid(raise_exception=True)
        instance.save()
        session = SESSION()
        user = session \
            .query(self.TestModelSerializerUserModel) \
            .filter(self.TestModelSerializerUserModel.name == data['name']) \
            .first()

        self.assertIsNotNone(user)
        self.assertIsInstance(user, self.TestModelSerializerUserModel)
        self.assertEqual(user.name, data['name'])
        self.assertEqual(user.gender, data['gender'])

        data = {'name': 'admin_for_update_v2', 'gender': 'female'}
        instance = UserSerializer(user, data=data, partial=True)
        instance.is_valid(raise_exception=True)
        updated_user = instance.save()

        self.assertIsNotNone(updated_user)
        self.assertIsInstance(updated_user, self.TestModelSerializerUserModel)
        self.assertEqual(updated_user.name, data['name'])
        self.assertEqual(updated_user.gender, data['gender'])

        session.delete(user)
        session.commit()
        session.close()