)]}'
{"trove/common/cfg.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"f4f3fe9dd485b25a92a6fd758074087f0b9d408f","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"versions_opts \u003d ["},{"line_number":34,"context_line":"    cfg.StrOpt(\u0027public_endpoint\u0027, default\u003dNone,"},{"line_number":35,"context_line":"               help\u003d\"Public url to use for versions endpoint. The default \""},{"line_number":36,"context_line":"                    \"is None, which will use the request\\\u0027s host_url \""},{"line_number":37,"context_line":"                    \"attribute to populate the URL base. If Trove is \""},{"line_number":38,"context_line":"                    \"operating behind a proxy, you will want to change \""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_8448d78b","line":35,"updated":"2015-02-14 12:18:11.000000000","message":"For consistency, \"URL\" instead of \"url\" please.","commit_id":"5ed514899cd8f577810a92b77d22ba376cf0cf94"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"9d41cd74c02a28ecc3c56b320519190bf179e8cf","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"versions_opts \u003d ["},{"line_number":34,"context_line":"    cfg.StrOpt(\u0027public_endpoint\u0027, default\u003dNone,"},{"line_number":35,"context_line":"               help\u003d\"Public url to use for versions endpoint. The default \""},{"line_number":36,"context_line":"                    \"is None, which will use the request\\\u0027s host_url \""},{"line_number":37,"context_line":"                    \"attribute to populate the URL base. If Trove is \""},{"line_number":38,"context_line":"                    \"operating behind a proxy, you will want to change \""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_6b1632f3","line":35,"in_reply_to":"da86d52c_12825bc8","updated":"2015-02-23 09:17:39.000000000","message":"Done","commit_id":"5ed514899cd8f577810a92b77d22ba376cf0cf94"},{"author":{"_account_id":7806,"name":"Sushil Kumar","email":"skm.net@gmail.com","username":"sushilkm"},"change_message_id":"3d4442bbf6401d9e5e63bd3cc0664ff0803c68a5","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"versions_opts \u003d ["},{"line_number":34,"context_line":"    cfg.StrOpt(\u0027public_endpoint\u0027, default\u003dNone,"},{"line_number":35,"context_line":"               help\u003d\"Public url to use for versions endpoint. The default \""},{"line_number":36,"context_line":"                    \"is None, which will use the request\\\u0027s host_url \""},{"line_number":37,"context_line":"                    \"attribute to populate the URL base. If Trove is \""},{"line_number":38,"context_line":"                    \"operating behind a proxy, you will want to change \""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_12825bc8","line":35,"in_reply_to":"da86d52c_8448d78b","updated":"2015-02-16 05:31:55.000000000","message":"When seeking the consistency, it would be good to use single quotes instead of double quotes in help strings","commit_id":"5ed514899cd8f577810a92b77d22ba376cf0cf94"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"f4f3fe9dd485b25a92a6fd758074087f0b9d408f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"               help\u003d\"Public url to use for versions endpoint. The default \""},{"line_number":36,"context_line":"                    \"is None, which will use the request\\\u0027s host_url \""},{"line_number":37,"context_line":"                    \"attribute to populate the URL base. If Trove is \""},{"line_number":38,"context_line":"                    \"operating behind a proxy, you will want to change \""},{"line_number":39,"context_line":"                    \"this to represent the proxy\\\u0027s URL.\")"},{"line_number":40,"context_line":"]"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_c442cf67","line":38,"updated":"2015-02-14 12:18:11.000000000","message":"wouldn\u0027t it be the same for, say a load balancer? question not a comment asking for a change to the code/help text.","commit_id":"5ed514899cd8f577810a92b77d22ba376cf0cf94"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"9d41cd74c02a28ecc3c56b320519190bf179e8cf","unresolved":false,"context_lines":[{"line_number":35,"context_line":"               help\u003d\"Public url to use for versions endpoint. The default \""},{"line_number":36,"context_line":"                    \"is None, which will use the request\\\u0027s host_url \""},{"line_number":37,"context_line":"                    \"attribute to populate the URL base. If Trove is \""},{"line_number":38,"context_line":"                    \"operating behind a proxy, you will want to change \""},{"line_number":39,"context_line":"                    \"this to represent the proxy\\\u0027s URL.\")"},{"line_number":40,"context_line":"]"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_8bd1a659","line":38,"in_reply_to":"da86d52c_c442cf67","updated":"2015-02-23 09:17:39.000000000","message":"It would depend on the type of load-balancer --  for a load-balancer that\u0027s non-transparent, this would be the case.","commit_id":"5ed514899cd8f577810a92b77d22ba376cf0cf94"}],"trove/tests/unittests/api/test_versions.py":[{"author":{"_account_id":13355,"name":"Edmond Kotowski","email":"ekotowski@gmail.com","username":"ekotowski"},"change_message_id":"14d65d69367a76fe1ed9c99cb6dbe00c587e21b3","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        self.assertTrue(CONF.public_endpoint in version_endpoint,"},{"line_number":82,"context_line":"                        \"Versions endpoint from list does not contain \""},{"line_number":83,"context_line":"                        \"public_endpoint from config\")"},{"line_number":84,"context_line":"        CONF.public_endpoint \u003d original_public_endpoint"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def test_show_json(self):"},{"line_number":87,"context_line":"        request \u003d Mock()"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_4173ea7f","line":84,"updated":"2015-02-24 03:20:36.000000000","message":"Use tearDown(self) method for setting the CONF.public_endpoint back. That way if one of the earlier asserts fail or an exception is raised before it hits this you would ensure you cleaned up the CONF.public_endpoint. As it stands your next test could actually be using \"https://example.com:8779\" for the original_public_endpoint if a failure occurred and would cause the other test to fail. \n\nFix for both tests.","commit_id":"b6cadee71b223cf6a1a1ae364b316eb887f2ecaa"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"3627b6d0291668745ea447c7e2a87ee797b156d4","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        self.assertTrue(CONF.public_endpoint in version_endpoint,"},{"line_number":82,"context_line":"                        \"Versions endpoint from list does not contain \""},{"line_number":83,"context_line":"                        \"public_endpoint from config\")"},{"line_number":84,"context_line":"        CONF.public_endpoint \u003d original_public_endpoint"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def test_show_json(self):"},{"line_number":87,"context_line":"        request \u003d Mock()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa53dc9_63d463eb","line":84,"in_reply_to":"ba7be1f8_20beb365","updated":"2015-04-09 15:35:19.000000000","message":"How about:\n\n  with patch.object(CONF, public_endpoint, \"https://example.com:8779\"):\n\nat the beginning of the test.","commit_id":"b6cadee71b223cf6a1a1ae364b316eb887f2ecaa"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"7f7a7f317e500c71ef3e8b917981423b8f139bce","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        self.assertTrue(CONF.public_endpoint in version_endpoint,"},{"line_number":82,"context_line":"                        \"Versions endpoint from list does not contain \""},{"line_number":83,"context_line":"                        \"public_endpoint from config\")"},{"line_number":84,"context_line":"        CONF.public_endpoint \u003d original_public_endpoint"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def test_show_json(self):"},{"line_number":87,"context_line":"        request \u003d Mock()"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_20beb365","line":84,"in_reply_to":"ba7be1f8_4173ea7f","updated":"2015-02-25 09:45:10.000000000","message":"Good point  -- I can\u0027t use tearDown(self) though because I need to have this changed only for the tests in question and not throughout the class -- something like a context handler, or a try, except, finally block may fit the bill better. Thanks!","commit_id":"b6cadee71b223cf6a1a1ae364b316eb887f2ecaa"},{"author":{"_account_id":12758,"name":"Masaki Matsushita","email":"glass.saga@gmail.com","username":"masaki"},"change_message_id":"30595f1b3355bf18be1a15b7a8f4c4bba5b00dd1","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        self.assertTrue(CONF.public_endpoint in version_endpoint,"},{"line_number":119,"context_line":"                        \"Version endpoint from show does not contain \""},{"line_number":120,"context_line":"                        \"public_endpoint from config\")"},{"line_number":121,"context_line":"        CONF.public_endpoint \u003d original_public_endpoint"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"class BaseVersionTestCase(testtools.TestCase):"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_bf967092","line":121,"updated":"2015-07-07 01:30:49.000000000","message":"Same problem as above.","commit_id":"b6cadee71b223cf6a1a1ae364b316eb887f2ecaa"}],"trove/versions.py":[{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"f4f3fe9dd485b25a92a6fd758074087f0b9d408f","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    def show(self, request):"},{"line_number":49,"context_line":"        \"\"\"Respond to a request for a specific API version.\"\"\""},{"line_number":50,"context_line":"        data \u003d VERSIONS[request.url_version]"},{"line_number":51,"context_line":"        url \u003d CONF.public_endpoint or request.application_url"},{"line_number":52,"context_line":"        v \u003d Version(data[\"id\"], data[\"status\"],"},{"line_number":53,"context_line":"                    url, data[\"updated\"])"},{"line_number":54,"context_line":"        return wsgi.Result(VersionDataView(v))"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_642a0392","line":51,"updated":"2015-02-14 12:18:11.000000000","message":"Strikes me that this change would be simpler if made in the __init__ of BaseVersion(), no? Version derives from BaseVersion so this should still work.","commit_id":"5ed514899cd8f577810a92b77d22ba376cf0cf94"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"9d41cd74c02a28ecc3c56b320519190bf179e8cf","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    def show(self, request):"},{"line_number":49,"context_line":"        \"\"\"Respond to a request for a specific API version.\"\"\""},{"line_number":50,"context_line":"        data \u003d VERSIONS[request.url_version]"},{"line_number":51,"context_line":"        url \u003d CONF.public_endpoint or request.application_url"},{"line_number":52,"context_line":"        v \u003d Version(data[\"id\"], data[\"status\"],"},{"line_number":53,"context_line":"                    url, data[\"updated\"])"},{"line_number":54,"context_line":"        return wsgi.Result(VersionDataView(v))"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_2bf51acb","line":51,"in_reply_to":"da86d52c_642a0392","updated":"2015-02-23 09:17:39.000000000","message":"Yes -- good catch!","commit_id":"5ed514899cd8f577810a92b77d22ba376cf0cf94"},{"author":{"_account_id":9664,"name":"amrith","email":"amrith.kumar@gmail.com","username":"amrith"},"change_message_id":"f4f3fe9dd485b25a92a6fd758074087f0b9d408f","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    def __init__(self, id, status, base_url, updated):"},{"line_number":60,"context_line":"        self.id \u003d id"},{"line_number":61,"context_line":"        self.status \u003d status"},{"line_number":62,"context_line":"        self.base_url \u003d base_url"},{"line_number":63,"context_line":"        self.updated \u003d updated"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def data(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_a41b1b7f","line":62,"updated":"2015-02-14 12:18:11.000000000","message":"i.e. make the change here\n\nself.base_url \u003d CONF.public_endpoint or base_url","commit_id":"5ed514899cd8f577810a92b77d22ba376cf0cf94"},{"author":{"_account_id":5293,"name":"Nikhil","email":"SlickNik@gmail.com","username":"slicknik"},"change_message_id":"9d41cd74c02a28ecc3c56b320519190bf179e8cf","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    def __init__(self, id, status, base_url, updated):"},{"line_number":60,"context_line":"        self.id \u003d id"},{"line_number":61,"context_line":"        self.status \u003d status"},{"line_number":62,"context_line":"        self.base_url \u003d base_url"},{"line_number":63,"context_line":"        self.updated \u003d updated"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def data(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_cb10fe03","line":62,"in_reply_to":"da86d52c_a41b1b7f","updated":"2015-02-23 09:17:39.000000000","message":"Done","commit_id":"5ed514899cd8f577810a92b77d22ba376cf0cf94"}]}
