Telethon/tests/telethon/test_pickle.py

36 lines
1.1 KiB
Python

import pickle
from telethon.errors import RPCError, BadRequestError, FileIdInvalidError, NetworkMigrateError
def _assert_equality(error, unpickled_error):
assert error.code == unpickled_error.code
assert error.message == unpickled_error.message
assert type(error) == type(unpickled_error)
assert str(error) == str(unpickled_error)
def test_base_rpcerror_pickle():
error = RPCError("request", "message", 123)
unpickled_error = pickle.loads(pickle.dumps(error))
_assert_equality(error, unpickled_error)
def test_rpcerror_pickle():
error = BadRequestError("request", "BAD_REQUEST", 400)
unpickled_error = pickle.loads(pickle.dumps(error))
_assert_equality(error, unpickled_error)
def test_fancy_rpcerror_pickle():
error = FileIdInvalidError("request")
unpickled_error = pickle.loads(pickle.dumps(error))
_assert_equality(error, unpickled_error)
def test_fancy_rpcerror_capture_pickle():
error = NetworkMigrateError(request="request", capture=5)
unpickled_error = pickle.loads(pickle.dumps(error))
_assert_equality(error, unpickled_error)
assert error.new_dc == unpickled_error.new_dc