test: add coverage for most methods but still bugs

This commit is contained in:
kbe
2025-07-25 13:25:12 +02:00
parent 5e597c4d1a
commit 17cb728dd9
7 changed files with 1031 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
#!/usr/bin/env python3
"""
Unit tests for CrossFitBooker initialization
"""
import pytest
import os
import sys
from unittest.mock import patch
# Add the parent directory to the path
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from crossfit_booker import CrossFitBooker
class TestCrossFitBookerInit:
"""Test cases for CrossFitBooker initialization"""
def test_init_success(self):
"""Test successful initialization with all required env vars"""
with patch.dict(os.environ, {
'CROSSFIT_USERNAME': 'test_user',
'CROSSFIT_PASSWORD': 'test_pass',
'EMAIL_FROM': 'from@test.com',
'EMAIL_TO': 'to@test.com',
'EMAIL_PASSWORD': 'email_pass',
'TELEGRAM_TOKEN': 'telegram_token',
'TELEGRAM_CHAT_ID': '12345'
}):
booker = CrossFitBooker()
assert booker.auth_token is None
assert booker.user_id is None
assert booker.session is not None
assert booker.notifier is not None
def test_init_missing_credentials(self):
"""Test initialization fails with missing credentials"""
with patch.dict(os.environ, {}, clear=True):
with pytest.raises(ValueError, match="Missing environment variables"):
CrossFitBooker()
def test_init_partial_credentials(self):
"""Test initialization fails with partial credentials"""
with patch.dict(os.environ, {
'CROSSFIT_USERNAME': 'test_user'
# Missing PASSWORD
}):
with pytest.raises(ValueError, match="Missing environment variables"):
CrossFitBooker()
def test_init_with_optional_env_vars(self):
"""Test initialization with optional environment variables"""
with patch.dict(os.environ, {
'CROSSFIT_USERNAME': 'test_user',
'CROSSFIT_PASSWORD': 'test_pass',
'ENABLE_EMAIL_NOTIFICATIONS': 'false',
'ENABLE_TELEGRAM_NOTIFICATIONS': 'false'
}):
booker = CrossFitBooker()
assert booker.notifier is not None
if __name__ == "__main__":
pytest.main([__file__, "-v"])