potpie-ai / potpie

Prompt-To-Agent : Create custom engineering agents for your codebase
https://potpie.ai
Apache License 2.0
316 stars 30 forks source link

Generate Unit Tests for github_service.py #175

Open dhirenmathur opened 2 weeks ago

dhirenmathur commented 2 weeks ago

Description:

We need to create unit tests for the github_service.py file located in the app/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:

  1. get_github_repo_details: Test the retrieval of GitHub repository details, including handling of invalid repository names and API errors.

  2. get_file_content: Validate file content retrieval, including:

    • Successful access to private and public repositories.
    • Handling of directory paths instead of file paths.
    • Correct line selection based on start_line and end_line.
  3. get_repos_for_user: Validate the retrieval of repositories for a user, including error handling for missing users and tokens.

  4. get_combined_user_repos: Test the combination of user repositories and project repositories, ensuring no duplicates.

  5. get_branch_list: Validate branch retrieval, including error handling for non-existent repositories.

  6. get_public_github_instance: Ensure that a public GitHub instance is returned correctly.

  7. get_repo: Test the retrieval of a repository, including handling of both private and public access failures.

  8. get_project_structure_async: Validate the fetching of project structure, including caching behavior.

Testing Framework:

Acceptance Criteria:

Additional Notes:

Anu-Ra-g commented 1 week ago

@dhirenmathur I'd like to take up this issue. The tests should go into which folder?

dhirenmathur commented 1 week ago

@Anu-Ra-g that's great, you should create a new folder in the root directory of the project called tests

Anu-Ra-g commented 1 week ago

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?

dhirenmathur commented 1 week ago

@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

dhirenmathur commented 3 days ago

@Anu-Ra-g let us know if you need any help