tofusoup 2025-05-28
Enable TUI launch, wire real data fetching, and fix test suite
22 files · 1,699+ · 840-

TUI and CLI activation

1 file changed
  • cli.py Wired browse command to launch TFBrowserApp and search command to run async queries against Terraform/OpenTofu registries with result formatting
  • Connected CLI browse command to launch the Textual TUI and search command to execute live registry queries decouple behavioral
    1 file
    • cli.py

Registry client refinements

3 files changed
  • opentofu.py Restructured OpenTofu client to use api.opentofu.org search endpoint with internal _search_api_opentofu method, replaced search client with API client
  • terraform.py Simplified Terraform registry client implementation
  • base.py Updated abstract method signatures for get_provider_details and get_module_details to use individual namespace/name/version parameters instead of composite IDs
  • Switched OpenTofu registry from search.opentofu.org to api.opentofu.org for search operations decouple internal
    1 file
    • opentofu.py
  • Refined base registry interface with explicit namespace/name/provider/version parameters for detail methods decouple internal
    1 file
    • base.py

Dependency and test configuration fixes

6 files changed
  • pyproject.toml Pinned Textual to 3.2.0, added asyncio_default_fixture_loop_scope, consolidated duplicate dev dependency groups, added hypothesis
  • uv.lock Updated lock file with pinned Textual and new test dependencies
  • test_opentofu_registry.py Updated tests for new API-based search approach
  • test_registry_tofy_2.py New secondary OpenTofu registry integration test file
  • test_detail_view.py Fixed Tree widget label assertions for DetailView
  • test_search_view.py Corrected SearchView widget interaction tests
  • Pinned Textual to 3.2.0 and fixed pytest-asyncio fixture loop scope configuration harden internal
    1 file
    • pyproject.toml
  • Consolidated duplicate [project.optional-dependencies] dev and [dependency-groups] dev into single section decouple internal
    1 file
    • pyproject.toml