def getFrames(job, **options): """Finds frames in a job that match the search critieria. @type job: str @param job: the job name @rtype: List<Frame> @return: a list of matching frames""" criteria = search.FrameSearch.criteriaFromOptions(**options) framesSeq = Cuebot.getStub('frame').GetFrames( job_pb2.FrameGetFramesRequest(job=job, r=criteria), timeout=Cuebot.Timeout).frames return [Frame(f) for f in framesSeq.frames]
def testGetFrames(self, getStubMock): stubMock = mock.Mock() stubMock.GetFrames.return_value = job_pb2.FrameGetFramesResponse( frames=job_pb2.FrameSeq(frames=[ job_pb2.Frame(layer_name=TEST_LAYER_NAME, number=1), job_pb2.Frame(layer_name=TEST_LAYER_NAME, number=2), job_pb2.Frame(layer_name=TEST_LAYER_NAME, number=3), job_pb2.Frame(layer_name=TEST_LAYER_NAME, number=4), job_pb2.Frame(layer_name=TEST_LAYER_NAME, number=5), ])) getStubMock.return_value = stubMock frames = opencue.api.getFrames(TEST_JOB_NAME, range="1-5") stubMock.GetFrames.assert_called_with( job_pb2.FrameGetFramesRequest( job=TEST_JOB_NAME, r=job_pb2.FrameSearchCriteria( frame_range="1-5", page=1, limit=1000)), timeout=mock.ANY) self.assertEqual(5, len(frames)) self.assertTrue(all((frame.layer() == TEST_LAYER_NAME for frame in frames))) self.assertEqual([1, 2, 3, 4, 5], [frame.number() for frame in frames])
def byOptions(cls, job, **options): criteria = cls.criteriaFromOptions(**options) return Cuebot.getStub('frame').GetFrames(job_pb2.FrameGetFramesRequest( job=job, r=criteria), timeout=Cuebot.Timeout)