)]}'
{"barbicanclient/client.py":[{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"b3d835688383de4e6de128e37d1768883d4b0403","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    def _using_auth(self):"},{"line_number":162,"context_line":"        return self._session.auth is not None"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def _add_project_id_to_headers(self, headers):"},{"line_number":165,"context_line":"        if headers:"},{"line_number":166,"context_line":"            headers[\u0027X-Project-Id\u0027] \u003d self._tenant_id"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_ae281a37","line":164,"updated":"2014-08-08 06:22:47.000000000","message":"Well, this doesn\u0027t always add the project id to the headers. A name that would reflect this would be better.","commit_id":"cb292c7450526102d8ce5258953dce028eed21c9"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"82f081015582c9f1a15e3a0c9782c53bb529ea27","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    def _using_auth(self):"},{"line_number":162,"context_line":"        return self._session.auth is not None"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def _add_project_id_to_headers(self, headers):"},{"line_number":165,"context_line":"        if headers:"},{"line_number":166,"context_line":"            headers[\u0027X-Project-Id\u0027] \u003d self._tenant_id"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_8ef5fd53","line":164,"in_reply_to":"baada198_ae281a37","updated":"2014-08-08 17:32:47.000000000","message":"Am only checking if headers is valid before adding to it. Also, it should be obvious to the caller that if \u0027None\u0027 is passed in, it would do nothing (as it doesn\u0027t return headers).\nIf I change the name to _add_project_id_to_headers_if_required would make it more verbose. Do you have any suggestion ?","commit_id":"cb292c7450526102d8ce5258953dce028eed21c9"},{"author":{"_account_id":7789,"name":"John Wood","email":"john.wood@rackspace.com","username":"woodster"},"change_message_id":"13c72e16abf02d3f4cde53495d7c931989c4a58d","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def get(self, href, params\u003dNone):"},{"line_number":169,"context_line":"        headers \u003d {\u0027Accept\u0027: \u0027application/json\u0027}"},{"line_number":170,"context_line":"        if not self._using_auth():"},{"line_number":171,"context_line":"            self._add_project_id_to_headers(headers)"},{"line_number":172,"context_line":"        resp \u003d self._session.get(href, params\u003dparams, headers\u003dheaders)"},{"line_number":173,"context_line":"        self._check_status_code(resp)"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_4d6bb6ef","line":170,"updated":"2014-08-11 15:29:00.000000000","message":"What about creating a helper method that combines the if/then lines, so we just need a one liner for each of these calls?  Something like self._prepare_auth(headers), and then...\n\ndef _prepare_auth(headers):\n    if headers and not self._session.auth:\n        headers[\u0027X-Project-Id\u0027] \u003d self._tenant_id","commit_id":"08b1fdf003de4231cbb45ae8c4169d20b739776e"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"71deffdb19be5d9d70b0005c83c491d42af7d102","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def get(self, href, params\u003dNone):"},{"line_number":169,"context_line":"        headers \u003d {\u0027Accept\u0027: \u0027application/json\u0027}"},{"line_number":170,"context_line":"        if not self._using_auth():"},{"line_number":171,"context_line":"            self._add_project_id_to_headers(headers)"},{"line_number":172,"context_line":"        resp \u003d self._session.get(href, params\u003dparams, headers\u003dheaders)"},{"line_number":173,"context_line":"        self._check_status_code(resp)"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_3c1b0e70","line":170,"in_reply_to":"baada198_4d6bb6ef","updated":"2014-08-11 16:59:29.000000000","message":"Agreed. This definitely looks cleaner. Thanks. Will change in next patch","commit_id":"08b1fdf003de4231cbb45ae8c4169d20b739776e"},{"author":{"_account_id":8004,"name":"Paul Kehrer","email":"paul.l.kehrer@gmail.com","username":"reaperhulk"},"change_message_id":"3a105f2df735e1f4c02c1b924a871273983670c6","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    def post(self, path, data):"},{"line_number":185,"context_line":"        url \u003d \u0027{0}/{1}/\u0027.format(self.base_url, path)"},{"line_number":186,"context_line":"        headers \u003d {\u0027content-type\u0027: \u0027application/json\u0027}"},{"line_number":187,"context_line":"        self._prepare_auth(headers)"},{"line_number":188,"context_line":"        resp \u003d self._session.post(url, data\u003djson.dumps(data), headers\u003dheaders)"},{"line_number":189,"context_line":"        self._check_status_code(resp)"},{"line_number":190,"context_line":"        return resp.json()"}],"source_content_type":"text/x-python","patch_set":7,"id":"1abeadc6_2515f53f","line":187,"updated":"2014-08-20 17:35:02.000000000","message":"headers is undefined in this scope.","commit_id":"f9644702ad2561becd9ab70fd647ef83db4c923e"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"d526153112e01cb99d9181f17f6c125df469ab79","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    def post(self, path, data):"},{"line_number":185,"context_line":"        url \u003d \u0027{0}/{1}/\u0027.format(self.base_url, path)"},{"line_number":186,"context_line":"        headers \u003d {\u0027content-type\u0027: \u0027application/json\u0027}"},{"line_number":187,"context_line":"        self._prepare_auth(headers)"},{"line_number":188,"context_line":"        resp \u003d self._session.post(url, data\u003djson.dumps(data), headers\u003dheaders)"},{"line_number":189,"context_line":"        self._check_status_code(resp)"},{"line_number":190,"context_line":"        return resp.json()"}],"source_content_type":"text/x-python","patch_set":7,"id":"1abeadc6_deec02f6","line":187,"in_reply_to":"1abeadc6_2515f53f","updated":"2014-08-20 23:52:11.000000000","message":"I think it is defined immediately above this. Line 178? Looks fine to me.","commit_id":"f9644702ad2561becd9ab70fd647ef83db4c923e"},{"author":{"_account_id":8004,"name":"Paul Kehrer","email":"paul.l.kehrer@gmail.com","username":"reaperhulk"},"change_message_id":"2ed987928e4b7cedf181716834e160a49d52d576","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    def post(self, path, data):"},{"line_number":185,"context_line":"        url \u003d \u0027{0}/{1}/\u0027.format(self.base_url, path)"},{"line_number":186,"context_line":"        headers \u003d {\u0027content-type\u0027: \u0027application/json\u0027}"},{"line_number":187,"context_line":"        self._prepare_auth(headers)"},{"line_number":188,"context_line":"        resp \u003d self._session.post(url, data\u003djson.dumps(data), headers\u003dheaders)"},{"line_number":189,"context_line":"        self._check_status_code(resp)"},{"line_number":190,"context_line":"        return resp.json()"}],"source_content_type":"text/x-python","patch_set":7,"id":"1abeadc6_376c3908","line":187,"in_reply_to":"1abeadc6_d44943b8","updated":"2014-08-21 02:27:50.000000000","message":"Indeed, I am clearly blind.","commit_id":"f9644702ad2561becd9ab70fd647ef83db4c923e"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"ee9faf058842200b0c6a5f95b548ee1db0d7bfbf","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    def post(self, path, data):"},{"line_number":185,"context_line":"        url \u003d \u0027{0}/{1}/\u0027.format(self.base_url, path)"},{"line_number":186,"context_line":"        headers \u003d {\u0027content-type\u0027: \u0027application/json\u0027}"},{"line_number":187,"context_line":"        self._prepare_auth(headers)"},{"line_number":188,"context_line":"        resp \u003d self._session.post(url, data\u003djson.dumps(data), headers\u003dheaders)"},{"line_number":189,"context_line":"        self._check_status_code(resp)"},{"line_number":190,"context_line":"        return resp.json()"}],"source_content_type":"text/x-python","patch_set":7,"id":"1abeadc6_d44943b8","line":187,"in_reply_to":"1abeadc6_deec02f6","updated":"2014-08-21 01:35:55.000000000","message":"Thanks Adam. Yes, it is defined in the line above the call to _prepare_auth.\n\nPaul, would you agree ? Could we get this merged soon please ? As the corresponding server side changes are merged, the client is broken till this patch is merged!","commit_id":"f9644702ad2561becd9ab70fd647ef83db4c923e"}],"barbicanclient/test/test_barbican.py":[{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"4694c9ad724f35ec2de0c222ee1fadcdc004901b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    @httpretty.activate"},{"line_number":111,"context_line":"    def test_should_succeed_if_noauth_with_valid_args_specified(self):"},{"line_number":112,"context_line":"        list_secrets_content \u003d \u0027{\"secrets\": [], \"total\": 0}\u0027"},{"line_number":113,"context_line":"        list_secrets_url \u003d \u0027%ssecrets\u0027 % ("},{"line_number":114,"context_line":"            self.endpoint)"},{"line_number":115,"context_line":"        httpretty.register_uri("},{"line_number":116,"context_line":"            httpretty.GET, list_secrets_url,"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_2b74119a","line":113,"updated":"2014-08-07 15:46:43.000000000","message":"good time to replace this with format (rather than % which is deprecated)","commit_id":"cb292c7450526102d8ce5258953dce028eed21c9"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"82f081015582c9f1a15e3a0c9782c53bb529ea27","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    @httpretty.activate"},{"line_number":111,"context_line":"    def test_should_succeed_if_noauth_with_valid_args_specified(self):"},{"line_number":112,"context_line":"        list_secrets_content \u003d \u0027{\"secrets\": [], \"total\": 0}\u0027"},{"line_number":113,"context_line":"        list_secrets_url \u003d \u0027%ssecrets\u0027 % ("},{"line_number":114,"context_line":"            self.endpoint)"},{"line_number":115,"context_line":"        httpretty.register_uri("},{"line_number":116,"context_line":"            httpretty.GET, list_secrets_url,"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_4e8685bb","line":113,"in_reply_to":"baada198_2b74119a","updated":"2014-08-08 17:32:47.000000000","message":"sure. will do","commit_id":"cb292c7450526102d8ce5258953dce028eed21c9"},{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"d1d8fa751fc192b89e2212ef0115a64d514ec677","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        barbican_url \u003d keystone_client_fixtures.BARBICAN_ENDPOINT"},{"line_number":171,"context_line":"        httpretty.register_uri("},{"line_number":172,"context_line":"            httpretty.DELETE,"},{"line_number":173,"context_line":"            \u0027{0}/{1}/secrets/mysecretid\u0027.format("},{"line_number":174,"context_line":"                barbican_url,"},{"line_number":175,"context_line":"                v2_token[\u0027access\u0027][\u0027token\u0027][\u0027tenant\u0027][\u0027id\u0027]),"},{"line_number":176,"context_line":"            status\u003d200)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_0969a4bf","line":173,"updated":"2014-08-11 21:42:40.000000000","message":"does this need the token removed as well?  Looks like we\u0027re putting a tenant ID in for {1}","commit_id":"aca80ee30df95f6be0bd903b3705a872f9864f89"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"b21f417ce6d8456d951ebad24dacd952cde826f3","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        barbican_url \u003d keystone_client_fixtures.BARBICAN_ENDPOINT"},{"line_number":171,"context_line":"        httpretty.register_uri("},{"line_number":172,"context_line":"            httpretty.DELETE,"},{"line_number":173,"context_line":"            \u0027{0}/{1}/secrets/mysecretid\u0027.format("},{"line_number":174,"context_line":"                barbican_url,"},{"line_number":175,"context_line":"                v2_token[\u0027access\u0027][\u0027token\u0027][\u0027tenant\u0027][\u0027id\u0027]),"},{"line_number":176,"context_line":"            status\u003d200)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_a2a28d94","line":173,"in_reply_to":"baada198_0969a4bf","updated":"2014-08-12 00:00:04.000000000","message":"Good catch. Will remove it. Also, will refactor this test and next to remove duplicate lines. Thanks.","commit_id":"aca80ee30df95f6be0bd903b3705a872f9864f89"},{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"d1d8fa751fc192b89e2212ef0115a64d514ec677","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        httpretty.register_uri("},{"line_number":200,"context_line":"            httpretty.DELETE,"},{"line_number":201,"context_line":"            \u0027{0}/{1}/secrets/mysecretid\u0027.format("},{"line_number":202,"context_line":"                barbican_url,"},{"line_number":203,"context_line":"                v3_token[\u0027token\u0027][\u0027project\u0027][\u0027id\u0027]),"},{"line_number":204,"context_line":"            status\u003d200)"},{"line_number":205,"context_line":"        self.barbican.execute(argv\u003dargv)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_c9996cd1","line":202,"updated":"2014-08-11 21:42:40.000000000","message":"does this need the token removed as well?  Looks like we\u0027re putting a project ID in for {1}","commit_id":"aca80ee30df95f6be0bd903b3705a872f9864f89"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"b21f417ce6d8456d951ebad24dacd952cde826f3","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        httpretty.register_uri("},{"line_number":200,"context_line":"            httpretty.DELETE,"},{"line_number":201,"context_line":"            \u0027{0}/{1}/secrets/mysecretid\u0027.format("},{"line_number":202,"context_line":"                barbican_url,"},{"line_number":203,"context_line":"                v3_token[\u0027token\u0027][\u0027project\u0027][\u0027id\u0027]),"},{"line_number":204,"context_line":"            status\u003d200)"},{"line_number":205,"context_line":"        self.barbican.execute(argv\u003dargv)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_c2b4e1d5","line":202,"in_reply_to":"baada198_c9996cd1","updated":"2014-08-12 00:00:04.000000000","message":"Same as above","commit_id":"aca80ee30df95f6be0bd903b3705a872f9864f89"},{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"b7c9b79fe7cfe1d11039e620bd7059ae0a5558b0","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        httpretty.register_uri("},{"line_number":164,"context_line":"            httpretty.DELETE,"},{"line_number":165,"context_line":"            mySecretRef,"},{"line_number":166,"context_line":"            status\u003d200)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        try:"},{"line_number":169,"context_line":"            self.barbican.execute(argv\u003dargv)"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_2fc2e153","line":166,"updated":"2014-08-12 03:58:04.000000000","message":"Should be 204 to correctly emulate the delete, right?\n\nI know that was there before your update.","commit_id":"60c7404ccfad3e89353575bb5c9f7f7300636055"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"220df5ee4aa27d7160e183425295c9ea0e312a94","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        httpretty.register_uri("},{"line_number":164,"context_line":"            httpretty.DELETE,"},{"line_number":165,"context_line":"            mySecretRef,"},{"line_number":166,"context_line":"            status\u003d200)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        try:"},{"line_number":169,"context_line":"            self.barbican.execute(argv\u003dargv)"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_ea499a2f","line":166,"in_reply_to":"baada198_2fc2e153","updated":"2014-08-12 17:29:37.000000000","message":"Good point Steve. Will fix that in another CR like you said :)","commit_id":"60c7404ccfad3e89353575bb5c9f7f7300636055"},{"author":{"_account_id":7262,"name":"John Vrbanac","email":"john.vrbanac@linux.com","username":"john.vrbanac"},"change_message_id":"4eaadda81b8e6b3fd738d1a70f52f55d93c14f42","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        try:"},{"line_number":169,"context_line":"            self.barbican.execute(argv\u003dargv)"},{"line_number":170,"context_line":"        except:"},{"line_number":171,"context_line":"            raise"},{"line_number":172,"context_line":"            self.fail(\u0027failed to delete secret\u0027)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    @httpretty.activate"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_40f9574e","line":171,"updated":"2014-08-13 15:30:00.000000000","message":"Why are we re-raising here? If we\u0027re just catching for self.fail(...), then we shouldn\u0027t need to re-raise.","commit_id":"60c7404ccfad3e89353575bb5c9f7f7300636055"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"51028b420f60e086c0503696012b8783e5ce44f6","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        try:"},{"line_number":169,"context_line":"            self.barbican.execute(argv\u003dargv)"},{"line_number":170,"context_line":"        except:"},{"line_number":171,"context_line":"            raise"},{"line_number":172,"context_line":"            self.fail(\u0027failed to delete secret\u0027)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    @httpretty.activate"}],"source_content_type":"text/x-python","patch_set":5,"id":"baada198_9580089e","line":171,"in_reply_to":"baada198_40f9574e","updated":"2014-08-13 16:00:58.000000000","message":"oops! it shouldn\u0027t be there. thanks. will fix it.","commit_id":"60c7404ccfad3e89353575bb5c9f7f7300636055"},{"author":{"_account_id":7789,"name":"John Wood","email":"john.wood@rackspace.com","username":"woodster"},"change_message_id":"ef1ee4c86b89fbe559c49a0de0d05045aefa543e","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            argv.append(v)"},{"line_number":150,"context_line":"        return argv"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def _delete_secret(self, auth_url):"},{"line_number":153,"context_line":"        self.kwargs[\u0027auth_url\u0027] \u003d auth_url"},{"line_number":154,"context_line":"        argv \u003d self._to_argv(**self.kwargs)"},{"line_number":155,"context_line":"        barbican_url \u003d keystone_client_fixtures.BARBICAN_ENDPOINT"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac7a964_567ea9e5","line":152,"updated":"2014-08-14 03:46:31.000000000","message":"Are you missing @httpretty.activate to monkey patch sockets?","commit_id":"5a0e4ac871b1a33b3742c6f81eecc136f6f26c90"},{"author":{"_account_id":7789,"name":"John Wood","email":"john.wood@rackspace.com","username":"woodster"},"change_message_id":"fba3b852e8d34f92cf735420819a141e5e3e0a66","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            argv.append(v)"},{"line_number":150,"context_line":"        return argv"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def _delete_secret(self, auth_url):"},{"line_number":153,"context_line":"        self.kwargs[\u0027auth_url\u0027] \u003d auth_url"},{"line_number":154,"context_line":"        argv \u003d self._to_argv(**self.kwargs)"},{"line_number":155,"context_line":"        barbican_url \u003d keystone_client_fixtures.BARBICAN_ENDPOINT"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac7a964_b7527b11","line":152,"in_reply_to":"7ac7a964_2eb1bbf8","updated":"2014-08-14 16:39:39.000000000","message":"Oh, I see, sorry!","commit_id":"5a0e4ac871b1a33b3742c6f81eecc136f6f26c90"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"709c1116fbdbdae2e1542c0d71f724e4f5c43327","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            argv.append(v)"},{"line_number":150,"context_line":"        return argv"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def _delete_secret(self, auth_url):"},{"line_number":153,"context_line":"        self.kwargs[\u0027auth_url\u0027] \u003d auth_url"},{"line_number":154,"context_line":"        argv \u003d self._to_argv(**self.kwargs)"},{"line_number":155,"context_line":"        barbican_url \u003d keystone_client_fixtures.BARBICAN_ENDPOINT"}],"source_content_type":"text/x-python","patch_set":6,"id":"7ac7a964_2eb1bbf8","line":152,"in_reply_to":"7ac7a964_567ea9e5","updated":"2014-08-14 14:33:35.000000000","message":"This method is not directly called. It is called by test_v2_auth and test_v3_auth and both of those have the @httpretty.activate decorator","commit_id":"5a0e4ac871b1a33b3742c6f81eecc136f6f26c90"}],"barbicanclient/test/test_client.py":[{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"4694c9ad724f35ec2de0c222ee1fadcdc004901b","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    def test_can_be_used_without_auth_plugin(self):"},{"line_number":109,"context_line":"        c \u003d client.Client(auth_plugin\u003dNone, endpoint\u003dself.endpoint,"},{"line_number":110,"context_line":"                          tenant_id\u003dself.tenant_id)"},{"line_number":111,"context_line":"        expected \u003d (\u0027%s\u0027 % (self.endpoint)).rstrip(\u0027/\u0027)"},{"line_number":112,"context_line":"        self.assertEqual(expected, c.base_url)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def test_auth_token_header_is_set_when_using_auth_plugin(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_eb4cd941","line":111,"updated":"2014-08-07 15:46:43.000000000","message":"good time to change to format rather than %","commit_id":"cb292c7450526102d8ce5258953dce028eed21c9"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"82f081015582c9f1a15e3a0c9782c53bb529ea27","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    def test_can_be_used_without_auth_plugin(self):"},{"line_number":109,"context_line":"        c \u003d client.Client(auth_plugin\u003dNone, endpoint\u003dself.endpoint,"},{"line_number":110,"context_line":"                          tenant_id\u003dself.tenant_id)"},{"line_number":111,"context_line":"        expected \u003d (\u0027%s\u0027 % (self.endpoint)).rstrip(\u0027/\u0027)"},{"line_number":112,"context_line":"        self.assertEqual(expected, c.base_url)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def test_auth_token_header_is_set_when_using_auth_plugin(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_ae89e1c8","line":111,"in_reply_to":"baada198_eb4cd941","updated":"2014-08-08 17:32:47.000000000","message":"sure. will do","commit_id":"cb292c7450526102d8ce5258953dce028eed21c9"},{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"b3d835688383de4e6de128e37d1768883d4b0403","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def test_base_url_has_no_tenant_id(self):"},{"line_number":136,"context_line":"        c \u003d client.Client(auth_plugin\u003dself.fake_auth)"},{"line_number":137,"context_line":"        self.assertTrue(self.tenant_id not in c.base_url)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def test_should_raise_for_unauthorized_response(self):"},{"line_number":140,"context_line":"        resp \u003d self._mock_response(status_code\u003d401)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_ced2ae32","line":137,"updated":"2014-08-08 06:22:47.000000000","message":"using self.assertNotIn would be better","commit_id":"cb292c7450526102d8ce5258953dce028eed21c9"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"82f081015582c9f1a15e3a0c9782c53bb529ea27","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def test_base_url_has_no_tenant_id(self):"},{"line_number":136,"context_line":"        c \u003d client.Client(auth_plugin\u003dself.fake_auth)"},{"line_number":137,"context_line":"        self.assertTrue(self.tenant_id not in c.base_url)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def test_should_raise_for_unauthorized_response(self):"},{"line_number":140,"context_line":"        resp \u003d self._mock_response(status_code\u003d401)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_4eada531","line":137,"in_reply_to":"baada198_ced2ae32","updated":"2014-08-08 17:32:47.000000000","message":"yikes! thanks for catching it. will fix it in next patch.","commit_id":"cb292c7450526102d8ce5258953dce028eed21c9"},{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"d18230ac7b47e4c779a422e2ad5fa890fb3cc8d3","unresolved":false,"context_lines":[{"line_number":264,"context_line":"            list_secrets_url,"},{"line_number":265,"context_line":"            status\u003d200,"},{"line_number":266,"context_line":"            body\u003d\u0027{\"name\": \"{0}\", \"secret_ref\": \"{1}\"}\u0027.format("},{"line_number":267,"context_line":"                 self.entity_name, self.entity_href))"},{"line_number":268,"context_line":"        resp \u003d c.get(list_secrets_url)"},{"line_number":269,"context_line":"        self.assertEqual(self.entity_name, resp[\u0027name\u0027])"},{"line_number":270,"context_line":"        self.assertEqual(self.entity_href, resp[\u0027secret_ref\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_5a6c7807","line":267,"updated":"2014-08-08 21:31:32.000000000","message":"tests are failing with KeyError( \"name\" )","commit_id":"9e44b5e77fc71ff3cbd569bd4cc01fdee993707a"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"c64a6e5084139509528a12f568fca8058c8b1fd5","unresolved":false,"context_lines":[{"line_number":264,"context_line":"            list_secrets_url,"},{"line_number":265,"context_line":"            status\u003d200,"},{"line_number":266,"context_line":"            body\u003d\u0027{\"name\": \"{0}\", \"secret_ref\": \"{1}\"}\u0027.format("},{"line_number":267,"context_line":"                 self.entity_name, self.entity_href))"},{"line_number":268,"context_line":"        resp \u003d c.get(list_secrets_url)"},{"line_number":269,"context_line":"        self.assertEqual(self.entity_name, resp[\u0027name\u0027])"},{"line_number":270,"context_line":"        self.assertEqual(self.entity_href, resp[\u0027secret_ref\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_d544d9a0","line":267,"in_reply_to":"baada198_5a6c7807","updated":"2014-08-08 22:02:36.000000000","message":"Thanks again. The issue was with the format method treating the JSON curl braces as format specifiers. Have escaped it now.","commit_id":"9e44b5e77fc71ff3cbd569bd4cc01fdee993707a"},{"author":{"_account_id":7874,"name":"Venkat Sundaram","email":"tsv@hp.com","username":"tsv"},"change_message_id":"71deffdb19be5d9d70b0005c83c491d42af7d102","unresolved":false,"context_lines":[{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def test_base_url_has_no_tenant_id(self):"},{"line_number":136,"context_line":"        c \u003d client.Client(auth_plugin\u003dself.fake_auth)"},{"line_number":137,"context_line":"        self.assertTrue(self.tenant_id not in c.base_url)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def test_should_raise_for_unauthorized_response(self):"},{"line_number":140,"context_line":"        resp \u003d self._mock_response(status_code\u003d401)"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_5c5522f7","line":137,"updated":"2014-08-11 16:59:29.000000000","message":"Noticed that I missed to change this to use assertNotIn per earlier patchset review. Will fix this in next patch.","commit_id":"08b1fdf003de4231cbb45ae8c4169d20b739776e"}]}
