44 lines
2.2 KiB
Python
44 lines
2.2 KiB
Python
import pytest
|
|
|
|
from apps.core.persian_text import normalize_persian_text
|
|
from apps.accounts.models import User
|
|
from apps.customers.models import CustomerProfile
|
|
from apps.messaging.models import Message, MessageRevision
|
|
from apps.staff.models import StaffProfile
|
|
from apps.tickets.models import TicketCategory
|
|
from apps.tickets.services import create_ticket
|
|
|
|
|
|
def test_normalizer_corrects_persian_letters_and_preserves_paragraphs_and_codes():
|
|
source = "علي مي رود AB-123 و https://example.com/a?q=1\n\nاين يك تست است."
|
|
assert normalize_persian_text(source, multiline=True) == (
|
|
"علی میرود AB-123 و https://example.com/a?q=1\n\nاین یک تست است."
|
|
)
|
|
|
|
|
|
def test_normalizer_does_not_convert_numbers_or_remove_marks():
|
|
assert normalize_persian_text("کد 123، قیمت 12.5% 😊") == "کد 123، قیمت 12.5% 😊"
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_selected_profile_fields_are_normalized_on_save():
|
|
customer = User.objects.create_user(username="persian-customer", mobile="09121112222")
|
|
staff_user = User.objects.create_user(username="persian-staff", mobile="09121113333", account_type="STAFF")
|
|
profile = CustomerProfile.objects.create(user=customer, first_name="علي", last_name="رضايي")
|
|
staff = StaffProfile.objects.create(user=staff_user, display_name="كارشناس فروش")
|
|
profile.refresh_from_db()
|
|
staff.refresh_from_db()
|
|
assert (profile.first_name, profile.last_name) == ("علی", "رضایی")
|
|
assert staff.display_name == "کارشناس فروش"
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_message_and_revision_are_normalized_on_save():
|
|
customer = User.objects.create_user(username="message-customer", mobile="09121114444")
|
|
category = TicketCategory.objects.create(title="پشتيباني", slug="persian-normalization")
|
|
ticket = create_ticket(customer=customer, category=category, subject="موضوع معتبر", body="متن آغازين")
|
|
message = Message.objects.create(ticket=ticket, author=customer, body="اين متن است")
|
|
revision = MessageRevision.objects.create(message=message, body="متن قبلي", edited_by=customer)
|
|
assert message.body == "این متن است"
|
|
assert revision.body == "متن قبلی"
|