import pytest from app.core.exceptions import ( TradeMateException, NotFoundError, UnauthorizedError, ForbiddenError, QuotaExceededError, TierRestrictionError, ) class TestExceptions: def test_trade_mate_exception(self): exc = TradeMateException(400, "Bad Request", "Details") assert exc.code == 400 assert exc.message == "Bad Request" assert exc.detail == "Details" def test_not_found_error(self): exc = NotFoundError("User") assert exc.code == 404 assert "User" in exc.message assert "not found" in exc.message def test_unauthorized_error(self): exc = UnauthorizedError() assert exc.code == 401 assert exc.message == "Unauthorized" def test_forbidden_error(self): exc = ForbiddenError() assert exc.code == 403 assert exc.message == "Forbidden" def test_quota_exceeded_error(self): exc = QuotaExceededError("translation") assert exc.code == 429 assert "Quota exceeded" in exc.message assert "translation" in exc.detail def test_tier_restriction_error(self): exc = TierRestrictionError("Advanced Feature", "Pro") assert exc.code == 402 assert "Upgrade required" in exc.message assert "Pro" in exc.detail