forked from erp-dev/erp
feat: new api for plate order (get_plate_order_by_state_status)
This commit is contained in:
@@ -111,7 +111,8 @@ class CloneBusinessObjectServiceTestCase(TestCase):
|
||||
self.business_object.refresh_from_db()
|
||||
|
||||
def test_clone_business_object_copies_all_records_and_parameters(self):
|
||||
new_object_id = (self.business_object.object_id or 0) + 1000
|
||||
new_process = models.Process.objects.create(name='流程B', description='克隆目标流程')
|
||||
new_object_id = new_process.id
|
||||
cloned = services.clone_business_object(
|
||||
self.business_object,
|
||||
new_object_id=new_object_id,
|
||||
@@ -169,9 +170,10 @@ class CloneBusinessObjectServiceTestCase(TestCase):
|
||||
)
|
||||
|
||||
def test_clone_is_independent_from_source(self):
|
||||
target_process = models.Process.objects.create(name='流程B-独立', description='新的绑定对象')
|
||||
cloned = services.clone_business_object(
|
||||
self.business_object,
|
||||
new_object_id=(self.business_object.object_id or 0) + 1000,
|
||||
new_object_id=target_process.id,
|
||||
expected_content_type_id=self.business_object.content_type_id,
|
||||
)
|
||||
|
||||
@@ -186,21 +188,18 @@ class CloneBusinessObjectServiceTestCase(TestCase):
|
||||
src_first_param = src_first_log.parameter_records.order_by('created_at', 'id').first()
|
||||
self.assertEqual(src_first_param.parameters['temperature'], '25.5')
|
||||
|
||||
def test_clone_empty_business_object(self):
|
||||
def test_clone_empty_business_object_requires_binding(self):
|
||||
bo = models.BusinessObject.objects.create(
|
||||
name='BO-empty',
|
||||
process=self.process,
|
||||
description='empty',
|
||||
)
|
||||
cloned = services.clone_business_object(
|
||||
bo,
|
||||
new_object_id=None,
|
||||
expected_content_type_id=None,
|
||||
)
|
||||
self.assertNotEqual(cloned.id, bo.id)
|
||||
self.assertIsNone(cloned.content_type_id)
|
||||
self.assertIsNone(cloned.object_id)
|
||||
self.assertEqual(cloned.state_logs.count(), 0)
|
||||
with self.assertRaises(ValueError):
|
||||
services.clone_business_object(
|
||||
bo,
|
||||
new_object_id=None,
|
||||
expected_content_type_id=None,
|
||||
)
|
||||
|
||||
def test_clone_rejects_mismatched_content_type(self):
|
||||
"""content_type 不一致应拒绝克隆"""
|
||||
|
||||
Reference in New Issue
Block a user