Skip to content

Commit

Permalink
update lint and test
Browse files Browse the repository at this point in the history
  • Loading branch information
lawang24 committed May 2, 2024
1 parent dd7d44e commit bdfd787
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 13 deletions.
21 changes: 10 additions & 11 deletions issue_metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,11 @@

import shutil
import sys
from typing import List, Union
from time import sleep
from typing import List, Union

import github3
import github3.structs
from auth import auth_to_github, get_github_app_installation_token
from classes import IssueWithMetrics
from config import EnvVars, get_env_vars
Expand Down Expand Up @@ -64,22 +65,19 @@ def search_issues(
List[github3.search.IssueSearchResult]: A list of issues that match the search query.
"""

def wait_for_GH_api_refresh(iterator):
def wait_for_api_refresh(iterator: github3.structs.SearchIterator):
# Rate Limit Handling: API only allows 30 requests per minute
while iterator.ratelimit_remaining < 5:
print(
"Github API Rate Limit Low, waiting 1 minute to refresh"
)
print("Github API Rate Limit Low, waiting 1 minute to refresh")
sleep(65)

ISSUES_PER_PAGE = 100
issues_per_page = 100

print("Searching for issues...")
issues_iterator = github_connection.search_issues(
search_query, per_page=ISSUES_PER_PAGE
search_query, per_page=issues_per_page
)
wait_for_GH_api_refresh(issues_iterator)

wait_for_api_refresh(issues_iterator)

issues = []
repos_and_owners_string = ""
Expand All @@ -93,8 +91,9 @@ def wait_for_GH_api_refresh(iterator):
issues.append(issue)

# requests are sent once per page of issues
if idx % ISSUES_PER_PAGE == 0:
wait_for_GH_api_refresh(issues_iterator)
if idx % issues_per_page == 0:
wait_for_api_refresh(issues_iterator)

except github3.exceptions.ForbiddenError:
print(
f"You do not have permission to view a repository from: '{repos_and_owners_string}'; Check your API Token."
Expand Down
11 changes: 9 additions & 2 deletions test_issue_metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,20 @@ class TestSearchIssues(unittest.TestCase):

def test_search_issues(self):
"""Test that search_issues returns the correct issues."""

# Set up the mock GitHub connection object
mock_connection = MagicMock()
mock_issues = [
MagicMock(title="Issue 1"),
MagicMock(title="Issue 2"),
]
mock_connection.search_issues.return_value = mock_issues

# simulating github3.structs.SearchIterator return value
mock_search_result = MagicMock()
mock_search_result.__iter__.return_value = iter(mock_issues)
mock_search_result.ratelimit_remaining = 30

mock_connection = MagicMock()
mock_connection.search_issues.return_value = mock_search_result

# Call search_issues and check that it returns the correct issues
repo_with_owner = {"owner": "owner1", "repository": "repo1"}
Expand Down

0 comments on commit bdfd787

Please sign in to comment.