Skip to content

Conversation

@acuanico-tr-galt
Copy link
Collaborator

  • Single Responsibility - Extracted common operations (parsing, deduplication, validation) into focused utility functions so each function and handler has only one reason to change. God Class Extraction: Broke down ApiRequestHandler from 2,384 lines with 10+ responsibilities into 9 focused handlers (LabelManager, ReferenceManager, CaseHandler, etc.), reducing it by
    53.7% to 1,103 lines.
  • Open/Closed - In the merge_references (as example) function accepts strategy parameter for new behaviours without modifying underlying code. We also used delegation pattern to maintain backward compatibility.
  • Interface Segregation - We broke down the god classes (e.g. api_request_handler) into small, focused utility functions, so handlers import only what they need.
  • Dependency Inversion - Handlers now depend on abstract types, and utility interfaces rather than concrete implementations. We also used callback injection pattern to share functionality between handlers without tight coupling.

Potential impacts

None. All refactors in this PR are all backwards compatible.

PR Tasks

  • Unit tests added/updated

…in, parse cucumber and gherkin with sample data and reports
…erkin commands also updated readme file with comprehensive guide
TRCLI-205 Updated payload format for adding labels to projects
TRCLI-202 Updated file attachment handling and display errors for failed upload due to large file size
TRCLI-203 Improved error handling and uploading for large dataset
TRCLI-207 Fix test run cases deletion issue in update_run_in_plan_entry
Merged bug fixes and improvements from release/1.12.5 into feature/TRCLI-21 branch:

From release/1.12.5:
- TRCLI-207: Fixed deletion issue when updating test runs
- TRCLI-202: Updated file attachment handling and display errors for failed upload
- TRCLI-203: Added parallel pagination feature with retry logic
- TRCLI-205: Updated payload format for adding labels
- Various test updates and improvements

Kept feature/TRCLI-21 changes:
- Version 1.13.0 (BDD/Gherkin support)
- New BDD test methods and e2e tests
- Gherkin parser functionality

Resolved conflicts in:
- CHANGELOG.MD: Combined both release notes
- trcli/__init__.py: Kept version 1.13.0
- trcli/constants.py: Added attachment error messages
- trcli/api/api_request_handler.py: Applied label payload fixes and include_all handling
- trcli/cli.py: Added --parallel-pagination option
- tests/test_api_request_handler.py: Kept both BDD and update_run tests
- tests_e2e/test_end2end.py: Minor text adjustments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant