def test_subjobs_with_pagination_request( self, offset: Optional[int], limit: Optional[int], expected_first_subjob_id: int, expected_last_subjob_id: int, ): build = Build(BuildRequest({})) # Create 20 mock subjobs with ids 1 to 20 for subjob_id in range(1, self._NUM_SUBJOBS + 1): subjob_mock = Mock(spec=Subjob) subjob_mock.subjob_id = subjob_id build._all_subjobs_by_id[subjob_id] = subjob_mock requested_subjobs = build.get_subjobs(offset, limit) id_of_first_subjob = requested_subjobs[0].subjob_id if len( requested_subjobs) else None id_of_last_subjob = requested_subjobs[-1].subjob_id if len( requested_subjobs) else None num_subjobs = len(requested_subjobs) self.assertEqual(id_of_first_subjob, expected_first_subjob_id, 'Received the wrong first subjob from request') self.assertEqual(id_of_last_subjob, expected_last_subjob_id, 'Received the wrong last subjob from request') if offset is not None and limit is not None: self.assertLessEqual(num_subjobs, self._PAGINATION_MAX_LIMIT, 'Received too many subjobs from request')
def test_subjobs_with_pagination_request( self, offset: Optional[int], limit: Optional[int], expected_first_subjob_id: int, expected_last_subjob_id: int, ): build = Build(BuildRequest({})) # Create 20 mock subjobs with ids 1 to 20 for subjob_id in range(1, self._NUM_SUBJOBS + 1): subjob_mock = Mock(spec=Subjob) subjob_mock.subjob_id = subjob_id build._all_subjobs_by_id[subjob_id] = subjob_mock requested_subjobs = build.get_subjobs(offset, limit) id_of_first_subjob = requested_subjobs[0].subjob_id if len(requested_subjobs) else None id_of_last_subjob = requested_subjobs[-1].subjob_id if len(requested_subjobs) else None num_subjobs = len(requested_subjobs) self.assertEqual(id_of_first_subjob, expected_first_subjob_id, 'Received the wrong first subjob from request') self.assertEqual(id_of_last_subjob, expected_last_subjob_id, 'Received the wrong last subjob from request') if offset is not None and limit is not None: self.assertLessEqual(num_subjobs, self._PAGINATION_MAX_LIMIT, 'Received too many subjobs from request')