Skip to content

test(heartbeat): add tests for heartbeat module #20

@NickStr11

Description

@NickStr11

Задача

Написать тесты для модуля tools/heartbeat/. Сейчас coverage = 0%.

Файлы для тестирования

  • tools/heartbeat/config.py — проверить что TOPICS и ALL_KEYWORDS корректны
  • tools/heartbeat/sources.py — тесты для fetch_hn_stories(), fetch_github_trending(), fetch_reddit_posts(), _matches_keywords()
  • tools/heartbeat/formatter.py — тест format_raw_digest() с mock-данными
  • tools/heartbeat/analyzer.py — тест read_project_context()
  • tools/heartbeat/main.py — тест CLI аргументов

Что нужно сделать

  1. Создать tools/heartbeat/tests/ директорию
  2. Добавить pytest в dev-зависимости: uv add --dev pytest
  3. Написать тесты с mock для HTTP-вызовов (не делать реальные запросы к API)
  4. Использовать unittest.mock.patch для мока _http_get_json
  5. Целевой coverage: 80%+

Acceptance Criteria

  • tools/heartbeat/tests/test_sources.py — тесты fetch функций с моками
  • tools/heartbeat/tests/test_formatter.py — тест форматирования
  • tools/heartbeat/tests/test_config.py — тест конфигурации
  • tools/heartbeat/tests/__init__.py — пустой
  • Все тесты проходят: cd tools/heartbeat && uv run pytest
  • Все файлы с from __future__ import annotations и @beartype где применимо
  • Никаких реальных HTTP-запросов в тестах

Контекст

  • Python 3.12+, uv, beartype
  • pyproject.toml: tools/heartbeat/pyproject.toml
  • Dataclass-ы: HNStory, GitHubRepo, RedditPost в sources.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