)]}'
{"tests/test_s3_token_middleware.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d791f70ff6b2bd7bd81258364fd900f416c5045f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        return self.body"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"class FakeHTTPConnection(object):"},{"line_number":65,"context_line":"    status \u003d 201"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def __init__(self, *args):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAMX%2F%2F2GU%3D","line":64,"updated":"2012-12-12 21:49:43.000000000","message":"The hardcoded value it\u0027s checking for threw me off \u0026 took me a second to figure out...\n\nInstead, extend FakeHTTPConnection, override request(), and always return your malformed body. Then put your test method into a new unittest.TestCase that sets up self.middleware.http_client_class as your extended FakeHTTPConnection class.","commit_id":"977fb8345bf2ab4ae0745b5276f099d0a20954d5"},{"author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"change_message_id":"e9fa0544b9028bcbd0ee3e67225cda7d66fc7c96","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        return self.body"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"class FakeHTTPConnection(object):"},{"line_number":65,"context_line":"    status \u003d 201"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def __init__(self, *args):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2F%2B%2Fo%3D","line":64,"in_reply_to":"AAAAMX%2F%2F2GU%3D","updated":"2012-12-17 21:16:38.000000000","message":"It\u0027ll be a hell of a lot easier to suss out later if you subclass FakeHttpConnection and override in request()","commit_id":"977fb8345bf2ab4ae0745b5276f099d0a20954d5"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"d791f70ff6b2bd7bd81258364fd900f416c5045f","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    def request(self, method, path, **kwargs):"},{"line_number":71,"context_line":"        if kwargs.get(\u0027body\u0027):"},{"line_number":72,"context_line":"            jsonbody \u003d jsonutils.loads(kwargs[\u0027body\u0027])"},{"line_number":73,"context_line":"            if jsonbody[\u0027credentials\u0027][\u0027access\u0027] \u003d\u003d \u0027BADRESP\u0027:"},{"line_number":74,"context_line":"                # Return a non json in response with a 201"},{"line_number":75,"context_line":"                self.resp \u003d FakeHTTPResponse(self.status, \u0027BADRESP\u0027)"},{"line_number":76,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAMX%2F%2F2HA%3D","line":73,"updated":"2012-12-12 21:49:43.000000000","message":"is credentials -\u003e access supposed to be backward?","commit_id":"977fb8345bf2ab4ae0745b5276f099d0a20954d5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3df3a5bd076c2d3841ff96384474669934394b3c","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"class S3TokenMiddlewareTestGood(S3TokenMiddlewareTestBase):"},{"line_number":85,"context_line":"    @staticmethod"},{"line_number":86,"context_line":"    def good_request(cls, method, path, **kwargs):"},{"line_number":87,"context_line":"        cls.status \u003d 201"},{"line_number":88,"context_line":"        ret \u003d {\u0027access\u0027: {\u0027token\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2Bxc4%3D","line":85,"updated":"2013-02-19 15:49:17.000000000","message":"@classmethod takes cls as the first argument.","commit_id":"dabd1fe82a5a6bf8b1decf146bd580fbdc3a74d2"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"f557a4dfdc3d735290b8cf1235c08486f826787f","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"class S3TokenMiddlewareTestGood(S3TokenMiddlewareTestBase):"},{"line_number":85,"context_line":"    @staticmethod"},{"line_number":86,"context_line":"    def good_request(cls, method, path, **kwargs):"},{"line_number":87,"context_line":"        cls.status \u003d 201"},{"line_number":88,"context_line":"        ret \u003d {\u0027access\u0027: {\u0027token\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F%2FI4%3D","line":85,"in_reply_to":"AAAAM3%2F%2BxaE%3D","updated":"2013-03-04 16:26:00.000000000","message":"i\u0027m confused -- staticmethods shouldn\u0027t have a self/cls, and classmethods should have a cls parameter.\n\nSo, the method signature and decorator disagree here?","commit_id":"dabd1fe82a5a6bf8b1decf146bd580fbdc3a74d2"},{"author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"change_message_id":"5dd20d6e7a00123a05c4ad1d6893067fb6dc600f","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"class S3TokenMiddlewareTestGood(S3TokenMiddlewareTestBase):"},{"line_number":85,"context_line":"    @staticmethod"},{"line_number":86,"context_line":"    def good_request(cls, method, path, **kwargs):"},{"line_number":87,"context_line":"        cls.status \u003d 201"},{"line_number":88,"context_line":"        ret \u003d {\u0027access\u0027: {\u0027token\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2BxaE%3D","line":85,"in_reply_to":"AAAAM3%2F%2Bxc4%3D","updated":"2013-02-19 15:59:28.000000000","message":"I actually need a static method in this case or that doesn\u0027t work.\n\nin classmethod it will use S3TokenMiddleareTestGood class (for the self/cls instance variable) instead of from FakeHTTPConnection.\n\nI could as well put it in its own function if that\u0027s too confusing..","commit_id":"dabd1fe82a5a6bf8b1decf146bd580fbdc3a74d2"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"5ec0994831d4d14141a11355344a751a0038eb41","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"class S3TokenMiddlewareTestGood(S3TokenMiddlewareTestBase):"},{"line_number":85,"context_line":"    @staticmethod"},{"line_number":86,"context_line":"    def good_request(cls, method, path, **kwargs):"},{"line_number":87,"context_line":"        cls.status \u003d 201"},{"line_number":88,"context_line":"        ret \u003d {\u0027access\u0027: {\u0027token\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F%2BIA%3D","line":85,"in_reply_to":"AAAAN3%2F%2F%2FI4%3D","updated":"2013-03-05 00:18:50.000000000","message":"Chmouel - let\u0027s see what it looks like as a separate function, as you suggested. I think anyone looking at this is going to think it\u0027s a bug unless there\u0027s ample commenting.","commit_id":"dabd1fe82a5a6bf8b1decf146bd580fbdc3a74d2"}]}
