- Standardize import statements by removing unnecessary parentheses and line breaks
- Adjust function signatures and docstrings for better readability
- Fix indentation and spacing in test files to follow consistent patterns
- Reformat multi-line statements and expressions for clarity
- Remove trailing whitespace and ensure consistent line endings
Removed unused imports across multiple files including `os`, `json`, `time`, `pathlib.Path`, `pytest`, and `unittest.mock.patch`.
Cleaned up redundant variable assignments in `CommandExecutor` and removed unnecessary f-strings in log messages.
This improves code readability and reduces unnecessary dependencies.
The test in `test_command_executor.py` was updated to use `asyncio.create_subprocess_shell` instead of `asyncio.create_subprocess_exec` to better reflect the intended behavior. Additionally, the assertion to verify the subprocess call was modified to check if "python" is included in the call arguments rather than being the first argument, ensuring the test remains accurate with the updated method.
Added the "$" operator to the list of shell operators in the CommandExecutor class to ensure commands containing environment variables are executed in a shell context. This allows for proper expansion of environment variables like $PATH.
test(command-executor): add test case for environment variable expansion
Added a new test case `test_execute_command_with_env_vars` to verify that environment variables are correctly expanded when executing shell commands. The test checks that the $PATH variable is expanded and contains colon-separated directories in the output.
- Added detection for shell operators (&&, ||, |, ;, >, <, etc.)
- Use create_subprocess_shell for commands with shell operators
- Added test for combined commands using cd with another command
- This enables scenarios like 'cd /path && cat file.txt'
This commit introduces type hints to all test methods across multiple test files. The type hints provide explicit information about the expected types of function parameters and return values, enhancing code readability and enabling better static analysis. This change aligns with Python's gradual typing approach and helps catch potential type-related issues early in the development process. The affected test files include:
- tests/test_cli.py
- tests/test_common/test_context.py
- tests/test_common/test_hidden_files.py
- tests/test_common/test_permissions.py
- tests/test_executors.py
- tests/test_filesystem/test_file_operations.py
- tests/test_project/test_analysis.py
- tests/test_server.py
- tests/test_shell/test_command_executor.py
The type hints have been added to test methods, fixtures, and helper functions, ensuring consistent typing throughout the test suite. This change does not modify the actual test logic but improves the overall code quality and maintainability.
Removed the `.github` directory from the sensitive directories list in the `PermissionManager` class. Simplified the `CommandExecutor` class by removing the `_add_default_exclusions` method and the `excluded_patterns` list, retaining only the `rm` command in the `excluded_commands` list. Updated the corresponding tests to reflect these changes.
- Add new `project_manager` fixture to `tests/conftest.py` for testing
- Update test assertions in `tests/test_cli.py` to clarify mode parameter behavior
- Refactor imports and improve code formatting in `tests/test_common/test_context.py`
- Refactor imports and improve code formatting in `tests/test_common/test_permissions.py`
- Enhance test coverage for `ScriptExecutor` in `tests/test_executors.py` with additional edge cases and improved mocking
- Update test setup in `tests/test_filesystem/test_file_operations.py` to handle tool registration more robustly
- Update test setup in `tests/test_project/test_analysis.py` to handle tool registration more robustly
- Improve server initialization tests in `tests/test_server.py` with better mocking and path handling
- Update command executor tests in `tests/test_shell/test_command_executor.py` with more precise assertions
Added a full suite of test files to cover the functionality of various project components including:
- CLI module tests
- Common context and permissions tests
- Command executor tests
- File operations tests
- Project analysis tests
- Server tests
- Shell command tests
Each test file includes unit tests for the corresponding module, covering core functionality, error handling, and edge cases. The tests utilize pytest fixtures and mocks to simulate different scenarios and ensure proper behavior of the code.
This extensive test suite will help maintain code quality, catch regressions, and ensure the reliability of the project as it evolves.