Set kwargs in test of serializer

Question:

I wrote a serializer in which I used the kwargs in its validate() .
here is it:

  def validate(self, value):
    course_id = self.context.get("view").kwargs.get("course_id ")
    ....

now I want to write a test but I don’t know how to pass the kwargs to it.

here is the test I am trying to write:

def test_valid_data(self):
    serializer = CourseSerializer(
        data=self.course,
             )
    self.assertTrue(serializer.is_valid())

I test this but it didn’t work:

def test_valid_data(self):
    serializer = CourseSerializer(
        data=self.course,
         kwargs={
            "course_id": test_course_id
        },

    )
    self.assertTrue(serializer.is_valid())
Asked By: Montio5

||

Answers:

You can send context in your serializer with additional fields.

CategorySerializer(data=self.category,context={'request': request,'course_id': test_course_id})

and get using context inside your serializer.

course_id = self.context.get('course_id')
Answered By: Ashin Shakya