Skip to content

AI modules (ai_summarizer.py, ai_providers.py) lack unit tests #214

Description

@shenxianpeng

Description

Core AI modules have zero test coverage:

  • gitstats/ai_summarizer.py (~350 lines) — contains complex logic for data preparation, caching, summary generation
  • gitstats/ai_providers.py (~280 lines) — contains 4 providers (OpenAI, Claude, Gemini, Ollama), factory class, and retry logic

Proposed Fix

Add the following test cases:

ai_summarizer.py

  • prepare_index_data(): verify correct extraction of stats data, bot filtering
  • prepare_activity_data(): verify peak activity detection
  • prepare_authors_data(): verify bot filtering and author sorting
  • prepare_lines_data(): verify line stats calculation
  • _filter_human_authors(): verify recognition of various bot patterns
  • _get_cache_key(): verify cache key generation
  • generate_summary(): mock AI provider, verify cache hit/miss logic

ai_providers.py

  • AIProviderFactory.create(): known/unknown provider names
  • _get_model_with_fallback(): edge cases
  • _retry_with_backoff retry logic for each provider

Affected Code

  • gitstats/ai_summarizer.py
  • gitstats/ai_providers.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions