def test_sync(self): '''Test the threading/transcription works when async=false''' reactor = self.buildReactor() expected = {'some': 'result'} stub_transcriber = StubTranscriber(transcribe_stub=expected) controller = TranscriptionsController(stub_transcriber, reactor=reactor) req = DummyRequest([]) req.method = 'POST' req.args = {'transcript': [''], 'audio': [''], 'async': ['false']} finish = req.notifyFinish() finish.addCallback(lambda _: reactor.callWhenRunning(reactor.stop)) body = controller.render(req) assert_equals(body, NOT_DONE_YET) self.runReactor(reactor, timeout=1) assert_equals(len(req.written), 1) got = json.loads(req.written[0]) assert_equals(got, expected)
def test_sync_cancel(self): '''Test that the controller doesn't try to render when the request is cancelled.''' reactor = self.buildReactor() stub_transcriber = StubTranscriber() controller = TranscriptionsController(stub_transcriber, reactor=reactor) req = DummyRequest([]) req.method = 'POST' req.args = {'transcript': [''], 'audio': [''], 'async': ['false']} controller.render(req) req.processingFailed(Failure(ConnectionDone("Simulated disconnect"))) reactor.callWhenRunning(reactor.stop) self.runReactor(reactor) assert_equals(req.finished, 0)
def test_sync_cancel(self): '''Test that the controller doesn't try to render when the request is cancelled.''' reactor = self.buildReactor() stub_transcriber = StubTranscriber() controller = TranscriptionsController(stub_transcriber, reactor=reactor) req = DummyRequest([]) req.method = 'POST' req.args = {'transcript': [''], 'audio': [''], 'async': ['false']} controller.render(req) req.processingFailed( Failure(ConnectionDone("Simulated disconnect"))) reactor.callWhenRunning(reactor.stop) self.runReactor(reactor) assert_equals(req.finished, 0)
def test_async(self): '''Test the redirect works when async=true''' reactor = self.buildReactor() uid = 'myuid' want_location = '/transcriptions/' + uid stub_transcriber = StubTranscriber(uid_stub=uid) controller = TranscriptionsController(stub_transcriber, reactor=reactor) req = DummyRequest([]) req.method = 'POST' req.args = {'transcript': [''], 'audio': ['']} body = controller.render(req) assert_equals(body, '') assert 'location' in req.outgoingHeaders got_location = req.outgoingHeaders['location'] assert_equals(want_location, got_location)