Marketplace tests update

This commit is contained in:
2025-09-24 22:28:44 +02:00
parent f9879126c8
commit cea88a46c5
16 changed files with 613 additions and 73 deletions

View File

@@ -9,7 +9,7 @@ This module provides classes and functions for:
import logging
from collections import defaultdict, deque
from datetime import datetime, timedelta
from datetime import datetime, timedelta, timezone
from typing import Dict
logger = logging.getLogger(__name__)
@@ -23,7 +23,7 @@ class RateLimiter:
# Dictionary to store request timestamps for each client
self.clients: Dict[str, deque] = defaultdict(lambda: deque())
self.cleanup_interval = 3600 # Clean up old entries every hour
self.last_cleanup = datetime.utcnow()
self.last_cleanup = datetime.now(timezone.utc)
def allow_request(
self, client_id: str, max_requests: int, window_seconds: int
@@ -33,7 +33,7 @@ class RateLimiter:
Uses sliding window algorithm
"""
now = datetime.utcnow()
now = datetime.now(timezone.utc)
window_start = now - timedelta(seconds=window_seconds)
# Clean up old entries periodically
@@ -60,7 +60,7 @@ class RateLimiter:
def _cleanup_old_entries(self):
"""Clean up old entries to prevent memory leaks."""
cutoff_time = datetime.utcnow() - timedelta(hours=24)
cutoff_time = datetime.now(timezone.utc) - timedelta(hours=24)
clients_to_remove = []
for client_id, requests in self.clients.items():
@@ -84,7 +84,7 @@ class RateLimiter:
"""Get statistics for a specific client."""
client_requests = self.clients.get(client_id, deque())
now = datetime.utcnow()
now = datetime.now(timezone.utc)
hour_ago = now - timedelta(hours=1)
day_ago = now - timedelta(days=1)