Andrey Epifancev db8b0bcc13 Тесты настроек NATS: fix-wave по minor-находкам ревью (T2.1, T2.2, T3.1, T3.2, лог старта)
- invalid_subject параметризован по трём ключам, equality покрывает три пары
- кейс утечки JWT/seed при невалидном subject
- /healthcheck с нестандартными subject'ами и проверкой отсутствия JWT
- subscribe с настроенным subject'ом, лог старта с subject'ами
- tasks.md: отмечены 1.1, 1.2, 2.x, 3.1

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 12:57:02 +04:00

1.2 KiB
Raw Blame History

1. Тесты

  • 1.1 Unit: умолчания subject'ов, чтение OPENBAO__NATS__NATS_*_SUBJECT, отказ на */>/пробеле/пустом токене и совпадающих именах; SecretStr для NATS_JWT/NATS_SEED, отсутствие значений в ошибке валидации и repr
  • 1.2 Unit: /healthcheck.subjects (tabular_request, image_request, result) при nats = ok | down | off; лог старта с subject'ами
  • 1.3 Интеграционный тест: приложение с subject'ами окружения публикует запрос и подписано на ответ по ним

2. Реализация

  • 2.1 core/config.py: поля и валидация NATSSettings, SecretStr, hide_input_in_errors=True
  • 2.2 Колбэки nkeys — get_secret_value()
  • 2.3 Подписка и публикация по настройкам; константы contract/subjects.py — умолчания
  • 2.4 /healthcheck.subjects, лог при старте

3. Документы

  • 3.1 api/.env.example, README (переменные NATS, /healthcheck)
  • 3.2 make check-full зелёный