def test_builds_with_pagination_request( self, offset: Optional[int], limit: Optional[int], expected_first_build_id: int, expected_last_build_id: int, ): master = ClusterMaster() # Create 20 mock builds with ids 1 to 20 for build_id in range(1, self._NUM_BUILDS + 1): build_mock = Mock(spec=Build) build_mock.build_id = build_id BuildStore._all_builds_by_id[build_id] = build_mock requested_builds = master.get_builds(offset, limit) id_of_first_build = requested_builds[0].build_id if len( requested_builds) else None id_of_last_build = requested_builds[-1].build_id if len( requested_builds) else None num_builds = len(requested_builds) self.assertEqual(id_of_first_build, expected_first_build_id, 'Received the wrong first build from request') self.assertEqual(id_of_last_build, expected_last_build_id, 'Received the wrong last build from request') if offset is not None and limit is not None: self.assertLessEqual(num_builds, self._PAGINATION_MAX_LIMIT, 'Received too many builds from request')
def test_builds_with_pagination_request( self, offset: Optional[int], limit: Optional[int], expected_first_build_id: int, expected_last_build_id: int, ): master = ClusterMaster() # Create 20 mock builds with ids 1 to 20 for build_id in range(1, self._NUM_BUILDS + 1): build_mock = Mock(spec=Build) build_mock.build_id = build_id BuildStore._cached_builds_by_id[build_id] = build_mock # Normally `get_builds` counts the amount of builds in database, but since we're directly # adding builds into the cache here, we want to count those instead. self.patch('app.database.build_store.BuildStore.count_all_builds', autospec=False).return_value = len( BuildStore._cached_builds_by_id) requested_builds = master.get_builds(offset, limit) id_of_first_build = requested_builds[0].build_id if len( requested_builds) else None id_of_last_build = requested_builds[-1].build_id if len( requested_builds) else None num_builds = len(requested_builds) self.assertEqual(id_of_first_build, expected_first_build_id, 'Received the wrong first build from request') self.assertEqual(id_of_last_build, expected_last_build_id, 'Received the wrong last build from request') if offset is not None and limit is not None: self.assertLessEqual(num_builds, self._PAGINATION_MAX_LIMIT, 'Received too many builds from request')
def test_builds_with_pagination_request( self, offset: Optional[int], limit: Optional[int], expected_first_build_id: int, expected_last_build_id: int, ): master = ClusterMaster() # Create 20 mock builds with ids 1 to 20 for build_id in range(1, self._NUM_BUILDS + 1): build_mock = Mock(spec=Build) build_mock.build_id = build_id BuildStore._all_builds_by_id[build_id] = build_mock requested_builds = master.get_builds(offset, limit) id_of_first_build = requested_builds[0].build_id if len(requested_builds) else None id_of_last_build = requested_builds[-1].build_id if len(requested_builds) else None num_builds = len(requested_builds) self.assertEqual(id_of_first_build, expected_first_build_id, 'Received the wrong first build from request') self.assertEqual(id_of_last_build, expected_last_build_id, 'Received the wrong last build from request') if offset is not None and limit is not None: self.assertLessEqual(num_builds, self._PAGINATION_MAX_LIMIT, 'Received too many builds from request')