From b54716c2efac6933db459c9a0b45c160defb6a1e Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Fri, 14 Feb 2020 19:15:26 +0200 Subject: [PATCH] Add unpickling tests for RPCErrors --- tests/telethon/test_pickle.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 tests/telethon/test_pickle.py diff --git a/tests/telethon/test_pickle.py b/tests/telethon/test_pickle.py new file mode 100644 index 00000000..4854c66f --- /dev/null +++ b/tests/telethon/test_pickle.py @@ -0,0 +1,35 @@ +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