8000 Merge pull request #1167 from ccotter/per-page · chasepd/github3.py@821f3c1 · GitHub
[go: up one dir, main page]

Skip to content

Commit 821f3c1

Browse files
authored
Merge pull request sigmavirus24#1167 from ccotter/per-page
Support per_page search parameter
2 parents 99398b4 + bcb9b23 commit 821f3c1

File tree

3 files changed

+40
-7
lines changed

3 files changed

+40
-7
lines changed

AUTHORS.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,3 +222,5 @@ Contributors
222222
- Andrew MacCormack (@amaccormack-lumira)
223223

224224
- Chris R (@offbyone)
225+
226+
- Chris Cotter (@ccotter)

src/github3/github.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2248,6 +2248,9 @@ def search_code(
22482248
if sort and order in ("asc", "desc"):
22492249
params["order"] = order
22502250

2251+
if per_page is not None:
2252+
params["per_page"] = per_page
2253+
22512254
if text_match:
22522255
headers = {
22532256
"Accept": "application/vnd.github.v3.full.text-match+json"
@@ -2335,6 +2338,9 @@ def search_commits(
23352338
if sort and order in ("asc", "desc"):
23362339
params["order"] = order
23372340

2341+
if per_page is not None:
2342+
params["per_page"] = per_page
2343+
23382344
if text_match:
23392345
headers["Accept"] = ", ".join(
23402346
[
@@ -2427,6 +2433,9 @@ def search_issues(
24272433
if order in ("asc", "desc"):
24282434
params["order"] = order
24292435

2436+
if per_page is not None:
2437+
params["per_page"] = per_page
2438+
24302439
if text_match:
24312440
headers = {
24322441
"Accept": "application/vnd.github.v3.full.text-match+json"
@@ -2505,6 +2514,9 @@ def search_repositories(
25052514
if order in ("asc", "desc"):
25062515
params["order"] = order
25072516

2517+
if per_page is not None:
2518+
params["per_page"] = per_page
2519+
25082520
if text_match:
25092521
headers = {
25102522
"Accept": "application/vnd.github.v3.full.text-match+json"
@@ -2588,6 +2600,9 @@ def search_users(
25882600
if order in ("asc", "desc"):
25892601
params["order"] = order
25902602

2603+
if per_page is not None:
2604+
params["per_page"] = per_page
2605+
25912606
if text_match:
25922607
headers = {
25932608
"Accept": "application/vnd.github.v3.full.text-match+json"

tests/unit/test_github.py

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1317,21 +1317,34 @@ class TestGitHubSearchIterators(helper.UnitSearchIteratorHelper):
13171317
def test_search_code(self):
13181318
"""Verify the request to search for code."""
13191319
i = self.instance.search_code(
1320-
"addClass in:file language:js repo:jquery/jquery"
1320+
"addClass in:file language:js repo:jquery/jquery", per_page=15
13211321
)
13221322
self.get_next(i)
13231323

13241324
self.session.get.assert_called_once_with(
13251325
url_for("search/code"),
13261326
params={
1327-
"per_page": 100,
1327+
"per_page": 15,
13281328
"q": "addClass in:file language:js repo:jquery/jquery",
13291329
},
13301330
headers={},
13311331
)
13321332

13331333
def test_search_commits(self):
13341334
"""Verify the request to search for commits."""
1335+
i = self.instance.search_commits(
1336+
"css repo:octocat/Spoon-Knife", per_page=15
1337+
)
1338+
self.get_next(i)
1339+
1340+
self.session.get.assert_called_once_with(
1341+
url_for("search/commits"),
1342+
params={"per_page": 15, "q": "css repo:octocat/Spoon-Knife"},
1343+
headers={"Accept": "application/vnd.github.cloak-preview"},
1344+
)
1345+
1346+
def test_search_commits_default_per_page(self):
1347+
"""Verify the default per_page in the commits search."""
13351348
i = self.instance.search_commits("css repo:octocat/Spoon-Knife")
13361349
self.get_next(i)
13371350

@@ -1347,14 +1360,15 @@ def test_search_issues(self):
13471360
" 67F4 windows label:bug language:python state:open",
13481361
sort="created",
13491362
order="asc",
1363+
per_page=15,
13501364
)
13511365
self.get_next(i)
13521366

13531367
self.session.get.assert_called_once_with(
13541368
url_for("search/issues"),
13551369
params={
13561370
"order": "asc",
1357-
"per_page": 100,
1371+
"per_page": 15,
13581372
"q": "windows label:bug language:python state:open",
13591373
"sort": "created",
13601374
},
@@ -1364,15 +1378,15 @@ def test_search_issues(self):
13641378
def test_search_repositories(self):
13651379
"""Verify the request to search for repositories."""
13661380
i = self.instance.search_repositories(
1367-
"tetris language:assembly", sort="stars", order="asc"
1381+
"tetris language:assembly", sort="stars", order="asc", per_page=15
13681382
)
13691383
self.get_next(i)
13701384

13711385
self.session.get.assert_called_once_with(
13721386
url_for("search/repositories"),
13731387
params={
13741388
"order": "asc",
1375-
"per_page": 100,
1389+
"per_page": 15,
13761390
"q": "tetris language:assembly",
13771391
"sort": "stars",
13781392
},
@@ -1381,12 +1395,14 @@ def test_search_repositories(self):
13811395

13821396
def test_search_users(self):
13831397
"""Verify the request to search for users."""
1384-
i = self.instance.search_users("tom repos:>42 followers:>1000")
1398+
i = self.instance.search_users(
1399+
"tom repos:>42 followers:>1000", per_page=15
1400+
)
13851401
self.get_next(i)
13861402

13871403
self.session.get.assert_called_once_with(
13881404
url_for("search/users"),
1389-
params={"per_page": 100, "q": "tom repos:>42 followers:>1000"},
1405+
params={"per_page": 15, "q": "tom repos:>42 followers:>1000"},
13901406
headers={},
13911407
)
13921408

0 commit comments

Comments
 (0)
0