Files
customerTicket/tests/test_persian_text.py
2026-09-10 11:34:19 +03:30

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 == "متن قبلی"