123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- from django.urls import reverse
- api_link = reverse("misago:api:parse-markup")
- def test_api_rejects_unauthenticated_user(db, client):
- response = client.post(api_link)
- assert response.status_code == 403
- def test_api_rejects_request_without_data(user_client):
- response = user_client.post(api_link)
- assert response.status_code == 400
- assert response.json() == {"detail": "You have to enter a message."}
- def test_api_rejects_request_with_invalid_shaped_data(user_client):
- response = user_client.post(api_link, "[]", content_type="application/json")
- assert response.status_code == 400
- assert response.json() == {
- "detail": "Invalid data. Expected a dictionary, but got list."
- }
- response = user_client.post(api_link, "123", content_type="application/json")
- assert response.status_code == 400
- assert response.json() == {
- "detail": "Invalid data. Expected a dictionary, but got int."
- }
- response = user_client.post(api_link, '"string"', content_type="application/json")
- assert response.status_code == 400
- assert response.json() == {
- "detail": "Invalid data. Expected a dictionary, but got str."
- }
- def test_api_rejects_request_with_malformed_data(user_client):
- response = user_client.post(api_link, "malformed", content_type="application/json")
- assert response.status_code == 400
- assert response.json() == {
- "detail": "JSON parse error - Expecting value: line 1 column 1 (char 0)"
- }
- def test_api_validates_that_post_has_content(user_client):
- response = user_client.post(api_link, json={"post": ""})
- assert response.status_code == 400
- assert response.json() == {"detail": "You have to enter a message."}
- # regression test for #929
- def test_api_strips_whitespace_from_post_before_validating_length(user_client):
- response = user_client.post(api_link, json={"post": "\n"})
- assert response.status_code == 400
- assert response.json() == {"detail": "You have to enter a message."}
- def test_api_casts_post_value_to_string(user_client):
- response = user_client.post(api_link, json={"post": 123})
- assert response.status_code == 400
- assert response.json() == {
- "detail": "Posted message should be at least 5 characters long (it has 3)."
- }
- def test_api_returns_parsed_value(user_client):
- response = user_client.post(api_link, json={"post": "Hello world!"})
- assert response.status_code == 200
- assert response.json() == {"parsed": "<p>Hello world!</p>"}
|