forked from erp-dev/erp
feat: hpname and external_order_id + product_name unique together
This commit is contained in:
@@ -1,3 +1,71 @@
|
||||
from django.test import TestCase
|
||||
from django.contrib.admin.sites import AdminSite
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.test import RequestFactory, TestCase
|
||||
|
||||
# Create your tests here.
|
||||
from basic_info import models as basic_models
|
||||
from printing import admin as printing_admin
|
||||
from printing import models as printing_models
|
||||
from stateflow import models as stateflow_models
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
class PrintingJobAdminSearchTestCase(TestCase):
|
||||
def setUp(self):
|
||||
self.site = AdminSite()
|
||||
self.factory = RequestFactory()
|
||||
self.admin_user = User.objects.create_superuser(
|
||||
username='admin',
|
||||
email='admin@example.com',
|
||||
password='testpass123',
|
||||
)
|
||||
|
||||
self.merchant = basic_models.Merchant.objects.create(
|
||||
name='测试印花厂',
|
||||
type=basic_models.MerchantTypeEnum.FACTORY,
|
||||
)
|
||||
self.customer = basic_models.Customer.objects.create(
|
||||
merchant=self.merchant,
|
||||
name='测试客户',
|
||||
)
|
||||
self.category = basic_models.ProductCategory.objects.create(
|
||||
merchant=self.merchant,
|
||||
name='测试分类',
|
||||
)
|
||||
self.product = basic_models.Product.objects.create(
|
||||
merchant=self.merchant,
|
||||
category=self.category,
|
||||
name='测试产品',
|
||||
human_id='TEST001',
|
||||
unit=basic_models.ProductUnitEnum.METER,
|
||||
)
|
||||
self.process = stateflow_models.Process.objects.create(name='测试流程')
|
||||
self.order = printing_models.PrintingOrder.objects.create(
|
||||
customer=self.customer,
|
||||
fabric='测试布料',
|
||||
width='150cm',
|
||||
process=self.process,
|
||||
external_order_id='KD20432371',
|
||||
)
|
||||
self.job = printing_models.PrintingJob.objects.create(
|
||||
printing_order=self.order,
|
||||
product=self.product,
|
||||
quantity=10,
|
||||
unit='米',
|
||||
size='10x10',
|
||||
pieces=1,
|
||||
)
|
||||
|
||||
def test_search_by_external_order_id_does_not_raise_and_returns_job(self):
|
||||
model_admin = printing_admin.PrintingJobAdmin(printing_models.PrintingJob, self.site)
|
||||
request = self.factory.get('/admin/printing/printingjob/', {'q': 'KD20432371'})
|
||||
request.user = self.admin_user
|
||||
|
||||
queryset, may_have_duplicates = model_admin.get_search_results(
|
||||
request,
|
||||
printing_models.PrintingJob.objects.all(),
|
||||
'KD20432371',
|
||||
)
|
||||
|
||||
self.assertFalse(may_have_duplicates)
|
||||
self.assertEqual(list(queryset), [self.job])
|
||||
|
||||
Reference in New Issue
Block a user