Exemplo n.º 1
0
    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')
Exemplo n.º 2
0
    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')
Exemplo n.º 3
0
    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')