test : add unit tests for ScanRateLimiter helpers in rate_limiter

Aperta
#2,323 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@aaniya22 ci sta già lavorando.

Dal 29/7/2026.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
fastapi, python
Ambito
security, testing

Direzione di ricerca

Start with backend/secuscan/rate_limiter.py and read the existing unit test conventions under testing/backend/unit/. Add testing/backend/unit/test_rate_limiter_scan_rate_limiter.py to cover the listed helpers and check() cases, then run that test file. Done means each specified behavior and factory argument is verified; the issue says the work is already being handled by tmdeveloper007.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Summary of What Needs to be Done:
The backend/secuscan/rate_limiter.py module (containing ScanRateLimiter, RateLimitExceeded, make_scan_rate_limiter) has no dedicated test file. Add unit tests covering the core helper methods.

Changes that Need to be Made:

  • Add a new test file: testing/backend/unit/test_rate_limiter_scan_rate_limiter.py
  • Test ScanRateLimiter._get_client_ip(): X-Forwarded-For, X-Real-IP, direct client.host, None client
  • Test ScanRateLimiter._make_key(): key namespace construction
  • Test ScanRateLimiter.reset(): clears fallback history and redis_failed flag
  • Test ScanRateLimiter.check() with rate_limit=0 (early return)
  • Test ScanRateLimiter.check() with redis_client=None (in-memory fallback path)
  • Test ScanRateLimiter.check() per-minute and per-hour limit enforcement
  • Test make_scan_rate_limiter factory preserves all arguments

Impact that it would Provide:

  • Reliability: Rate limiter IP extraction, key generation, and fallback logic are verified
  • Security: Ensures rate limiting cannot be bypassed
  • Testing coverage: Fills a gap in the untested rate_limiter module

Note: This task is being handled by tmdeveloper007 — please assign to that account when picking it up.

Lingua principale
Python
Stelle
36
Fork
234
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di utksh1/SecuScan

Tutte le issue di utksh1/SecuScan

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.