def test_post_with_invalid_data(self):
        """test case to test create function with invalid data"""
#        serializer_data3 = json.loads(json.dumps(self.data3))
#        for serializerdata3 in serializer_data3:
        serializer = RuleObjectSerializer(data=None)
        if serializer.valid(self.uuid):
            with self.assertRaises(TypeError):
                serializer.create(serializer.data)
    def test_post_data(self):
        """test case to test create function with valid data"""
        serializer_data1 = json.loads(json.dumps(self.data1))
#        for serializerdata1 in serializer_data1:
        serializer = RuleObjectSerializer(data=serializer_data1[0])
        if serializer.valid(self.uuid):
            serializer.create(serializer.data)
        else:
            print("serializer data is not valid")
        self.assertEqual(serializer_data1[0], serializer.data)
    def test_update_id(self):
        """test case to test update function with id update"""
        obj = RuleObject.get(self.uuid)
        serializer_data1 = json.loads(json.dumps(self.data1))
#        for serializerdata1 in serializer_data1:
        with self.assertRaises(IDUpdateNotPermitted):
            serializer = RuleObjectSerializer(obj,
                                              data=serializer_data1[0],
                                              partial=True,
                                              context={'pk': self.uuid1})
            serializer.update(obj, serializer_data1[0])
    def test_put_Data(self):
        """test case to test update function with valid data"""
        obj = RuleObject.get(self.uuid)
        serializer_data2 = json.loads(json.dumps(self.data2))
#        for serializerdata2 in serializer_data2:
        serializer = RuleObjectSerializer(obj,
                                          data=serializer_data2[0],
                                          partial=True,
                                          context={'pk': self.uuid})
        serializer.update(obj, serializer_data2[0])
        serializerdata2 = serializer_data2[0]
        serializerdata2['id'] = self.uuid
        self.assertEqual(serializerdata2, serializer.data)
    def setUp(self):
        self.uuid = generate_uuid()   # Generate an id except for POST
        self.uuid1 = generate_uuid()  # Generate id for update

        self.data = [{
            'id': self.uuid,
            'name': 'ruleobject1',
            'classificationobject_id': '80837097-00f1-4182-8daa-ccd2394d48cd',
            'priority': 1,
            'truncate_to_size': 128,
            'action': 0,
                      }]

        self.data1 = [{
            'id': self.uuid1,
            'name': 'ruleobject2',
            'classificationobject_id': '80837097-00f1-4182-8daa-ccd2394d48cd',
            'priority': 2,
            'truncate_to_size': 128,
            'action': 0,
                       }]

        self.data2 = [{
            'id': self.uuid,
            'name': 'ruleobject3',
            'classificationobject_id': 'ccfe9ea1-5ccf-4876-8028-39d256ebcac6',
            'priority': 3,
            'truncate_to_size': 200,
            'action': 1,
                       }]

        self.data3 = [{}]

        serializer_data = json.loads(json.dumps(self.data))
#        for serializerdata in serializer_data:
        print("serializer_data in setup ruleobject:", serializer_data[0])
        serializer = RuleObjectSerializer(data=serializer_data[0])
        if serializer.valid(self.uuid):
            serializer.create(serializer.data)
            print("RuleObject.get(self.uuid):", RuleObject.get(self.uuid))
 def test_invalid_serializer_without_pk(self):
     """test case to test valid function with invalid serializer without pk
     """
     record = RuleObject.get(self.uuid)
     serializer = RuleObjectSerializer(record)
     self.assertEqual(serializer.valid(None), False)
    def test_valid_serializer(self):
        """test case to test valid function with valid serializer"""
        serializer_data1 = json.loads(json.dumps(self.data1))
#        for serializerdata1 in serializer_data1:
        serializer = RuleObjectSerializer(data=serializer_data1[0])
        self.assertEqual(serializer.valid(self.uuid), True)