refactor: unify exception handling, add ISO 8601 time, dedup commands, expand tests
- Replace _error_code_for_message() string matching with error_code attribute on exception classes - Add error_code to all TwitterError subclasses (AuthenticationError, RateLimitError, etc.) - Add InvalidInputError exception class - TwitterAPIError derives error_code from HTTP status code automatically - auth.py: use AuthenticationError instead of RuntimeError - cli.py: catch (TwitterError, RuntimeError) for backward compat - Extract _fetch_and_display_users() to deduplicate followers/following commands - Add format_iso8601() to timeutil.py - Add createdAtISO field to tweet and user profile serialization - New test files: test_output.py, test_cache.py, test_timeutil.py - Expand test_filter.py (topN, score mode, custom weights, empty input) - Tests: 152 → 194 unit tests, all passing
This commit is contained in:
@@ -104,10 +104,11 @@ def test_cli_commands_wrap_client_creation_errors(monkeypatch, args) -> None:
|
||||
|
||||
|
||||
def test_cli_user_error_yaml(monkeypatch) -> None:
|
||||
from twitter_cli.exceptions import NotFoundError
|
||||
monkeypatch.setenv("OUTPUT", "auto")
|
||||
monkeypatch.setattr(
|
||||
"twitter_cli.cli._get_client",
|
||||
lambda config=None, quiet=False: (_ for _ in ()).throw(RuntimeError("User not found")),
|
||||
lambda config=None, quiet=False: (_ for _ in ()).throw(NotFoundError("User not found")),
|
||||
)
|
||||
runner = CliRunner()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user