Skip to content

Commit

Permalink
unittest wip
Browse files Browse the repository at this point in the history
  • Loading branch information
TunahanGuler committed Feb 4, 2025
1 parent 1911efd commit 84b9b74
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 39 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
"""Bitbucket merge requests collector."""
import pdb
from typing import cast

from collector_utilities.functions import match_string_or_regular_expression
Expand Down Expand Up @@ -28,9 +29,12 @@ async def _landing_url(self, responses: SourceResponses) -> URL:
async def _get_source_responses(self, *urls: URL) -> SourceResponses:
"""Extend to use Bitbucket pagination, if necessary."""
responses = await super()._get_source_responses(*urls)
while not (await responses[-1].json())["isLastPage"]:
nr_merge_requests_to_skip = (await responses[-1].json())["nextPageStart"]
isLastPage = False
while not isLastPage:
json = await responses[-1].json()
nr_merge_requests_to_skip = json.get("nextPageStart", 0)
responses.extend(await super()._get_source_responses(URL(f"{urls[0]}&start={nr_merge_requests_to_skip}")))
isLastPage = json["isLastPage"]
return responses

async def _parse_entities(self, responses: SourceResponses) -> Entities:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,40 +74,25 @@ async def test_merge_requests(self):
landing_url=self.landing_url,
)

# async def test_pagination(self):
# """Test that pagination works."""
# BitbucketMergeRequests.PAGE_SIZE = 1
# bitbucket_json = [
# { "isLastPage": False, "nextPageStart": 1, "values": [self.create_merge_request(1)]},
# { "isLastPage": False, "nextPageStart": 2, "values": [self.create_merge_request(2)]},
# { "isLastPage": True, "values": [self.create_merge_request(3)]},
# ]
# response = await self.collect(get_request_json_side_effect=bitbucket_json)
# self.assert_measurement(
# response,
# value="2",
# total="2",
# entities=[self.create_entity(1), self.create_entity(2)],
# landing_url=self.landing_url,
# )

# async def test_pagination(self):
# """Test that pagination works."""
# merge_requests_json1 = self.create_mr_json([self.create_merge_request(1)], has_next_page=True)
# merge_requests_json2 = self.create_mr_json([self.create_merge_request(2)])
# # merge_request_fields_response = AsyncMock()
# merge_requests_page1 = AsyncMock()
# merge_requests_page2 = AsyncMock()
# execute = AsyncMock(side_effect=[merge_requests_page1, merge_requests_page2])
# # merge_request_fields_response.json = AsyncMock(return_value=self.merge_request_fields_json())
# merge_requests_page1.json = AsyncMock(return_value=merge_requests_json1)
# merge_requests_page2.json = AsyncMock(return_value=merge_requests_json2)
# entities = [self.create_entity(1), self.create_entity(2)]
# # response = await self.collect_merge_requests(execute)
# # pdb.set_trace()
# # self.assert_measurement(response, value="2", total="2", entities=entities, landing_url=self.landing_url)
#
# # links = {"next": {"url": "https://harbor/next_page"}}
# response = await self.collect(get_request_json_side_effect=[merge_requests_json1, merge_requests_json2])
# # pdb.set_trace()
# self.assert_measurement(response, value="2", entities=entities)
async def test_pagination(self):
"""Test that pagination works."""
BitbucketMergeRequests.PAGE_SIZE = 1
bitbucket_json = [
{ "Hallo": True, "isLastPage": False, "nextPageStart": 1, "values": [self.create_merge_request(1)]},
{ "isLastPage": False, "nextPageStart": 2, "values": [self.create_merge_request(2)]},
{ "isLastPage": True, "values": [self.create_merge_request(3)]},
{"isLastPage": False, "nextPageStart": 1, "values": [self.create_merge_request(1)]},
{"isLastPage": False, "nextPageStart": 2, "values": [self.create_merge_request(2)]},
{"isLastPage": True, "values": [self.create_merge_request(3)]},
{"isLastPage": False, "nextPageStart": 1, "values": [self.create_merge_request(1)]},
{"isLastPage": False, "nextPageStart": 2, "values": [self.create_merge_request(2)]},
{"isLastPage": True, "values": [self.create_merge_request(3)]},
]
response = await self.collect(get_request_json_side_effect=bitbucket_json)
self.assert_measurement(
response,
value="3",
total="9",
entities=[self.create_entity(1), self.create_entity(2)],
landing_url=self.landing_url,
)

0 comments on commit 84b9b74

Please sign in to comment.