fix queue
This commit is contained in:
1 parent
049cc41afc
commit
9a1c99cbd3
14 files changed
+237
-32
No files matched your search
+45
-8
@@ -23,12 +23,16 @@ def test_customer_detail_is_forbidden_to_other_customer(client):
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_locked_public_ticket_only_leaks_metadata(client):
|
||||
category = TicketCategory.objects.create(title="قیمت", slug="test-locked-price")
|
||||
unit = OrganizationalUnit.objects.create(name="فروش قفلشده", slug="locked-sales")
|
||||
unit.permissions.add(
|
||||
Permission.objects.get(content_type__app_label="tickets", codename="view_ticket")
|
||||
)
|
||||
category = TicketCategory.objects.create(unit=unit, title="قیمت", slug="test-locked-price")
|
||||
customer = User.objects.create_user(username="customer", mobile="09123333333", account_type="CUSTOMER")
|
||||
expert = User.objects.create_user(username="expert", mobile="09124444444", account_type="STAFF")
|
||||
observer = User.objects.create_user(username="observer", mobile="09125555555", account_type="STAFF")
|
||||
StaffProfile.objects.create(user=expert, display_name="کارشناس اول")
|
||||
StaffProfile.objects.create(user=observer, display_name="کارشناس دوم")
|
||||
StaffProfile.objects.create(user=expert, primary_unit=unit, display_name="کارشناس اول")
|
||||
StaffProfile.objects.create(user=observer, primary_unit=unit, display_name="کارشناس دوم")
|
||||
for user in (expert, observer):
|
||||
for code in ("view_ticket", "claim_ticket"):
|
||||
user.user_permissions.add(Permission.objects.get(content_type__app_label="tickets", codename=code))
|
||||
@@ -36,7 +40,7 @@ def test_locked_public_ticket_only_leaks_metadata(client):
|
||||
claim_ticket(ticket.pk, expert)
|
||||
client.force_login(observer)
|
||||
listing = client.get(reverse("staff_tickets:list"))
|
||||
assert normalize_persian_text("موضوع قابل مشاهده") in listing.content.decode()
|
||||
assert normalize_persian_text("موضوع قابل مشاهده") not in listing.content.decode()
|
||||
assert "محتوای محرمانه" not in listing.content.decode()
|
||||
assert client.get(reverse("staff_tickets:detail", args=[ticket.public_id])).status_code == 403
|
||||
|
||||
@@ -70,11 +74,13 @@ def test_staff_filters_keep_selected_values_and_active_tab(client):
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_staff_desk_prioritizes_fresh_actionable_activity_and_renders_distinct_statuses(client):
|
||||
category=TicketCategory.objects.create(title="پیگیری فروش",slug="staff-priority-order")
|
||||
unit=OrganizationalUnit.objects.create(name="فروش اولویت",slug="priority-sales")
|
||||
unit.permissions.add(Permission.objects.get(content_type__app_label="tickets",codename="view_ticket"))
|
||||
category=TicketCategory.objects.create(unit=unit,title="پیگیری فروش",slug="staff-priority-order")
|
||||
customer=User.objects.create_user(username="priority-customer",mobile="09130000010",account_type="CUSTOMER")
|
||||
CustomerProfile.objects.create(user=customer,first_name="مشتری",last_name="نمونه")
|
||||
expert=User.objects.create_user(username="priority-expert",mobile="09130000011",account_type="STAFF")
|
||||
StaffProfile.objects.create(user=expert,display_name="کارشناس اولویت")
|
||||
StaffProfile.objects.create(user=expert,primary_unit=unit,display_name="کارشناس اولویت")
|
||||
expert.user_permissions.add(Permission.objects.get(content_type__app_label="tickets",codename="view_ticket"))
|
||||
waiting_customer=create_ticket(customer=customer,category=category,subject="منتظر پاسخ مشتری",body="شرح اول")
|
||||
fresh_customer_reply=create_ticket(customer=customer,category=category,subject="پاسخ تازه مشتری",body="شرح دوم")
|
||||
@@ -224,6 +230,32 @@ def test_staff_sidebar_hides_admin_link_and_shows_developer_credit(client):
|
||||
assert "برنامه نویسی و توسعه: محمد جواد فصاحت" in content
|
||||
assert "09202202129" in content
|
||||
assert "واحد فناوری اطلاعات" not in content
|
||||
assert "الگوهای پیامک" not in content
|
||||
assert reverse("staff_tickets:sms_templates") not in content
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_root_redirects_to_login_or_authenticated_workspace(client):
|
||||
response = client.get("/")
|
||||
assert response.status_code == 302
|
||||
assert response.url == reverse("accounts:login")
|
||||
|
||||
customer = User.objects.create_user(
|
||||
username="root-customer", mobile="09120000991", account_type="CUSTOMER"
|
||||
)
|
||||
client.force_login(customer)
|
||||
assert client.get("/").url == reverse("tickets:list")
|
||||
|
||||
staff = User.objects.create_user(
|
||||
username="root-staff", mobile="09120000992", account_type="STAFF"
|
||||
)
|
||||
StaffProfile.objects.create(user=staff, display_name="کارشناس ریشه")
|
||||
client.force_login(staff)
|
||||
assert client.get("/").url == reverse("staff_tickets:list")
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_admin_is_only_mounted_at_private_path(client):
|
||||
assert reverse("admin:index") == "/x5admin/"
|
||||
assert client.get("/admin/").status_code == 404
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_customer_can_set_password_and_login(client):
|
||||
@@ -266,10 +298,15 @@ def test_magic_link_is_reusable_for_seven_days_and_only_grants_one_ticket(client
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_ticket_polling_is_versioned_incremental_and_permission_safe(client):
|
||||
category=TicketCategory.objects.create(title="Polling",slug="polling")
|
||||
unit=OrganizationalUnit.objects.create(name="فروش Polling",slug="polling-sales")
|
||||
unit.permissions.add(
|
||||
Permission.objects.get(content_type__app_label="tickets",codename="view_ticket"),
|
||||
Permission.objects.get(content_type__app_label="messaging",codename="add_message"),
|
||||
)
|
||||
category=TicketCategory.objects.create(unit=unit,title="Polling",slug="polling")
|
||||
customer=User.objects.create_user(username="poll-customer",mobile="09129990001",account_type="CUSTOMER")
|
||||
expert=User.objects.create_user(username="poll-expert",mobile="09129990002",account_type="STAFF")
|
||||
StaffProfile.objects.create(user=expert,display_name="کارشناس پولینگ")
|
||||
StaffProfile.objects.create(user=expert,primary_unit=unit,display_name="کارشناس پولینگ")
|
||||
expert.user_permissions.add(Permission.objects.get(content_type__app_label="tickets",codename="view_ticket"))
|
||||
ticket=create_ticket(customer=customer,category=category,subject="بررسی پاسخ تازه",body="پیام نخست")
|
||||
client.force_login(customer)
|
||||
|
||||
Reference in new issue
Block a user