diff --git a/python_http_client/client.py b/python_http_client/client.py index e2fa911..834b717 100644 --- a/python_http_client/client.py +++ b/python_http_client/client.py @@ -229,3 +229,9 @@ def http_request(*_, **kwargs): else: # Add a segment to the URL return self._(name) + + def __getstate__(self): + return self.__dict__ + + def __setstate__(self, state): + self.__dict__ = state diff --git a/tests/test_unit.py b/tests/test_unit.py index d5e8956..0d604a4 100644 --- a/tests/test_unit.py +++ b/tests/test_unit.py @@ -1,4 +1,5 @@ import os +import pickle from os import path try: import unittest2 as unittest @@ -184,5 +185,11 @@ def test__getattr__(self): mock_client.response_code = 523 self.assertRaises(HTTPError,mock_client.delete) + def test_client_pickle_unpickle(self): + pickled_client = pickle.dumps(self.client) + unpickled_client = pickle.loads(pickled_client) + self.assertDictEqual(self.client.__dict__, unpickled_client.__dict__, "original client and unpickled client must have the same state") + + if __name__ == '__main__': unittest.main()