reddit-media-collector/tests/test_reddit_client.py

43 lines
1.2 KiB
Python

"""Tests for Reddit client."""
import time
from src.reddit_client import Post, RateLimiter
class TestRateLimiter:
def test_first_request_no_wait(self):
limiter = RateLimiter(requests_per_minute=60)
start = time.time()
limiter.wait()
elapsed = time.time() - start
assert elapsed < 0.1
def test_respects_rate_limit(self):
limiter = RateLimiter(requests_per_minute=120) # 0.5s interval
limiter.wait()
limiter.last_request = time.time() # simulate request just happened
start = time.time()
limiter.wait()
elapsed = time.time() - start
assert elapsed >= 0.4 # Should wait ~0.5s
class TestPost:
def test_post_creation(self):
post = Post(
id="test",
subreddit="pics",
author="user",
title="Title",
url="https://example.com",
score=100,
created_utc=1700000000.0,
over_18=False,
is_gallery=False,
preview=None,
media_metadata=None,
)
assert post.id == "test"
assert post.permalink is None
assert post.flair is None