sms
This commit is contained in:
1 parent
250cdbab7f
commit
5c6069c3ef
87 files changed
+29209
-3697
No files matched your search
@@ -43,6 +43,13 @@ def make_user(username=None, *, password='TestPass!2345', superuser=False,
|
||||
return user
|
||||
|
||||
|
||||
def login_superuser(client, username):
|
||||
"""ساخت کاربر سوپریوزر و ورود آن به کلاینت تست؛ کاربر را برمیگرداند."""
|
||||
user = make_user(username, superuser=True)
|
||||
client.force_login(user)
|
||||
return user
|
||||
|
||||
|
||||
def make_store(name=None, *, viewers=(), owner=None):
|
||||
"""
|
||||
ساخت انبار.
|
||||
|
||||
+47
-3
@@ -6,14 +6,13 @@ from django.urls import reverse
|
||||
|
||||
from admin_panel.models import Article, Customer, PhoneNumber
|
||||
|
||||
from .factories import make_customer, make_user
|
||||
from .factories import login_superuser, make_customer, make_user
|
||||
|
||||
|
||||
class CustomerCrudTests(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.user = make_user('csUser', superuser=True)
|
||||
self.client.force_login(self.user)
|
||||
self.user = login_superuser(self.client, 'csUser')
|
||||
|
||||
def test_add_customer_creates_phones(self):
|
||||
url = reverse('admin_panel:customersAdd')
|
||||
@@ -56,6 +55,51 @@ class CustomerCrudTests(TestCase):
|
||||
self.assertEqual(phones[0].phone_number, '09120009999')
|
||||
|
||||
|
||||
class InactiveCustomerHiddenTests(TestCase):
|
||||
"""مشتری غیرفعال (is_active=False) در فهرست و در جستجو دیده نمیشود."""
|
||||
|
||||
def setUp(self):
|
||||
self.user = login_superuser(self.client, 'hideUser')
|
||||
self.active = make_customer('خطیبی فعال', phones=['09120000041'])
|
||||
self.inactive = make_customer('خطیبی غیرفعال', is_active=False,
|
||||
phones=['09120000042'])
|
||||
# جستجوی تلفن از ستون phone1 میخواند (فیلد قدیمی مشتری).
|
||||
Customer.objects.filter(pk=self.active.pk).update(phone1='09120000041')
|
||||
Customer.objects.filter(pk=self.inactive.pk).update(phone1='09120000042')
|
||||
|
||||
def test_inactive_absent_from_default_listing(self):
|
||||
html = self.client.get(reverse('admin_panel:customers')).content.decode('utf-8')
|
||||
self.assertIn('خطیبی فعال', html)
|
||||
self.assertNotIn('خطیبی غیرفعال', html)
|
||||
|
||||
def test_inactive_absent_from_search_by_name(self):
|
||||
html = self.client.get(
|
||||
reverse('admin_panel:customers'),
|
||||
{'searchVal': 'خطیبی', 'searchOn': 'name'},
|
||||
).content.decode('utf-8')
|
||||
self.assertIn('خطیبی فعال', html)
|
||||
self.assertNotIn('خطیبی غیرفعال', html)
|
||||
|
||||
def test_inactive_absent_from_search_by_phone(self):
|
||||
html = self.client.get(
|
||||
reverse('admin_panel:customers'),
|
||||
{'searchVal': '0912000004', 'searchOn': 'phone'},
|
||||
).content.decode('utf-8')
|
||||
self.assertIn('09120000041', html)
|
||||
self.assertNotIn('09120000042', html)
|
||||
|
||||
def test_inactive_absent_from_path_search_view(self):
|
||||
# مسیر <slug:> فقط نویسههای لاتین میپذیرد.
|
||||
make_customer('khatibi-active')
|
||||
make_customer('khatibi-inactive', is_active=False)
|
||||
html = self.client.get(
|
||||
reverse('admin_panel:customersSearch',
|
||||
kwargs={'searchVal': 'khatibi', 'searchOn': 'name'}),
|
||||
).content.decode('utf-8')
|
||||
self.assertIn('khatibi-active', html)
|
||||
self.assertNotIn('khatibi-inactive', html)
|
||||
|
||||
|
||||
class CustomerDeleteGuardTests(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
|
||||
+1818
File diff suppressed because it is too large.
Load diff
@@ -7,7 +7,7 @@
|
||||
from django.test import SimpleTestCase
|
||||
from django.urls import reverse
|
||||
|
||||
# snapshot قطعی نامهای مسیرهای اپ admin_panel (۶۲ مسیر)
|
||||
# snapshot قطعی نامهای مسیرهای اپ admin_panel (۷۲ مسیر)
|
||||
EXPECTED_URL_NAMES = {
|
||||
'index',
|
||||
'p_login',
|
||||
@@ -73,6 +73,18 @@ EXPECTED_URL_NAMES = {
|
||||
'update_check_info',
|
||||
'addSarresid',
|
||||
'pardakhtNesiye',
|
||||
'sms_settings',
|
||||
'sms_templates',
|
||||
'sms_template_edit',
|
||||
'sms_customer_toggle',
|
||||
'sms_primary_toggle',
|
||||
'sms_send_custom',
|
||||
'sms_queue',
|
||||
'sms_queue_retry',
|
||||
'sms_queue_approve',
|
||||
'sms_queue_delete',
|
||||
'sms_queue_bulk',
|
||||
'sms_queue_empty',
|
||||
}
|
||||
|
||||
# مسیرهایی که آرگومان میگیرند: نام -> kwargs نمونه
|
||||
@@ -111,6 +123,13 @@ PARAMETERIZED = {
|
||||
'update_check_info': {'sarresid_id': 1},
|
||||
'addSarresid': {'cs_id': 1},
|
||||
'pardakhtNesiye': {'cs_id': 1},
|
||||
'sms_template_edit': {'t_id': 1},
|
||||
'sms_customer_toggle': {'c_id': 1},
|
||||
'sms_primary_toggle': {'c_id': 1},
|
||||
'sms_send_custom': {'c_id': 1},
|
||||
'sms_queue_retry': {'q_id': 1},
|
||||
'sms_queue_approve': {'q_id': 1},
|
||||
'sms_queue_delete': {'q_id': 1},
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -14,8 +14,8 @@ from django.test import TestCase
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
|
||||
from admin_panel.models import (Action, Article, Factor, Sarresid,
|
||||
StoreTransferRequest)
|
||||
from admin_panel.models import (Action, Article, Factor, PhoneNumber, Sarresid,
|
||||
SMSQueue, SMSTemplate, StoreTransferRequest)
|
||||
|
||||
from .factories import (make_category, make_customer, make_product, make_store,
|
||||
make_user, stock_in)
|
||||
@@ -67,6 +67,18 @@ class ViewSmokeTests(TestCase):
|
||||
product=cls.product, quantity=1, requester=cls.user,
|
||||
)
|
||||
|
||||
# --- پیامک ---
|
||||
cls.phone = PhoneNumber.objects.create(
|
||||
customer=cls.customer, title='موبایل', phone_number='09120000000',
|
||||
)
|
||||
cls.customer.sms_primary_phones = '+989120000000'
|
||||
cls.customer.save(update_fields=['sms_primary_phones'])
|
||||
cls.sms_template = SMSTemplate.objects.get(sms_type='welcome')
|
||||
cls.sms_queue = SMSQueue.objects.create(
|
||||
customer=cls.customer, sms_type='welcome',
|
||||
phone_number='+989120000000', message='دودی', status='failed',
|
||||
)
|
||||
|
||||
def setUp(self):
|
||||
self.client.force_login(self.user)
|
||||
# در صورت خطای سرور، استثنا را نگه میداریم تا کد وضعیت ۵۰۰ را ببینیم
|
||||
@@ -198,6 +210,22 @@ class ViewSmokeTests(TestCase):
|
||||
}),
|
||||
('api_check_status_inquiry', {}, GET, None),
|
||||
('api_check_sabt_inquiry', {}, GET, None),
|
||||
# --- پیامک ---
|
||||
('sms_settings', {}, GET, None),
|
||||
('sms_templates', {}, GET, None),
|
||||
('sms_template_edit', {'t_id': self.sms_template.id}, POST, {
|
||||
'title': 'عنوان دودی', 'text': 'متن دودی',
|
||||
'timing_value': '2',
|
||||
}),
|
||||
('sms_customer_toggle', {'c_id': c.id}, POST, {
|
||||
'sms_type': 'welcome', 'is_enabled': 'false',
|
||||
}),
|
||||
('sms_primary_toggle', {'c_id': c.id}, POST, {
|
||||
'phone': '09120000000', 'is_primary': 'true',
|
||||
}),
|
||||
('sms_send_custom', {'c_id': c.id}, POST, {'text': 'پیامک دودی'}),
|
||||
('sms_queue', {}, GET, None),
|
||||
('sms_queue_retry', {'q_id': self.sms_queue.id}, POST, None),
|
||||
# در انتهای لیست: خروج از حساب، چون بعد از آن تمام درخواستها بیاعتبار میشوند
|
||||
('p_logout', {}, GET, None),
|
||||
]
|
||||
|
||||
Reference in new issue
Block a user