Установить kwargs в тесте сериализатора
Я написал сериализатор, в котором я использовал kwargs в его validate() . вот он:
def validate(self, value):
course_id = self.context.get("view").kwargs.get("course_id ")
....
Теперь я хочу написать тест, но не знаю, как передать ему kwargs.
вот тест, который я пытаюсь написать:
def test_valid_data(self):
serializer = CourseSerializer(
data=self.course,
)
self.assertTrue(serializer.is_valid())
Я проверил это, но это не сработало:
def test_valid_data(self):
serializer = CourseSerializer(
data=self.course,
kwargs={
"course_id": test_course_id
},
)
self.assertTrue(serializer.is_valid())
Вы можете передавать контекст в сериализаторе с дополнительными полями.
CategorySerializer(data=self.category,context={'request': request,'course_id': test_course_id})
и получить, используя контекст внутри вашего сериализатора.
course_id = self.context.get('course_id')