feat: add logging for None values and improve documentation

- Add logging for None token values
- Improve test documentation and structure
- Fix import sorting in tests

Part of #2198

Co-Authored-By: Joe Moura <joao@crewai.com>
This commit is contained in:
Devin AI
2025-02-22 01:36:00 +00:00
parent 4e84b98ac2
commit 9ed21c4b0e
2 changed files with 13 additions and 4 deletions

View File

@@ -1,4 +1,8 @@
from crewai.types.usage_metrics import UsageMetrics
import logging
logger = logging.getLogger(__name__)
class TokenProcess:
@@ -27,10 +31,12 @@ class TokenProcess:
Raises:
ValueError: If tokens is negative.
"""
if tokens is not None:
if tokens < 0:
raise ValueError("Token count cannot be negative")
self.cached_prompt_tokens += tokens
if tokens is None:
logger.debug("Received None value for token count")
return
if tokens < 0:
raise ValueError("Token count cannot be negative")
self.cached_prompt_tokens += tokens
def sum_successful_requests(self, requests: int) -> None:
self.successful_requests += requests

View File

@@ -4,7 +4,10 @@ from crewai.agents.agent_builder.utilities.base_token_process import TokenProces
class TestTokenProcess(unittest.TestCase):
"""Test suite for TokenProcess class token counting functionality."""
def setUp(self):
"""Initialize a fresh TokenProcess instance before each test."""
self.token_process = TokenProcess()
def test_sum_cached_prompt_tokens_with_none(self):