ModelTranslator: RizomUV 间歇 IPC 失败换新实例重试一次(实测 Cut 偶发 2000ms not responding)
This commit is contained in:
@@ -50,5 +50,27 @@ class TestCall(unittest.TestCase):
|
||||
self.assertEqual(ru._call("Ok", lambda p: {"Data": 1}, {}), {"Data": 1})
|
||||
|
||||
|
||||
class TestRetry(unittest.TestCase):
|
||||
def test_second_attempt_succeeds(self):
|
||||
calls = []
|
||||
|
||||
def fake_once(*a, **kw):
|
||||
calls.append(1)
|
||||
if len(calls) == 1:
|
||||
raise ru.RizomError("IPC 抖动")
|
||||
|
||||
with mock.patch.object(ru, "_import_link"), \
|
||||
mock.patch.object(ru, "_unwrap_once", side_effect=fake_once):
|
||||
ru.rizom_unwrap("x.fbx", "rizomuv.exe")
|
||||
self.assertEqual(len(calls), 2)
|
||||
|
||||
def test_both_attempts_fail_raises(self):
|
||||
with mock.patch.object(ru, "_import_link"), \
|
||||
mock.patch.object(ru, "_unwrap_once",
|
||||
side_effect=ru.RizomError("持续失败")), \
|
||||
self.assertRaises(ru.RizomError):
|
||||
ru.rizom_unwrap("x.fbx", "rizomuv.exe")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user