txrdq를 사용하는 프로젝트에서 대기중인 작업이 실패 할 수있는 경우 테스트 (시험 사용) 중이므로 오류가 발생하면 테스트 케이스가 실패로 표시됩니다.ResxDispatchQueue에서 실패한 작업 테스트 시도
대기열에있는 작업이 시작되지 않을 수 있으므로 테스트를 실패하지 않고 trial을 사용하여이 케이스를 테스트하는 방법은 정상적인 동작입니다.
from twisted.trial.unittest import TestCase
from txrdq.rdq import ResizableDispatchQueue
from twisted.python.failure import Failure
class myTestCase(TestCase):
def aFailingJob(self, a):
return Failure("This is a failure")
def setUp(self):
self.queue = ResizableDispatchQueue(self.aFailingJob, 1)
def tearDown(self):
pass
def test_txrdq(self):
self.queue.put("Some argument", 1)
테스트 케이스에서 Fail (JobError ("This is a failure")) 및 self.assertEqual (1, len (self.flushLoggedErrors (JobError)))를 반환하여 Jean Peal이 여전히 동일한 결과를 얻습니다. 오류 및 assert flushLoggedErrors 호출에 의해 반환 된 이후 실패합니다, 그래서 내가 전에 오류를 플러시 할 수있는 비동기 동작을 수 있습니다. 그래서이 같은 put 메서드를 errback 추가 : self.queue.put (... , 1) .addErrback (self.err)과 err()에서 오류를 플러시합니다. 이제는 오류가 발생하기 전에 오류가 발생하는 것을 볼 수 있지만 여전히 동일한 동작을 얻고 플러시 호출에 의해 0이 반환됩니다. –