Почему класс DRF IsAuthenticatedOrReadOnly класс разрешения разрешает метод Post
Я провожу тестирование на фреймворке Django rest, вот мой взгляд,
class PostList(generics.ListCreateAPIView):
permission_classes = [IsAuthenticatedOrReadOnly,]
queryset = Post.postobjects.all()
serializer_class = PostSerializer
Шаблон URL, как показано ниже,
urlpatterns = [
path('<int:pk>/',PostDetail.as_view(),name="detailcreate"),
path('',PostList.as_view(),name="listcreate"),
]
Вот мой тест :
def create_post(self):
self.test_category = Category.objects.create(category='django')
self.test_user = User.objects.create_user(user_name="test_user",password="123456789")
data = {"title": "new", "author": 1,
"excerpt": "new", "content": "new"}
url = reverse('api:listcreate')
response = self.client.post(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
я выполнил следующую команду:
coverage run --omit='*/myvenv/*' manage.py test
и получить выход :
Ran 1 test in 0.215s
OK
Как я понимаю, поскольку здесь класс разрешения [IsAuthenticatedOrReadOnly,]
, self.client
не должен иметь разрешения на post
и тест должен завершиться неудачей. Я не понимаю, что я здесь упустил.