Repository: praw-dev/praw

Issue:
Pickling Comment objects is slow
Test case:

``` python
import pickle, praw
r = praw.Reddit('test')
comment = r.get_info(thing_id='t1_aaaa')
pickle.dumps(comment)
```

Looking at Wireshark, it seems to be caused by an HTTP request.

Good news: implementing `def __getstate__(self): return self.__dict__` in `praw.objects.RedditContentObject` fixes it.

Bad news: I'm not sure why since `pickle` use `__dict__` by default, [as per the docs](https://docs.python.org/2/library/pickle.html#object.__getstate__).

I'm not really familiar with the intricacies of `pickle`, any ideas?



Discussion:
Okay, so that worked for `pickle` protocol version 0 but Google App Engine uses version 2 by default for its task queues and it's still slow. It's caused by `pickle` forcing `praw` to fetch the `subreddit` property somehow.

This fixes it:

``` python
# in praw.objects.RedditContentObject
def __reduce_ex__(self, protocol):
    return self.__reduce__()
```

I'm fine with whatever you come up with. Just please include tests for the various pickle versions. Thanks for the efforts!

Alright, I'll have a PR ready within the next few days


Resolving patch:
diff --git a/praw/objects.py b/praw/objects.py
--- a/praw/objects.py
+++ b/praw/objects.py
@@ -81,10 +81,26 @@ def __getattr__(self, attr):
         raise AttributeError('\'%s\' has no attribute \'%s\'' % (type(self),
                                                                  attr))
 
+    def __getstate__(self):
+        """Needed for `pickle`.
+
+        Without this, pickle protocol version 0 will make HTTP requests
+        upon serialization, hence slowing it down significantly.
+        """
+        return self.__dict__
+
     def __ne__(self, other):
         """Return whether the other instance differs from the current."""
         return not self == other
 
+    def __reduce_ex__(self, protocol):
+        """Needed for `pickle`.
+
+        Without this, `pickle` protocol version 2 will make HTTP requests
+        upon serialization, hence slowing it down significantly.
+        """
+        return self.__reduce__()
+
     def __setattr__(self, name, value):
         """Set the `name` attribute to `value."""
         if value and name == 'subreddit':


Test patch:
diff --git a/tests/cassettes/test_pickling_v0.json b/tests/cassettes/test_pickling_v0.json
new file mode 100644
--- /dev/null
+++ b/tests/cassettes/test_pickling_v0.json
@@ -0,0 +1 @@
+{"recorded_with": "betamax/0.4.2", "http_interactions": [{"response": {"body": {"base64_string": "H4sIAAAAAAAAAxzLy4oDIRBA0V+RWhvQKrXU78huGEK1D3ryMrS9C/3vIbO9h/uG6xxPyOoNbdvGNiGrn1+toMou//nZWr2s+/76Upf7bFrBY9RV5gpZwRxcirzqdIIhogTXBD07omZMXyQsS6JUHZFERl99AK2gjHH7a9+fyWAMrNFYfzJ8Mni2mC1lDNraUrm45LupyXPqYWHxyZYYKLEXF52lXgSO4/gAAAD//wMAkqq30coAAAA=", "encoding": "UTF-8"}, "status": {"message": "OK", "code": 200}, "url": "https://api.reddit.com/api/login/.json", "headers": {"x-xss-protection": ["1; mode=block"], "set-cookie": ["__cfduid=d39c55cd52ddf9bd97d92e1bfab8520cb1435864405; expires=Fri, 01-Jul-16 19:13:25 GMT; path=/; domain=.reddit.com; HttpOnly", "secure_session=; Domain=reddit.com; Max-Age=-1435864406; Path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT; HttpOnly", "reddit_session=7302867%2C2015-07-02T12%3A13%3A26%2C11cd7c495f0d9579f6b7a591c863975a48413fca; Domain=reddit.com; Path=/; HttpOnly"], "server": ["cloudflare-nginx"], "date": ["Thu, 02 Jul 2015 19:13:26 GMT"], "x-content-type-options": ["nosniff"], "cache-control": ["private, no-cache", "no-cache"], "content-type": ["application/json; charset=UTF-8"], "x-moose": ["majestic"], "x-ua-compatible": ["IE=edge"], "pragma": ["no-cache"], "transfer-encoding": ["chunked"], "x-frame-options": ["SAMEORIGIN"], "connection": ["keep-alive"], "content-encoding": ["gzip"], "cf-ray": ["1ffcaaf8bc5f0893-FRA"]}}, "request": {"body": {"encoding": "utf-8", "string": "user=PyAPITestUser2&api_type=json&passwd=1111"}, "uri": "https://api.reddit.com/api/login/.json", "method": "POST", "headers": {"Content-Length": ["45"], "User-Agent": ["PRAW_test_suite PRAW/3.0.0 Python/2.7.8 Linux-3.16.0-41-generic-x86_64-with-Ubuntu-14.10-utopic"], "Content-Type": ["application/x-www-form-urlencoded"], "Accept": ["*/*"], "Connection": ["keep-alive"], "Accept-Encoding": ["gzip, deflate"]}}, "recorded_at": "2015-07-02T19:13:26"}, {"response": {"body": {"base64_string": "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", "encoding": "UTF-8"}, "status": {"message": "OK", "code": 200}, "url": "https://api.reddit.com/user/PyAPITestUser2/comments.json?t=all&sort=new", "headers": {"x-xss-protection": ["1; mode=block"], "cache-control": ["private, no-cache", "no-cache"], "content-length": ["2606"], "server": ["cloudflare-nginx"], "date": ["Thu, 02 Jul 2015 19:13:27 GMT"], "x-content-type-options": ["nosniff"], "x-ratelimit-reset": ["393"], "content-type": ["application/json; charset=UTF-8"], "x-reddit-tracking": ["https://pixel.redditmedia.com/pixel/of_destiny.png?v=y3Jhs4XJ5ugsyWdG9pnDnfGKSbeEgrfxPSdmstjKjWA%2BUzeRcc2LGH9Yml8p1SiJZyKNuVriYuO2wvi26Sdq9URNAtTXSZSa"], "x-moose": ["majestic"], "x-ua-compatible": ["IE=edge"], "vary": ["accept-encoding"], "pragma": ["no-cache"], "x-sup-id": ["http://www.reddit.com/sup.json#e4356386a7"], "x-ratelimit-used": ["1"], "x-frame-options": ["SAMEORIGIN"], "connection": ["keep-alive"], "content-encoding": ["gzip"], "x-ratelimit-remaining": ["299"], "cf-ray": ["1ffcaafdccd60893-FRA"]}}, "request": {"body": {"encoding": "utf-8", "string": ""}, "uri": "https://api.reddit.com/user/PyAPITestUser2/comments.json?t=all&sort=new", "method": "GET", "headers": {"Cookie": ["__cfduid=d39c55cd52ddf9bd97d92e1bfab8520cb1435864405; reddit_session=7302867%2C2015-07-02T12%3A13%3A26%2C11cd7c495f0d9579f6b7a591c863975a48413fca"], "Connection": ["keep-alive"], "User-Agent": ["PRAW_test_suite PRAW/3.0.0 Python/2.7.8 Linux-3.16.0-41-generic-x86_64-with-Ubuntu-14.10-utopic"], "Accept": ["*/*"], "Accept-Encoding": ["gzip, deflate"]}}, "recorded_at": "2015-07-02T19:13:27"}]}
\ No newline at end of file
diff --git a/tests/cassettes/test_pickling_v1.json b/tests/cassettes/test_pickling_v1.json
new file mode 100644
--- /dev/null
+++ b/tests/cassettes/test_pickling_v1.json
@@ -0,0 +1 @@
+{"recorded_with": "betamax/0.4.2", "http_interactions": [{"response": {"body": {"base64_string": "H4sIAAAAAAAAAxzLSW7DMAxA0asIXCsASYmazpFdURSyhtptEhWWVw189yLd/of/hK85HpDUE9q+j31CUm/vWkHNR/7Pj9bqx3ocPy/q+TabVnAfdc1zhaRg3rft1vDXfrpeqVcWH4SWUthxjjFybmhKw+ZNXshFLKAVlDG+t/b6vUEOzmtGkgv6C/KVOJFJHDVTFYk2SJfgoqm9CKJdfCfLjrAGQhRrBc7z/AMAAP//AwBlfaprygAAAA==", "encoding": "UTF-8"}, "status": {"message": "OK", "code": 200}, "url": "https://api.reddit.com/api/login/.json", "headers": {"x-xss-protection": ["1; mode=block"], "set-cookie": ["__cfduid=dea6ea5a6ed306c9a2fbe4aea3094d7ad1435864409; expires=Fri, 01-Jul-16 19:13:29 GMT; path=/; domain=.reddit.com; HttpOnly", "secure_session=; Domain=reddit.com; Max-Age=-1435864409; Path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT; HttpOnly", "reddit_session=7302867%2C2015-07-02T12%3A13%3A29%2C21d559485f58693dfc5004b7f142610d81005445; Domain=reddit.com; Path=/; HttpOnly"], "server": ["cloudflare-nginx"], "date": ["Thu, 02 Jul 2015 19:13:29 GMT"], "x-content-type-options": ["nosniff"], "cache-control": ["private, no-cache", "no-cache"], "content-type": ["application/json; charset=UTF-8"], "x-moose": ["majestic"], "x-ua-compatible": ["IE=edge"], "pragma": ["no-cache"], "transfer-encoding": ["chunked"], "x-frame-options": ["SAMEORIGIN"], "connection": ["keep-alive"], "content-encoding": ["gzip"], "cf-ray": ["1ffcab0cfb8008b1-FRA"]}}, "request": {"body": {"encoding": "utf-8", "string": "user=PyAPITestUser2&api_type=json&passwd=1111"}, "uri": "https://api.reddit.com/api/login/.json", "method": "POST", "headers": {"Content-Length": ["45"], "User-Agent": ["PRAW_test_suite PRAW/3.0.0 Python/2.7.8 Linux-3.16.0-41-generic-x86_64-with-Ubuntu-14.10-utopic"], "Content-Type": ["application/x-www-form-urlencoded"], "Accept": ["*/*"], "Connection": ["keep-alive"], "Accept-Encoding": ["gzip, deflate"]}}, "recorded_at": "2015-07-02T19:13:29"}, {"response": {"body": {"base64_string": "H4sIAFqNlVUC/+2cy27jyBWGX0XwYpAgXe26X3owCIJggATIYhYzyGIcCHVtsS1LskTZbTfm3VNVpGRactySRVKy443bJmnWX3XO//GcEtvfzi6LiTv7NDj7V7Eoi8nnsw+DM6dLHQ99O7uaupFejNLp2WeJb9wdLqnlQmMpMGEYMW8QhlByZRkj3CIRT1sYDBMo3cmOirGb+0m8w+/f1kOV+dx6lMXSzL1zRTksqtNsiEs25emicTG5HJZFOfbpzK9+UQ7+ru3IfxpoiOCN03x+j6ClknHFnRTQciYFE85YyLVXATvLMTchaJPuZ/Rk4t3Q3MXbTZbjcTw091fTGz0ezr1eTJPS+ngeulZEhsRQ/aVcS9LLcjSdp3O/3P3tl38mYb8t/BxXF1z6RTxVzpc+3382LvKBs3R2GS+LY82m8zId+/0/8dhC3/g0UNDjRfqValS7KGZ46tIvfY7LmK+A8Qc9j8v6+Beq+9VTWN/2OZEzHcOyXvHm/BZ2Ok+rjdIdZrP59GZjwex0Uqaj80Whx0WZziRZZurSt2f/iJMZLKZXfrCcFHbqYqz+dLGE0MWL8r/uz2kYHwP+aA6V2mEY62I+tIvF0I71Is2lHtZNb/PUVmMNR+XVOA34w7j80RU3g3z9TxdnV+7i7IfP5Y/p+Cx9s4OidO15vvhikr+PN0w/5QVZ5WcarM5UPSuGZVzP9YINR4VzOdFX85noq5y0JRo2ImljjKp5IxodJCAj8GOOanP6pf+aRwvTqdHzddYt53nCo7KcfTo/v729/VjJ+WinV+fz8w1t5/HoVQzy4rwK7nk6OLTJPucNKcNlaVdyOFe1nOUsrXXKgQiBzXydLK8ah9LlrqLHsliM8uRSzP7448Pg3fQvMf1o3Ifp67xU+dShrv9tUlwv/SDN++7T4Paej5iR11OhvWVKBmK9NxQbB7miUFHlAxaCEGWJ584r2DMSDpXbAy+qJNjmBUYnxYtazjsvjsiLysJd86LNIqH2X51xnwbFaAm98Nf3BVcmcC+Rlk4QbCXBFEMhOMRBkeg+wbznGvnjAOMAwT0go8qDbWSg00JGLed0kPHv4rIY/BwT9m4wneSS0JL0VdnDcEDlV9ozDq4XHhf3feAg5tz1whWXukUe1M9jOZ9dX6rRzeUlNJxixg3yUAvJtIAkdp1cxmcyDpw7SxgSROuLycXkLz/HWA9+TXn9ocGGOuukesIEXSDixXNoAqJCRP7hYVodE+QhdR4RBOLYE/AnFm8ngvjJx9vorlkMh/44nX8+b7rrr4X7Cc9v6Y25V+5OYGoDxI5wrwzxEAnkDAlCIScMD1DQEBHLq42FTbBALBWtVb6DpSOw8NcOFvvFf5nN4y0Q1woxQ2I9T50KUEqqKeZEeW9FNCYniGmMlH8GLL0VHS8WfwpEqXJmmygv3vbolSgntxvy1oiSp9g1UZrzawko60bAI0Tu0ZLhKbOGMKmVUFTS1FdqhBwyHhEUH/wwQKNiK4DUcSBygOA+KJHzYJsSWL4GStQq3ynRCSVWpcBrosQOHzk8U1nUeQWR2s7+Vtmwg8zj1xCr+G/SARHMttfn1OggRK3ydOiQPLDeIXWUURY0SBMElMYvhiEOMGOOOQ+FM3mr7eXMQHeafe2ZGTxOKqOuB2as59cDMx5RovvSYQdFXbt/Hcmm+7FkLFoLv9D9e+xq5uA2djWHK78kuyS3JLM0vfLktmfUSzmv9Z4mBxA1yBJmgNXQAaosAooTAwiBFjLtBFbiUA6wqy+9c4CWl31wIKcqXtzmz48OBcHjth96q70nAUjJLKAEx8hQTIDCmiJqJXE8j9ojF/YX2D0m6kBvY4K/tIXYCxMxt5uYWNkpuSmZKXmpaaVnMFHrPU1MvNVygc7y6nSNiTbLhc2+3giETJAYUA2jDRmEQIsYKR1i3gXDHTGZ4P1zYi+JPZCiivUTpHhlBUWt9zRJ8UYLClza/I5sL6So53coKXYo45/djKiyjdJtd7RKix1kNuFwlM2Idfw36EElFC/djNiLHm3VGZTWek+THgEipmCwIFExPi40B0Y6BmRg2Ir40HA6m+YAeny9H9H+6YEy9LqmR05VeH+bO+dD8fG42heOUBtEAEioGBkfK0CpDATeW4YFhVqw477MuYvAHjBRBXobEy9+k2IfTKTcbmJiZadcY0QzJS81rfQMJk7unYr/hyKj3kjoGhNtFhmbtb5inHKHCSDxSQMoZxIoLQPAXCMVlMMmZEX9c2Ivid2Too71NinYKysoar2nSYo3WlAgKGRfpFjN71BS7FDnf7cdoZSIbXe0SosdZB6/HVnFf5MeDJIn2rXW6dFanYForfedHj3SY9UhvCZ6bD7EjcTWQ0zTBw88hgbpGJrAgDfSB2yNJCY8Akj/dcYuEjsnxSrW26TAL30T80ikqPWeJim4xExIqED6fzeA0hhrTQROLagIQVFFqvb4xaTAi3tPstL+SDFZqis76YcUD/M7lBQ7PMC/W2cgCp/4UKBVWuwg89h1xkP8H9EDxRRn6ol31FqmR5USTXqsXJZMljyWLNZ02NP0aOp9p0ev9GDXfdCjStXxTR7sUHw83lUkWmvnKQHMWg+o1zEyHEpAlEfQxuaYwiO92L2HwB4wUQX6CUx0v+3ZLiZOedvzrWKidm7XmGizyNis9RWCVFvGQGzMXaz1mQCKYQSsssp4Kxm0R3pbay+J3ZOijvU2KcQrKyhqvadJCmSEJQo5ILnVgHLKgAk4PhV4fEJYHRtTTQ4lhVF5C6pPUshykmX3Qop6foeSYoc6//l2JGcbI9vuaJUWO8g8fjuyiv8mPSjh3X9oUqXEow9NapclkyWPJYs1HfY/6bHWe5r0sCxAqhwDjMpYZxjBgaYKAkW0RwjHMyr/UbND6KEu7/qnByv6oEeVqmY0awMfGy85EAQ5pR5AbRSgElmgNZVAQsytYdhifKRdzz0E9oCJKtDbmKC9YCLmdhMTKzslNyUzJS81rfQMJmq9p4mJN1tkwPyJRdeYaLPI2Kz1ucFUahSAligSHHkHjNICaC4EN1BCY4/0ttZeEnsgRRXrbVKQXtqR9gqKWu9pkuKtFhRW9vRS+MP8DiXFDnX+d9sRSvB7O9KI/yY9CMe90KOtOmOt9zTpQQxDTCgZy8kIDsowAVKHkDa7jQ3IW+cO3vbk82Xv9DC3vdQZOVVFJ39XyxBLuYkgd8xBQIW1QAaKQCxcjWEsPrxorgD7LzP2ENg9JupAb2MC9dKOxNxuYmJlp+SmZKbkpaaVnsFErfc0MfFWi4x6I6FrTLRZZGzW+tAHbxRBAHETCc4DBMZKBYzGAXKEIcJZUf+c2EtiD6SoYr1FCqa6/9/sbRYUK72nSYo3WlCILyi7txdS1PM7lBQ71PnfbUcIe+pPwrRKix1kHr8dWcV/kx6YoifWp316tFVnrPW2Qo+c26H0ObUfL5Txocre6sr/Atr8huMVaQAA", "encoding": "UTF-8"}, "status": {"message": "OK", "code": 200}, "url": "https://api.reddit.com/user/PyAPITestUser2/comments.json?t=all&sort=new", "headers": {"x-xss-protection": ["1; mode=block"], "cache-control": ["private, no-cache", "no-cache"], "content-length": ["2607"], "server": ["cloudflare-nginx"], "date": ["Thu, 02 Jul 2015 19:13:30 GMT"], "x-content-type-options": ["nosniff"], "x-ratelimit-reset": ["390"], "content-type": ["application/json; charset=UTF-8"], "x-reddit-tracking": ["https://pixel.redditmedia.com/pixel/of_destiny.png?v=9MZApNR3IAPjbhJiKbVbvujo6sivs6GURrLX9KX%2FCvGsONQwEOkhfoAl3ER7yTY2748o3j55GADAHujR7EOrq7oEdFe%2FFsY9"], "x-moose": ["majestic"], "x-ua-compatible": ["IE=edge"], "vary": ["accept-encoding"], "pragma": ["no-cache"], "x-sup-id": ["http://www.reddit.com/sup.json#e4356386a7"], "x-ratelimit-used": ["2"], "x-frame-options": ["SAMEORIGIN"], "connection": ["keep-alive"], "content-encoding": ["gzip"], "x-ratelimit-remaining": ["298"], "cf-ray": ["1ffcab124bf608b1-FRA"]}}, "request": {"body": {"encoding": "utf-8", "string": ""}, "uri": "https://api.reddit.com/user/PyAPITestUser2/comments.json?t=all&sort=new", "method": "GET", "headers": {"Cookie": ["__cfduid=dea6ea5a6ed306c9a2fbe4aea3094d7ad1435864409; reddit_session=7302867%2C2015-07-02T12%3A13%3A29%2C21d559485f58693dfc5004b7f142610d81005445"], "Connection": ["keep-alive"], "User-Agent": ["PRAW_test_suite PRAW/3.0.0 Python/2.7.8 Linux-3.16.0-41-generic-x86_64-with-Ubuntu-14.10-utopic"], "Accept": ["*/*"], "Accept-Encoding": ["gzip, deflate"]}}, "recorded_at": "2015-07-02T19:13:30"}]}
\ No newline at end of file
diff --git a/tests/cassettes/test_pickling_v2.json b/tests/cassettes/test_pickling_v2.json
new file mode 100644
--- /dev/null
+++ b/tests/cassettes/test_pickling_v2.json
@@ -0,0 +1 @@
+{"recorded_with": "betamax/0.4.2", "http_interactions": [{"response": {"body": {"base64_string": "H4sIAAAAAAAAAxzLy2rEMAxA0V8xWnvAkuL48R3dlVJkWyHz9OBkMwz59zLd3sN9w2XrD8jmDTpGHxtk8/1jDTTZ5T8/VNvvuu/PDy1y29QauPe2yrZCNvB6Tc9RxjpuhThh1EQ6YcEkpRL5ElRRQ5uLF6FSp+bBGqi9X8/6+QM7inOw5NCfXDg5+kLKyJnJcuJCsixLQsZJWqzOFU01xsTE4sIslZuPcBzHHwAAAP//AwAKbaoxygAAAA==", "encoding": "UTF-8"}, "status": {"message": "OK", "code": 200}, "url": "https://api.reddit.com/api/login/.json", "headers": {"x-xss-protection": ["1; mode=block"], "set-cookie": ["__cfduid=d49ca6cca210c0b0c94548e0d7457f5e81435864411; expires=Fri, 01-Jul-16 19:13:31 GMT; path=/; domain=.reddit.com; HttpOnly", "secure_session=; Domain=reddit.com; Max-Age=-1435864412; Path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT; HttpOnly", "reddit_session=7302867%2C2015-07-02T12%3A13%3A32%2C393b2afff91314ad8c00be9c889323a076ac3d58; Domain=reddit.com; Path=/; HttpOnly"], "server": ["cloudflare-nginx"], "date": ["Thu, 02 Jul 2015 19:13:32 GMT"], "x-content-type-options": ["nosniff"], "cache-control": ["private, no-cache", "no-cache"], "content-type": ["application/json; charset=UTF-8"], "x-moose": ["majestic"], "x-ua-compatible": ["IE=edge"], "pragma": ["no-cache"], "transfer-encoding": ["chunked"], "x-frame-options": ["SAMEORIGIN"], "connection": ["keep-alive"], "content-encoding": ["gzip"], "cf-ray": ["1ffcab1d4ce40467-FRA"]}}, "request": {"body": {"encoding": "utf-8", "string": "user=PyAPITestUser2&api_type=json&passwd=1111"}, "uri": "https://api.reddit.com/api/login/.json", "method": "POST", "headers": {"Content-Length": ["45"], "User-Agent": ["PRAW_test_suite PRAW/3.0.0 Python/2.7.8 Linux-3.16.0-41-generic-x86_64-with-Ubuntu-14.10-utopic"], "Content-Type": ["application/x-www-form-urlencoded"], "Accept": ["*/*"], "Connection": ["keep-alive"], "Accept-Encoding": ["gzip, deflate"]}}, "recorded_at": "2015-07-02T19:13:32"}, {"response": {"body": {"base64_string": "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", "encoding": "UTF-8"}, "status": {"message": "OK", "code": 200}, "url": "https://api.reddit.com/user/PyAPITestUser2/comments.json?t=all&sort=new", "headers": {"x-xss-protection": ["1; mode=block"], "cache-control": ["private, no-cache", "no-cache"], "content-length": ["2607"], "server": ["cloudflare-nginx"], "date": ["Thu, 02 Jul 2015 19:13:33 GMT"], "x-content-type-options": ["nosniff"], "x-ratelimit-reset": ["387"], "content-type": ["application/json; charset=UTF-8"], "x-reddit-tracking": ["https://pixel.redditmedia.com/pixel/of_destiny.png?v=NI%2FS0Vy8geEeJ%2BBL7Qy5J2Q26m47mKxDD5uB2y%2B851CRfxV7GGUC7FAOqmbXqrgmuzZ%2BjeU5o6AO95wvK098lEadH8PZql7p"], "x-moose": ["majestic"], "x-ua-compatible": ["IE=edge"], "vary": ["accept-encoding"], "pragma": ["no-cache"], "x-sup-id": ["http://www.reddit.com/sup.json#e4356386a7"], "x-ratelimit-used": ["3"], "x-frame-options": ["SAMEORIGIN"], "connection": ["keep-alive"], "content-encoding": ["gzip"], "x-ratelimit-remaining": ["297"], "cf-ray": ["1ffcab26cdfa0467-FRA"]}}, "request": {"body": {"encoding": "utf-8", "string": ""}, "uri": "https://api.reddit.com/user/PyAPITestUser2/comments.json?t=all&sort=new", "method": "GET", "headers": {"Cookie": ["__cfduid=d49ca6cca210c0b0c94548e0d7457f5e81435864411; reddit_session=7302867%2C2015-07-02T12%3A13%3A32%2C393b2afff91314ad8c00be9c889323a076ac3d58"], "Connection": ["keep-alive"], "User-Agent": ["PRAW_test_suite PRAW/3.0.0 Python/2.7.8 Linux-3.16.0-41-generic-x86_64-with-Ubuntu-14.10-utopic"], "Accept": ["*/*"], "Accept-Encoding": ["gzip, deflate"]}}, "recorded_at": "2015-07-02T19:13:33"}]}
\ No newline at end of file
diff --git a/tests/cassettes/test_unpickle_comment.json b/tests/cassettes/test_unpickle_comment.json
deleted file mode 100644
--- a/tests/cassettes/test_unpickle_comment.json
+++ /dev/null
@@ -1 +0,0 @@
-{"recorded_with": "betamax/0.4.2", "http_interactions": [{"recorded_at": "2015-06-15T13:50:36", "response": {"status": {"code": 200, "message": "OK"}, "headers": {"transfer-encoding": ["chunked"], "cache-control": ["private, no-cache", "no-cache"], "server": ["cloudflare-nginx"], "set-cookie": ["__cfduid=d28895e21c18fe156bbe302205f9b22ac1434376236; expires=Tue, 14-Jun-16 13:50:36 GMT; path=/; domain=.reddit.com; HttpOnly", "secure_session=; Domain=reddit.com; Max-Age=-1434376237; Path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT; HttpOnly", "reddit_session=7302867%2C2015-06-15T06%3A50%3A37%2Cc0e114b1f45a1bc763984b34c83d31df49a92fed; Domain=reddit.com; Path=/; HttpOnly"], "x-moose": ["majestic"], "x-xss-protection": ["1; mode=block"], "connection": ["keep-alive"], "content-encoding": ["gzip"], "pragma": ["no-cache"], "x-ua-compatible": ["IE=edge"], "x-frame-options": ["SAMEORIGIN"], "cf-ray": ["1f6ebeb510a504a3-CDG"], "date": ["Mon, 15 Jun 2015 13:50:37 GMT"], "content-type": ["application/json; charset=UTF-8"], "x-content-type-options": ["nosniff"]}, "body": {"encoding": "UTF-8", "base64_string": "H4sIAAAAAAAAAxzLTWrDMBBA4auIWSug0c+MpXNkV0oZWaM6TRMV26GL4LuXdPs+3hO+tnGHYp6g6zrWDYp5e7cGmuzyn++q7WPZ958Xdfne1Bq4jbbItkAxcPt8CD+uv3zBPElGVidEnZPXWmtLVSmRsnOkVTwqR7AG5jGuF339HJyfiK13mE6OTpjOjkpyJbCdnSLGij0mwTozhTzFGuI8hRaw9Zgl+64NjuP4AwAA//8DABH3aj7KAAAA"}, "url": "https://api.reddit.com/api/login/.json"}, "request": {"headers": {"Accept-Encoding": ["gzip, deflate"], "Connection": ["keep-alive"], "Accept": ["*/*"], "Content-Length": ["45"], "User-Agent": ["PRAW_test_suite PRAW/3.0a1 Python/2.7.8 Linux-3.16.0-37-generic-x86_64-with-Ubuntu-14.10-utopic"], "Content-Type": ["application/x-www-form-urlencoded"]}, "body": {"encoding": "utf-8", "string": "passwd=1111&api_type=json&user=PyAPITestUser2"}, "uri": "https://api.reddit.com/api/login/.json", "method": "POST"}}, {"recorded_at": "2015-06-15T13:50:37", "response": {"status": {"code": 200, "message": "OK"}, "headers": {"x-ratelimit-remaining": ["299"], "content-type": ["application/json; charset=UTF-8"], "cache-control": ["private, no-cache", "no-cache"], "content-length": ["2574"], "server": ["cloudflare-nginx"], "x-content-type-options": ["nosniff"], "x-moose": ["majestic"], "x-ratelimit-used": ["1"], "x-frame-options": ["SAMEORIGIN"], "x-sup-id": ["http://www.reddit.com/sup.json#e4356386a7"], "x-xss-protection": ["1; mode=block"], "connection": ["keep-alive"], "content-encoding": ["gzip"], "pragma": ["no-cache"], "x-ua-compatible": ["IE=edge"], "x-reddit-tracking": ["https://pixel.redditmedia.com/pixel/of_destiny.png?v=HcLLGdCwZSCTj%2BYMBgG8Ln0%2FKHA5a%2FIoJVNJ%2Fv%2FXrv6TSUaosRpQ67%2Fyfcg6Z7i5Diz8FZevtuCHzUmagS6TUQ7G47Go4bcv"], "cf-ray": ["1f6ebeb9f0cd04a3-CDG"], "date": ["Mon, 15 Jun 2015 13:50:37 GMT"], "x-ratelimit-reset": ["563"], "vary": ["accept-encoding"]}, "body": {"encoding": "UTF-8", "base64_string": "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"}, "url": "https://api.reddit.com/user/PyAPITestUser2/comments.json?sort=new&t=all"}, "request": {"headers": {"Connection": ["keep-alive"], "User-Agent": ["PRAW_test_suite PRAW/3.0a1 Python/2.7.8 Linux-3.16.0-37-generic-x86_64-with-Ubuntu-14.10-utopic"], "Accept": ["*/*"], "Accept-Encoding": ["gzip, deflate"], "Cookie": ["reddit_session=7302867%2C2015-06-15T06%3A50%3A37%2Cc0e114b1f45a1bc763984b34c83d31df49a92fed; __cfduid=d28895e21c18fe156bbe302205f9b22ac1434376236"]}, "body": {"encoding": "utf-8", "string": ""}, "uri": "https://api.reddit.com/user/PyAPITestUser2/comments.json?sort=new&t=all", "method": "GET"}}, {"recorded_at": "2015-06-15T13:50:38", "response": {"status": {"code": 200, "message": "OK"}, "headers": {"x-ratelimit-remaining": ["298"], "transfer-encoding": ["chunked"], "cache-control": ["private, no-cache", "no-cache"], "x-moose": ["majestic"], "server": ["cloudflare-nginx"], "x-ratelimit-used": ["2"], "x-frame-options": ["SAMEORIGIN"], "x-xss-protection": ["1; mode=block"], "connection": ["keep-alive"], "content-encoding": ["gzip"], "pragma": ["no-cache"], "x-ua-compatible": ["IE=edge"], "x-reddit-tracking": ["https://pixel.redditmedia.com/pixel/of_destiny.png?v=6qsn21tVL7go5HvVpotLbf0tnpT2hujgxe4105fEz7G1t0%2BHh25pl%2FSGghZNuAZaGB%2FJKaxz67I%3D"], "cf-ray": ["1f6ebebe912c04a3-CDG"], "date": ["Mon, 15 Jun 2015 13:50:38 GMT"], "x-ratelimit-reset": ["562"], "content-type": ["application/json; charset=UTF-8"], "x-content-type-options": ["nosniff"]}, "body": {"encoding": "UTF-8", "base64_string": "H4sIAAAAAAAAA1yRwW7DIBBEfwVxtqrYxgn2rcfecmjPaANLvYqBCnCUNsq/V6AkjXodzQ5vhgs/kjd8Yjx3vGHcQAY+sQufISkHtPCJWVgSNox7cFic++/X/ds7pvyRMNYrSspGwhp0d+uIkLEobSfFth02cnjZNIzPZFDZGJyK4RByerr5DItROqIxVPVid8HMkOby8LYVLq1j+Nl1BzNYsYGulwjCgu7sCOM49LtejhalMJ0WW7krcDcQtWb9gGnFHabUDOZ/1YX8UR0hujJG25WU4Bz6/BDHhvFwwqhaySeW41rOKKlS4SmIavyfozbE8xdFyBQ8n5hfl+UGcsJIltAovOHcY+sHCU1nW9f2h3BWOqw+l42u118AAAD//wMAKxRkF8UBAAA="}, "url": "https://api.reddit.com/user/PyAPITestUser2/about/.json"}, "request": {"headers": {"Connection": ["keep-alive"], "User-Agent": ["PRAW_test_suite PRAW/3.0a1 Python/2.7.8 Linux-3.16.0-37-generic-x86_64-with-Ubuntu-14.10-utopic"], "Accept": ["*/*"], "Accept-Encoding": ["gzip, deflate"], "Cookie": ["reddit_session=7302867%2C2015-06-15T06%3A50%3A37%2Cc0e114b1f45a1bc763984b34c83d31df49a92fed; __cfduid=d28895e21c18fe156bbe302205f9b22ac1434376236"]}, "body": {"encoding": "utf-8", "string": ""}, "uri": "https://api.reddit.com/user/PyAPITestUser2/about/.json", "method": "GET"}}, {"recorded_at": "2015-06-15T13:50:38", "response": {"status": {"code": 200, "message": "OK"}, "headers": {"x-ratelimit-remaining": ["297"], "content-type": ["application/json; charset=UTF-8"], "cache-control": ["private, no-cache", "no-cache"], "content-length": ["682"], "server": ["cloudflare-nginx"], "x-content-type-options": ["nosniff"], "x-moose": ["majestic"], "x-ratelimit-used": ["3"], "x-frame-options": ["SAMEORIGIN"], "x-xss-protection": ["1; mode=block"], "connection": ["keep-alive"], "content-encoding": ["gzip"], "pragma": ["no-cache"], "x-ua-compatible": ["IE=edge"], "x-reddit-tracking": ["https://pixel.redditmedia.com/pixel/of_destiny.png?v=AqxVkrSRF3bN55ymSSdkwfD%2FLdA4QMcYwodHHwNYU4Pccch5s1XTILSk9LACd6ER3FcO3MQmUDmhY5Rn5rzZjrp3D2F%2F%2BvsO"], "cf-ray": ["1f6ebec1714204a3-CDG"], "date": ["Mon, 15 Jun 2015 13:50:38 GMT"], "x-ratelimit-reset": ["562"], "vary": ["accept-encoding"]}, "body": {"encoding": "UTF-8", "base64_string": "H4sIAC7YflUC/61UyU7cQBD9FccHTsx4XwaUAyIimgOLICdC1OqlPNOZ9kJ3e2BA/Hu6G5sxHJCQcrHsqvKrV/Wq6tnf8Ib5R56vM//Q8xnW2Hw9+wQ3DUjE65V1WpfqSc010vCo0VrXwtibXgjj6ZWNVMj9Y8EqLBQYB3fIsc7a3CKMcbRttOSk1600fi17GzuBHzMyrjqBd6jBNVibBMZMCO64CVPahqwBsz3NtdbdURCQuV73NVHz1x9qYBzPaVsH0c/0PF5dIX41u87l7cU5e7g0hPqL5RKj/vIpOl1GJ7ebEHV0/rdbOQ6gqOSd5m0zVu0fCH38bTbzbk7R5dmZN5sdrPSxNTK+9ajASn2/82t254/2zr782CN5BS3ytHpI6D0UjEZZXpQQVqQK0yIvUhpnxYLQjMa0giTJwoyFFiZwOHeNeze5RviRy8VAxfLWXAvXtGvXA+/kaun9Mk3z0oeUb7aPOfRJRXLDglR5SnHF4qLMU8DVgkAZFSRMynBB8pDFFo62QuBOAWIgQAMzGtY1NFpN1O56IjhFk47Z/NOyxT3Uuo8SuSuyKCxTVuRltFiYSqO8jG3hizJb4CysGKQljUqXu92CjMpPE/1Hab7O8avScDP/SPEnK8+wQc402bVhrEcRh6hPOvv1gZqstODNBglMYLLTmNK2N/oiTDXfWhLRvvNa4qridCLJQHio6ncShoeeefx5TWJ5EpB2WOJ4n9edkg95x13XGXq7G1QC1u6wREkcZ1lYFNncJPB76UQPZPDhNASuiZwBwmw6ogMS6rUl/wFtOHnvlRlvVt2a+vC7i+Vcyqi0hhoQNJgIR3JwDxuCFG0lIEem5o1lY5OZFgyc9a5zFb/29k0Wpexcj07c7KYXdN/TsbiXl38Stiz/ywUAAA=="}, "url": "https://api.reddit.com/r/reddit_api_test/about/.json"}, "request": {"headers": {"Connection": ["keep-alive"], "User-Agent": ["PRAW_test_suite PRAW/3.0a1 Python/2.7.8 Linux-3.16.0-37-generic-x86_64-with-Ubuntu-14.10-utopic"], "Accept": ["*/*"], "Accept-Encoding": ["gzip, deflate"], "Cookie": ["reddit_session=7302867%2C2015-06-15T06%3A50%3A37%2Cc0e114b1f45a1bc763984b34c83d31df49a92fed; __cfduid=d28895e21c18fe156bbe302205f9b22ac1434376236"]}, "body": {"encoding": "utf-8", "string": ""}, "uri": "https://api.reddit.com/r/reddit_api_test/about/.json", "method": "GET"}}]}
\ No newline at end of file
diff --git a/tests/test_comments.py b/tests/test_comments.py
--- a/tests/test_comments.py
+++ b/tests/test_comments.py
@@ -2,6 +2,7 @@
 
 from __future__ import print_function, unicode_literals
 import pickle
+import mock
 from praw import helpers
 from praw.objects import Comment, MoreComments
 from .helper import PRAWTest, betamax
@@ -98,10 +99,24 @@ def test_user_comment_replies_are_none(self):
                              lambda item: isinstance(item, Comment))
         self.assertEqual(comment._replies, None)
 
+    def _test_pickling(self, protocol):
+        comment = next(self.r.user.get_comments())
+        with mock.patch('praw.BaseReddit.request_json') as request_json_func:
+            unpickled_comment = pickle.loads(pickle.dumps(comment, protocol))
+            self.assertEqual(comment, unpickled_comment)
+            self.assertEqual(request_json_func.called, 0)
+
     @betamax()
-    def test_unpickle_comment(self):
-        item = next(self.r.user.get_comments())
-        self.assertEqual(item, pickle.loads(pickle.dumps(item)))
+    def test_pickling_v0(self):
+        self._test_pickling(0)
+
+    @betamax()
+    def test_pickling_v1(self):
+        self._test_pickling(1)
+
+    @betamax()
+    def test_pickling_v2(self):
+        self._test_pickling(2)
 
 
 class MoreCommentsTest(PRAWTest):