feat: 각 모듈 개별 테스트 실행 가능하도록 수정 및 docker compose 최신 버전 형식 적용

This commit is contained in:
2025-12-31 11:46:15 +09:00
parent 8cfeaae92d
commit 53326703ab
13 changed files with 888 additions and 21 deletions

View File

@ -333,3 +333,39 @@ def send_mattermost_notification(
"""
notifier = MattermostNotifier.from_config()
return notifier.send_message(message, channel_id, use_webhook)
if __name__ == '__main__':
"""
Mattermost 알림 서비스 모듈 테스트
사용법:
python services/notification/mattermost.py
"""
logger.info("=== Mattermost 알림 서비스 모듈 테스트 ===")
try:
config = get_config()
logger.info(f"설정 로드 완료")
# 알림기 초기화
notifier = MattermostNotifier.from_config()
logger.info("\nMattermostNotifier 초기화 완료")
logger.info("\n제공 기능:")
logger.info("- send_message: 기본 메시지 발송")
logger.info("- send_alert: 알림 메시지 발송")
logger.info("- send_weather: 날씨 정보 발송")
logger.info("- send_daily_report: 일일 보고서 발송")
logger.info("\n지원 방식:")
logger.info("- 웹훅 방식 (Incoming Webhook)")
logger.info("- Bot API 방식")
logger.info("\n✓ Mattermost 알림 서비스 모듈 테스트 완료")
except Exception as e:
logger.error(f"Mattermost 모듈 테스트 실패: {e}")
import traceback
logger.error(traceback.format_exc())

View File

@ -342,3 +342,41 @@ class NotionWebhookHandler:
url = page_data.get('url', 'URL 없음')
return f"📌 노션 페이지 업데이트됨\n**제목**: {title}\n🔗 [바로가기]({url})"
if __name__ == '__main__':
"""
Notion 웹훅 처리 서비스 모듈 테스트
사용법:
python services/notification/notion.py
"""
logger.info("=== Notion 웹훅 처리 서비스 모듈 테스트 ===")
try:
config = get_config()
logger.info(f"설정 로드 완료")
# 핸들러 초기화
api_secret = config.notion['api_secret'] or "TEST_KEY"
handler = NotionWebhookHandler(api_secret)
logger.info("\nNotionWebhookHandler 초기화 완료")
logger.info("\n제공 기능:")
logger.info("- handle_event: 웹훅 이벤트 처리")
logger.info("- verify_signature: 요청 서명 검증")
logger.info("- generate_message: 알림 메시지 생성")
logger.info("\n지원 이벤트:")
logger.info("- 페이지 생성 (page.created)")
logger.info("- 페이지 수정 (page.updated)")
logger.info("- 페이지 삭제 (page.deleted)")
logger.info("- 데이터베이스 항목 생성 (object.created)")
logger.info("\n✓ Notion 웹훅 처리 서비스 모듈 테스트 완료")
except Exception as e:
logger.error(f"Notion 모듈 테스트 실패: {e}")
import traceback
logger.error(traceback.format_exc())