53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
import json
|
|
|
|
import pytest
|
|
from django.test import Client
|
|
from django.urls import reverse
|
|
|
|
from pictures.models import Contact, Message
|
|
from pictures.views import STATUS_OK
|
|
|
|
|
|
@pytest.mark.django_db
|
|
@pytest.mark.parametrize("content", ["This is a test message", ""])
|
|
def test_post_message_existing_contact(client: Client, contact: Contact, content: str):
|
|
assert Message.objects.count() == 0
|
|
res = _post_message(client, str(contact.phone_number), content)
|
|
assert res.status_code == 201
|
|
data = res.json()
|
|
message = Message.objects.first()
|
|
assert data["status"] == STATUS_OK
|
|
assert data["data"]["id"] == message.pk
|
|
assert message.sender == contact
|
|
assert message.content == content
|
|
|
|
|
|
def _post_message(client: Client, phone_number: str, content: str):
|
|
res = client.post(
|
|
reverse("api-create-message"),
|
|
data=json.dumps(
|
|
{
|
|
"phone_number": phone_number,
|
|
"content": content,
|
|
}
|
|
),
|
|
content_type="application/json",
|
|
)
|
|
return res
|
|
|
|
|
|
@pytest.mark.django_db
|
|
@pytest.mark.parametrize("content", ["This is a test message", ""])
|
|
def test_post_message_new_contact(client: Client, content: str):
|
|
assert Message.objects.count() == 0
|
|
phone_number = "+33622222222"
|
|
res = _post_message(client, phone_number, content)
|
|
data = res.json()
|
|
assert res.status_code == 201
|
|
message = Message.objects.first()
|
|
assert data["status"] == STATUS_OK
|
|
assert data["data"]["id"] == message.pk
|
|
assert message.sender.phone_number == phone_number
|
|
assert message.sender.display_name == ""
|
|
assert message.content == content
|