import pytest from django.core.cache import cache from django.test import override_settings from apps.comments.forms import CommentForm @pytest.mark.django_db def test_comment_form_rejects_blank_body(): form = CommentForm(data={"author_name": "A", "author_email": "a@a.com", "body": " ", "article_id": 1}) assert not form.is_valid() @pytest.mark.django_db @override_settings(COMMENT_RATE_LIMIT_PER_MINUTE=3) def test_comment_rate_limit(client, article_page): cache.clear() payload = { "article_id": article_page.id, "author_name": "T", "author_email": "t@example.com", "body": "Hi", "honeypot": "", } for _ in range(3): client.post("/comments/post/", payload) resp = client.post("/comments/post/", payload) assert resp.status_code == 429