Skip to content

Commit dedf260

Browse files
committed
The fixture for list_labels becomes multi-page
Ignore the long `link` header lines --- trying to make them fit readably creates more obscurity than clarity.
1 parent eb0c8d7 commit dedf260

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

tests/conftest.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,31 @@ def fixture_mock_list_labels(
161161
yield
162162

163163

164+
@pytest.fixture(name="mock_paged_list_labels")
165+
def fixture_mock_paged_list_labels(
166+
base_url: str, repo_owner: str, repo_name: str, response_list_labels: ResponseLabels
167+
) -> None:
168+
"""Mock requests for list labels."""
169+
with responses.RequestsMock() as rsps:
170+
rsps.add(
171+
responses.GET,
172+
f"{base_url}/repos/{repo_owner}/{repo_name}/labels",
173+
json=response_list_labels[:2],
174+
status=200,
175+
content_type="application/json",
176+
headers={'link': f'<{base_url}/repos/{repo_owner}/{repo_name}/labels?page=2&per_page=2>; rel="next", <{base_url}/repos/{repo_owner}/{repo_name}/labels?page=2&per_page=2>; rel="last"'} # noqa: E501
177+
)
178+
rsps.add(
179+
responses.GET,
180+
f"{base_url}/repos/{repo_owner}/{repo_name}/labels",
181+
json=response_list_labels[2:],
182+
status=200,
183+
content_type="application/json",
184+
headers={'link': f'<{base_url}/repos/{repo_owner}/{repo_name}/labels?page=1&per_page=2>; rel="prev", <{base_url}/repos/{repo_owner}/{repo_name}/labels?page=1&per_page=2>; rel="first"'} # noqa: E501
185+
)
186+
yield
187+
188+
164189
@pytest.fixture(name="mock_get_label")
165190
def fixture_mock_get_label(
166191
base_url: str, repo_owner: str, repo_name: str, response_get_bug: ResponseLabel

tests/test_github.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def fixture_repo(repo_owner: str, repo_name: str) -> Repository:
1717
return Repository(repo_owner, repo_name)
1818

1919

20-
@pytest.mark.usefixtures("mock_list_labels")
20+
@pytest.mark.usefixtures("mock_paged_list_labels")
2121
def test_list_labels(client: Client, repo: Repository) -> None:
2222
"""Test that list_labels() requests the labels for the specified repo and
2323
returns a list of Label instances.

0 commit comments

Comments
 (0)