Open dhirenmathur opened 2 weeks ago
@dhirenmathur I'd like to take up this issue. The tests should go into which folder?
@Anu-Ra-g that's great, you should create a new folder in the root directory of the project called tests
I'm using this for setting up the tests/module/github/test_github_service.py
package, instead of using __init__.py
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../../../')))
from app.modules.github.github_service import GithubService
Will it be okay?
@Anu-Ra-g I would recommend to stick to creating the init file, this approach could end up being difficult to maintain and run tests from other directories
@Anu-Ra-g let us know if you need any help
Description:
We need to create unit tests for the
github_service.py
file located in theapp/modules/github/
directory. The goal is to ensure that all functions are thoroughly tested for expected behavior, edge cases, and error handling.Functions to Test:
get_github_repo_details: Test the retrieval of GitHub repository details, including handling of invalid repository names and API errors.
get_file_content: Validate file content retrieval, including:
start_line
andend_line
.get_repos_for_user: Validate the retrieval of repositories for a user, including error handling for missing users and tokens.
get_combined_user_repos: Test the combination of user repositories and project repositories, ensuring no duplicates.
get_branch_list: Validate branch retrieval, including error handling for non-existent repositories.
get_public_github_instance: Ensure that a public GitHub instance is returned correctly.
get_repo: Test the retrieval of a repository, including handling of both private and public access failures.
get_project_structure_async: Validate the fetching of project structure, including caching behavior.
Testing Framework:
pytest
for writing the unit tests.pytest-mock
orunittest.mock
to mock external dependencies like GitHub API calls and database interactions.Acceptance Criteria:
Additional Notes: