macxred / cashctrl_api

Python client for the CashCtrl REST API
MIT License
0 stars 0 forks source link

Feat/24 add list functions #24

Closed AlexTheWizardL closed 3 months ago

AlexTheWizardL commented 3 months ago

Pull Request: Implement New Listing Features with Tests

Description

This pull request includes the following changes:

Updates to README

Added new method descriptions:

New Constants File

Added Methods

New Unit Tests

Added unit tests to check that listing methods return expected columns with correct data types:

  1. Test for list_tax_rates():

    • Checks that the DataFrame returned by CashCtrlClient contains all expected columns with the correct data types as specified in TAX_COLUMNS.
    • Ensures there are no unexpected columns and verifies the data types for expected columns.
  2. Test for list_accounts():

    • Verifies that CashCtrlClient's list_accounts() returns a DataFrame containing expected columns with the correct data types.
    • Ensures no unexpected columns are present and checks data types for expected columns.
  3. Test for list_journal_entries():

    • Validates that CashCtrlClient's list_journal_entries() contains expected columns with correct data types as specified in JOURNAL_ENTRIES.
    • Ensures no unexpected columns are found and checks data types for each expected column.

ChatGPT Review

Click for ChatGPT prompt ## Overview After reviewing the proposed changes, I analyzed how they align with community standards and best practices in open-source projects. This includes considering code structure, documentation, unit tests, and overall maintainability. Below are my observations and suggestions for improvement. ## Code Structure - **Current Practice**: The code structure seems consistent, with logical separation of constants, methods, and tests. - **Comparison**: Compared to established open-source projects, this structure aligns well. Notable projects like [Project A] and [Project B] have similar modular approaches. - **Improvement Suggestion**: Ensure consistent naming conventions across all modules and methods. This helps maintain clarity and readability. ## Documentation - **Current Practice**: The README has been updated to include new method descriptions, which is a good start. The addition of comments in the code also contributes to readability. - **Comparison**: Many successful open-source projects, such as [Project C], provide detailed examples or usage guides in their documentation. - **Improvement Suggestion**: Consider adding code snippets or examples to the README to illustrate how the new methods can be used. This helps new contributors understand the context better. ## Unit Tests - **Current Practice**: The inclusion of unit tests to verify the expected columns and data types is a positive step toward ensuring code reliability. - **Comparison**: Leading open-source projects often include extensive test coverage, sometimes using Continuous Integration (CI) for automated testing. - **Improvement Suggestion**: Consider implementing a CI setup (like GitHub Actions or Travis CI) to automatically run tests upon code changes. This can help maintain code quality over time. ## Community Interaction - **Current Practice**: The pull request contains clear descriptions and explanations of the changes, which is beneficial for community collaboration. - **Comparison**: Open-source projects with active communities often have clear guidelines for contributing, issue tracking, and pull request review. - **Improvement Suggestion**: Consider creating a `CONTRIBUTING.md` file to outline best practices for contributions, including coding standards and testing requirements. This can encourage more consistent and collaborative contributions. ## Conclusion Overall, the proposed changes align with common open-source best practices. The focus on documentation and unit tests is a positive step. Implementing a CI system and providing more detailed examples in the documentation could further enhance the project's quality and community engagement. Thank you for considering these suggestions. I look forward to the final implementation.

Notes for Reviewers

Please review the new methods and tests for accuracy and provide any feedback or suggestions for improvement.

lasuk commented 3 months ago

Merged. Thanks a lot!