From ab4aef11e6275427a2aa20b8fa47afecd07a086a Mon Sep 17 00:00:00 2001 From: Jon Michael Aanes Date: Tue, 15 Apr 2025 00:31:22 +0200 Subject: [PATCH] Ruff --- aider_gitea/__init__.py | 21 ++++--- aider_gitea/gitea_client.py | 6 +- test/test_gitea_client_pr_labels.py | 5 +- test/test_init.py | 86 ++++++++++++++++------------- 4 files changed, 70 insertions(+), 48 deletions(-) diff --git a/aider_gitea/__init__.py b/aider_gitea/__init__.py index 5a155b4..1d3dfe0 100644 --- a/aider_gitea/__init__.py +++ b/aider_gitea/__init__.py @@ -242,10 +242,10 @@ def push_changes( def get_current_commit_hash(cwd: Path) -> str: """Get the hash of the current commit. - + Args: cwd: The current working directory (repository path). - + Returns: The hash of the current commit as a string. """ @@ -262,13 +262,14 @@ def get_current_commit_hash(cwd: Path) -> str: logger.exception('Failed to get current commit hash') return '' + def has_changes_since_commit(cwd: Path, commit_hash: str) -> bool: """Check if there are any changes since the specified commit. - + Args: cwd: The current working directory (repository path). commit_hash: The hash of the commit to compare against. - + Returns: True if there are changes since the commit, False otherwise. """ @@ -285,6 +286,7 @@ def has_changes_since_commit(cwd: Path, commit_hash: str) -> bool: logger.exception('Failed to check for changes since commit %s', commit_hash) return False + def has_commits_on_branch(cwd: Path, base_branch: str, current_branch: str) -> bool: """Check if there are any commits on the current branch that aren't in the base branch. @@ -344,12 +346,12 @@ def solve_issue_in_repository( run_cmd(['bash', '-c', AIDER_TEST], tmpdirname) run_cmd(['git', 'checkout', args.base_branch], tmpdirname) run_cmd(['git', 'checkout', '-b', branch_name], tmpdirname) - + # Run initial ruff pass and commit run_cmd(['bash', '-c', RUFF_FORMAT_AND_AUTO_FIX], tmpdirname, check=False) run_cmd(['git', 'add', '.'], tmpdirname) run_cmd(['git', 'commit', '-m', 'Initial ruff pass'], tmpdirname, check=False) - + # Get the commit hash after ruff but before aider pre_aider_commit = get_current_commit_hash(tmpdirname) @@ -368,10 +370,13 @@ def solve_issue_in_repository( run_cmd(['bash', '-c', RUFF_FORMAT_AND_AUTO_FIX], tmpdirname, check=False) run_cmd(['git', 'add', '.'], tmpdirname) run_cmd(['git', 'commit', '-m', 'Ruff'], tmpdirname, check=False) - + # Check if aider made any changes beyond the initial ruff pass if not has_changes_since_commit(tmpdirname, pre_aider_commit): - logger.info('Aider did not make any changes beyond the initial ruff pass for issue #%s', issue_number) + logger.info( + 'Aider did not make any changes beyond the initial ruff pass for issue #%s', + issue_number, + ) return False # Push changes diff --git a/aider_gitea/gitea_client.py b/aider_gitea/gitea_client.py index b88e82b..57f3ae6 100644 --- a/aider_gitea/gitea_client.py +++ b/aider_gitea/gitea_client.py @@ -171,7 +171,11 @@ class GiteaClient: return pull_request def add_labels_to_pull_request( - self, owner: str, repo: str, pull_number: int, labels: list[str], + self, + owner: str, + repo: str, + pull_number: int, + labels: list[str], ) -> bool: """Add labels to an existing pull request. diff --git a/test/test_gitea_client_pr_labels.py b/test/test_gitea_client_pr_labels.py index 9127278..cdcb93f 100644 --- a/test/test_gitea_client_pr_labels.py +++ b/test/test_gitea_client_pr_labels.py @@ -66,7 +66,10 @@ class TestGiteaClientPRLabels: # Call the method result = self.client.add_labels_to_pull_request( - owner='owner', repo='repo', pull_number=123, labels=['aider', 'bug'], + owner='owner', + repo='repo', + pull_number=123, + labels=['aider', 'bug'], ) # Verify the call diff --git a/test/test_init.py b/test/test_init.py index 84a0a3c..9935a26 100644 --- a/test/test_init.py +++ b/test/test_init.py @@ -1,82 +1,92 @@ -import os import tempfile from pathlib import Path -from unittest.mock import patch, MagicMock +from unittest.mock import MagicMock, patch -import pytest def test_init(): import aider_gitea # noqa: F401 import aider_gitea.secrets # noqa: F401 + def test_get_current_commit_hash(): from aider_gitea import get_current_commit_hash - + with tempfile.TemporaryDirectory() as tmpdirname: with patch('subprocess.run') as mock_run: mock_result = MagicMock() - mock_result.stdout = "abcdef1234567890" + mock_result.stdout = 'abcdef1234567890' mock_run.return_value = mock_result - + result = get_current_commit_hash(Path(tmpdirname)) - - assert result == "abcdef1234567890" + + assert result == 'abcdef1234567890' mock_run.assert_called_once() + def test_has_changes_since_commit(): from aider_gitea import has_changes_since_commit - + with tempfile.TemporaryDirectory() as tmpdirname: # Test with changes with patch('subprocess.run') as mock_run: mock_result = MagicMock() - mock_result.stdout = "file1.py\nfile2.py" + mock_result.stdout = 'file1.py\nfile2.py' mock_run.return_value = mock_result - - result = has_changes_since_commit(Path(tmpdirname), "abcdef") - + + result = has_changes_since_commit(Path(tmpdirname), 'abcdef') + assert result is True mock_run.assert_called_once() - + # Test without changes with patch('subprocess.run') as mock_run: mock_result = MagicMock() - mock_result.stdout = "" + mock_result.stdout = '' mock_run.return_value = mock_result - - result = has_changes_since_commit(Path(tmpdirname), "abcdef") - + + result = has_changes_since_commit(Path(tmpdirname), 'abcdef') + assert result is False mock_run.assert_called_once() + def test_solve_issue_with_no_aider_changes(): from aider_gitea import solve_issue_in_repository - + with tempfile.TemporaryDirectory() as tmpdirname: args = MagicMock() - args.gitea_url = "https://gitea.example.com" - args.owner = "test-owner" - args.repo = "test-repo" - args.base_branch = "main" - - with patch('aider_gitea.run_cmd', return_value=True) as mock_run_cmd, \ - patch('aider_gitea.get_current_commit_hash', return_value="abcdef") as mock_get_hash, \ - patch('aider_gitea.has_changes_since_commit', return_value=False) as mock_has_changes, \ - patch('aider_gitea.create_aider_command', return_value=["mock_aider_command"]) as mock_create_aider: - + args.gitea_url = 'https://gitea.example.com' + args.owner = 'test-owner' + args.repo = 'test-repo' + args.base_branch = 'main' + + with ( + patch('aider_gitea.run_cmd', return_value=True) as mock_run_cmd, + patch( + 'aider_gitea.get_current_commit_hash', return_value='abcdef', + ) as mock_get_hash, + patch( + 'aider_gitea.has_changes_since_commit', return_value=False, + ) as mock_has_changes, + patch( + 'aider_gitea.create_aider_command', return_value=['mock_aider_command'], + ) as mock_create_aider, + ): result = solve_issue_in_repository( args, Path(tmpdirname), - "issue-123-test", - "Test Issue", - "Test Description", - "123", - None + 'issue-123-test', + 'Test Issue', + 'Test Description', + '123', + None, ) - + assert result is False mock_get_hash.assert_called_once() - mock_has_changes.assert_called_once_with(Path(tmpdirname), "abcdef") + mock_has_changes.assert_called_once_with(Path(tmpdirname), 'abcdef') # Verify that the initial ruff pass was run - assert any(call_args[0][0] == ['bash', '-c', RUFF_FORMAT_AND_AUTO_FIX] - for call_args in mock_run_cmd.call_args_list) + assert any( + call_args[0][0] == ['bash', '-c', RUFF_FORMAT_AND_AUTO_FIX] + for call_args in mock_run_cmd.call_args_list + )