)]}'
{"tempest/api/object_storage/test_account_services.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"7962963ac3a4f7b0a0e66ec8fc30295e0bcbfb59","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        if account_management:"},{"line_number":66,"context_line":"            resp, body \u003d self.account_client.put(\u0027\u0027, None, {})"},{"line_number":67,"context_line":"            self.assertHeaders(resp, \u0027Account\u0027, \u0027PUT\u0027)"},{"line_number":68,"context_line":"            self.assertTrue(resp[\u0027status\u0027], 202)"},{"line_number":69,"context_line":"        else:"},{"line_number":70,"context_line":"            self.skip(\u0027Account management disabled\u0027)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_18549352","line":68,"updated":"2016-04-22 12:31:27.000000000","message":"You want assertEqual here.","commit_id":"801635efeaea2a46aa7e28a173dfde224a6cd5e7"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"7962963ac3a4f7b0a0e66ec8fc30295e0bcbfb59","unresolved":false,"context_lines":[{"line_number":243,"context_line":"                         min(limit, self.containers_count - 2))"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @test.idempotent_id(\u002779a36ed5-30c1-4b5b-a073-58bae697260e\u0027)"},{"line_number":246,"context_line":"    def test_list_containers_with_prefix(self):"},{"line_number":247,"context_line":"        prefix \u003d self.containers[0][0:9]"},{"line_number":248,"context_line":"        params \u003d {\u0027prefix\u0027: prefix}"},{"line_number":249,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_5e0393b8","line":246,"updated":"2016-04-22 12:31:27.000000000","message":"Does this test really fit in test_account_services.py ?","commit_id":"801635efeaea2a46aa7e28a173dfde224a6cd5e7"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"7962963ac3a4f7b0a0e66ec8fc30295e0bcbfb59","unresolved":false,"context_lines":[{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @test.idempotent_id(\u002779a36ed5-30c1-4b5b-a073-58bae697260e\u0027)"},{"line_number":246,"context_line":"    def test_list_containers_with_prefix(self):"},{"line_number":247,"context_line":"        prefix \u003d self.containers[0][0:9]"},{"line_number":248,"context_line":"        params \u003d {\u0027prefix\u0027: prefix}"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        resp, container_list \u003d self.account_client.list_account_containers("}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_7ed48f46","line":247,"updated":"2016-04-22 12:31:27.000000000","message":"Why 0:9 here ? Why not 0:3 ? Maybe a code comment would help.","commit_id":"801635efeaea2a46aa7e28a173dfde224a6cd5e7"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"7962963ac3a4f7b0a0e66ec8fc30295e0bcbfb59","unresolved":false,"context_lines":[{"line_number":251,"context_line":"            params\u003dparams)"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"        self.assertHeaders(resp, \u0027Account\u0027, \u0027GET\u0027)"},{"line_number":254,"context_line":"        self.assertTrue(resp.status, \u0027200\u0027)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        expected_list \u003d []"},{"line_number":257,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_1ec47b90","line":254,"updated":"2016-04-22 12:31:27.000000000","message":"assertEqual","commit_id":"801635efeaea2a46aa7e28a173dfde224a6cd5e7"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"7962963ac3a4f7b0a0e66ec8fc30295e0bcbfb59","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        self.assertHeaders(resp, \u0027Account\u0027, \u0027GET\u0027)"},{"line_number":254,"context_line":"        self.assertTrue(resp.status, \u0027200\u0027)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        expected_list \u003d []"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        for container in self.containers:"},{"line_number":259,"context_line":"            if container[0:9] \u003d\u003d prefix:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_5e6c339c","line":256,"updated":"2016-04-22 12:31:27.000000000","message":"expected_list \u003d [\n    c for c in self.containers if c.startswith(prefix)\n]","commit_id":"801635efeaea2a46aa7e28a173dfde224a6cd5e7"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ca3ead6d6aa5ece2b50b12717e87af0c5141ca3e","unresolved":false,"context_lines":[{"line_number":243,"context_line":"                         min(limit, self.containers_count - 2))"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @test.idempotent_id(\u002779a36ed5-30c1-4b5b-a073-58bae697260e\u0027)"},{"line_number":246,"context_line":"    def test_list_containers_with_prefix(self):"},{"line_number":247,"context_line":"        # Each container name starts with \"tempest-\" prior to containing"},{"line_number":248,"context_line":"        # a unique value"},{"line_number":249,"context_line":"        prefix \u003d self.containers[0][0:9]"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_eadc381a","line":246,"updated":"2016-04-23 17:08:40.000000000","message":"Maybe this test would be better in test_container_services.py","commit_id":"9c96a845ef9c41186039c90d199fc98829792968"},{"author":{"_account_id":20553,"name":"Brian Ober","email":"bober@us.ibm.com","username":"ober37"},"change_message_id":"a59845e4fecf34465f4fe9e798b9398d53de2b9d","unresolved":false,"context_lines":[{"line_number":243,"context_line":"                         min(limit, self.containers_count - 2))"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @test.idempotent_id(\u002779a36ed5-30c1-4b5b-a073-58bae697260e\u0027)"},{"line_number":246,"context_line":"    def test_list_containers_with_prefix(self):"},{"line_number":247,"context_line":"        # Each container name starts with \"tempest-\" prior to containing"},{"line_number":248,"context_line":"        # a unique value"},{"line_number":249,"context_line":"        prefix \u003d self.containers[0][0:9]"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_859ad76c","line":246,"in_reply_to":"1a122d0e_eadc381a","updated":"2016-04-23 20:01:05.000000000","message":"I would prefer to keep this here.  All of the account listings (GET URL/account) that lists containers is within this file (not just prefix checking, but also marker / limits / etc).     \n\nThe test_container_services has similar tests for validating the list of objects within that container.   \n\nBecause the trigger here is a GET on a storage account and the other account listing tests are here, I think we should leave it here.","commit_id":"9c96a845ef9c41186039c90d199fc98829792968"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ca3ead6d6aa5ece2b50b12717e87af0c5141ca3e","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            c for c in self.containers if c.startswith(prefix)"},{"line_number":260,"context_line":"        ]"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        self.assertTrue(expected_list \u003d\u003d container_list,"},{"line_number":263,"context_line":"                        \"container list does not match prefix expectation\")"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    @test.idempotent_id(\u0027635c3177-a5a4-4344-b41d-0c333b7cb5cf\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_cab85cca","line":262,"updated":"2016-04-23 17:08:40.000000000","message":"self.assertEqual works here too. You get more meaningful failure message.","commit_id":"9c96a845ef9c41186039c90d199fc98829792968"},{"author":{"_account_id":20553,"name":"Brian Ober","email":"bober@us.ibm.com","username":"ober37"},"change_message_id":"a59845e4fecf34465f4fe9e798b9398d53de2b9d","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            c for c in self.containers if c.startswith(prefix)"},{"line_number":260,"context_line":"        ]"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        self.assertTrue(expected_list \u003d\u003d container_list,"},{"line_number":263,"context_line":"                        \"container list does not match prefix expectation\")"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    @test.idempotent_id(\u0027635c3177-a5a4-4344-b41d-0c333b7cb5cf\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_05852706","line":262,"in_reply_to":"1a122d0e_cab85cca","updated":"2016-04-23 20:01:05.000000000","message":"Sure, will fix this.","commit_id":"9c96a845ef9c41186039c90d199fc98829792968"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ca3ead6d6aa5ece2b50b12717e87af0c5141ca3e","unresolved":false,"context_lines":[{"line_number":263,"context_line":"                        \"container list does not match prefix expectation\")"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    @test.idempotent_id(\u0027635c3177-a5a4-4344-b41d-0c333b7cb5cf\u0027)"},{"line_number":266,"context_line":"    def test_list_containers_with_unmatched_prefix(self):"},{"line_number":267,"context_line":"        prefix \u003d \u0027bad\u0027"},{"line_number":268,"context_line":"        params \u003d {\u0027prefix\u0027: prefix}"},{"line_number":269,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_cadfbc0a","line":266,"updated":"2016-04-23 17:08:40.000000000","message":"Maybe this test would be better in test_container_services.py","commit_id":"9c96a845ef9c41186039c90d199fc98829792968"},{"author":{"_account_id":20553,"name":"Brian Ober","email":"bober@us.ibm.com","username":"ober37"},"change_message_id":"a59845e4fecf34465f4fe9e798b9398d53de2b9d","unresolved":false,"context_lines":[{"line_number":263,"context_line":"                        \"container list does not match prefix expectation\")"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    @test.idempotent_id(\u0027635c3177-a5a4-4344-b41d-0c333b7cb5cf\u0027)"},{"line_number":266,"context_line":"    def test_list_containers_with_unmatched_prefix(self):"},{"line_number":267,"context_line":"        prefix \u003d \u0027bad\u0027"},{"line_number":268,"context_line":"        params \u003d {\u0027prefix\u0027: prefix}"},{"line_number":269,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_e5874b10","line":266,"in_reply_to":"1a122d0e_cadfbc0a","updated":"2016-04-23 20:01:05.000000000","message":"See earlier comment.","commit_id":"9c96a845ef9c41186039c90d199fc98829792968"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ca3ead6d6aa5ece2b50b12717e87af0c5141ca3e","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        self.assertHeaders(resp, \u0027Account\u0027, \u0027GET\u0027)"},{"line_number":274,"context_line":"        self.assertEqual(resp.status, 204)"},{"line_number":275,"context_line":"        self.assertEqual(resp[\u0027content-length\u0027], \u00270\u0027)"},{"line_number":276,"context_line":"        self.assertEqual(len(container_list), 0,"},{"line_number":277,"context_line":"                         \"Expecting empty response body\")"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_0ab374ea","line":276,"updated":"2016-04-23 17:08:40.000000000","message":"self.assertEmpty would be optimal here :)","commit_id":"9c96a845ef9c41186039c90d199fc98829792968"},{"author":{"_account_id":20553,"name":"Brian Ober","email":"bober@us.ibm.com","username":"ober37"},"change_message_id":"a59845e4fecf34465f4fe9e798b9398d53de2b9d","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        self.assertHeaders(resp, \u0027Account\u0027, \u0027GET\u0027)"},{"line_number":274,"context_line":"        self.assertEqual(resp.status, 204)"},{"line_number":275,"context_line":"        self.assertEqual(resp[\u0027content-length\u0027], \u00270\u0027)"},{"line_number":276,"context_line":"        self.assertEqual(len(container_list), 0,"},{"line_number":277,"context_line":"                         \"Expecting empty response body\")"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_657cdb20","line":276,"in_reply_to":"1a122d0e_0ab374ea","updated":"2016-04-23 20:01:05.000000000","message":"Good suggestion, will this this as well.","commit_id":"9c96a845ef9c41186039c90d199fc98829792968"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"ca3ead6d6aa5ece2b50b12717e87af0c5141ca3e","unresolved":false,"context_lines":[{"line_number":306,"context_line":""},{"line_number":307,"context_line":"        metadata \u003d {\u0027test_account_meta1\u0027: \u0027Meta1\u0027,"},{"line_number":308,"context_line":"                    \u0027test_account_meta2\u0027: \u0027Meta2\u0027}"},{"line_number":309,"context_line":"        resp, _ \u003d self.account_client.create_account_metadata(metadata)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        resp, _ \u003d self.account_client.list_account_metadata()"},{"line_number":312,"context_line":"        self.assertHeaders(resp, \u0027Account\u0027, \u0027HEAD\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_4acc4c61","line":309,"updated":"2016-04-23 17:08:40.000000000","message":"If you don\"t care about the reply then maybe just do:\n\n  self.account_client.create_account_metadata(metadata)","commit_id":"9c96a845ef9c41186039c90d199fc98829792968"},{"author":{"_account_id":20553,"name":"Brian Ober","email":"bober@us.ibm.com","username":"ober37"},"change_message_id":"a59845e4fecf34465f4fe9e798b9398d53de2b9d","unresolved":false,"context_lines":[{"line_number":306,"context_line":""},{"line_number":307,"context_line":"        metadata \u003d {\u0027test_account_meta1\u0027: \u0027Meta1\u0027,"},{"line_number":308,"context_line":"                    \u0027test_account_meta2\u0027: \u0027Meta2\u0027}"},{"line_number":309,"context_line":"        resp, _ \u003d self.account_client.create_account_metadata(metadata)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        resp, _ \u003d self.account_client.list_account_metadata()"},{"line_number":312,"context_line":"        self.assertHeaders(resp, \u0027Account\u0027, \u0027HEAD\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_85713747","line":309,"in_reply_to":"1a122d0e_4acc4c61","updated":"2016-04-23 20:01:05.000000000","message":"Yep.  Will fix.","commit_id":"9c96a845ef9c41186039c90d199fc98829792968"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"7def5c4666f2b422e496f77604f14a14c2862b11","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def test_create_existing_account(self):"},{"line_number":61,"context_line":"        resp, extensions \u003d self.account_client.list_extensions()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        account_management \u003d extensions[\u0027swift\u0027][\u0027allow_account_management\u0027]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        if account_management:"},{"line_number":66,"context_line":"            resp, body \u003d self.account_client.put(\u0027\u0027, None, {})"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_453a6899","line":63,"updated":"2016-04-25 13:59:59.000000000","message":"Is it possible that the \"allow_account_management\" extension will not be enabled in some environments and in this case we will get the KeyError exception here? Or this key is always present and if allow_account_management is disabled, extensions[\u0027swift\u0027][\u0027allow_account_management\u0027] \u003d\u003d False?","commit_id":"e598d98fc838d450a94772e64587e02a7c8f9d2d"},{"author":{"_account_id":20553,"name":"Brian Ober","email":"bober@us.ibm.com","username":"ober37"},"change_message_id":"73cc80b5d9cb719b0bc1d7ab2a53da44bc23b0ee","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def test_create_existing_account(self):"},{"line_number":61,"context_line":"        resp, extensions \u003d self.account_client.list_extensions()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        account_management \u003d extensions[\u0027swift\u0027][\u0027allow_account_management\u0027]"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        if account_management:"},{"line_number":66,"context_line":"            resp, body \u003d self.account_client.put(\u0027\u0027, None, {})"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_e4a8cd79","line":63,"in_reply_to":"1a122d0e_453a6899","updated":"2016-04-25 19:57:58.000000000","message":"I\u0027ll fix this.","commit_id":"e598d98fc838d450a94772e64587e02a7c8f9d2d"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"7def5c4666f2b422e496f77604f14a14c2862b11","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        ]"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        self.assertEqual(expected_list, container_list,"},{"line_number":263,"context_line":"                         \"container list does not match prefix expectation\")"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    @test.idempotent_id(\u0027635c3177-a5a4-4344-b41d-0c333b7cb5cf\u0027)"},{"line_number":266,"context_line":"    def test_list_containers_with_unmatched_prefix(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_25a00c9f","line":263,"range":{"start_line":263,"start_character":26,"end_line":263,"end_character":27},"updated":"2016-04-25 13:59:59.000000000","message":"c -\u003e C","commit_id":"e598d98fc838d450a94772e64587e02a7c8f9d2d"},{"author":{"_account_id":20553,"name":"Brian Ober","email":"bober@us.ibm.com","username":"ober37"},"change_message_id":"73cc80b5d9cb719b0bc1d7ab2a53da44bc23b0ee","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        ]"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        self.assertEqual(expected_list, container_list,"},{"line_number":263,"context_line":"                         \"container list does not match prefix expectation\")"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    @test.idempotent_id(\u0027635c3177-a5a4-4344-b41d-0c333b7cb5cf\u0027)"},{"line_number":266,"context_line":"    def test_list_containers_with_unmatched_prefix(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_44b6e1dc","line":263,"range":{"start_line":263,"start_character":26,"end_line":263,"end_character":27},"in_reply_to":"1a122d0e_25a00c9f","updated":"2016-04-25 19:57:58.000000000","message":"Fixed.","commit_id":"e598d98fc838d450a94772e64587e02a7c8f9d2d"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"7def5c4666f2b422e496f77604f14a14c2862b11","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        self.assertHeaders(resp, \u0027Account\u0027, \u0027GET\u0027)"},{"line_number":274,"context_line":"        self.assertEqual(resp.status, 204)"},{"line_number":275,"context_line":"        self.assertEqual(resp[\u0027content-length\u0027], \u00270\u0027)"},{"line_number":276,"context_line":"        self.assertEmpty(container_list, \"Expecting empty response body\")"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":279,"context_line":"    @test.idempotent_id(\u00274894c312-6056-4587-8d6f-86ffbf861f80\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_05723049","line":276,"range":{"start_line":276,"start_character":58,"end_line":276,"end_character":71},"updated":"2016-04-25 13:59:59.000000000","message":"I think it would be better to use \"Expecting empty container list\" here.","commit_id":"e598d98fc838d450a94772e64587e02a7c8f9d2d"},{"author":{"_account_id":20553,"name":"Brian Ober","email":"bober@us.ibm.com","username":"ober37"},"change_message_id":"73cc80b5d9cb719b0bc1d7ab2a53da44bc23b0ee","unresolved":false,"context_lines":[{"line_number":273,"context_line":"        self.assertHeaders(resp, \u0027Account\u0027, \u0027GET\u0027)"},{"line_number":274,"context_line":"        self.assertEqual(resp.status, 204)"},{"line_number":275,"context_line":"        self.assertEqual(resp[\u0027content-length\u0027], \u00270\u0027)"},{"line_number":276,"context_line":"        self.assertEmpty(container_list, \"Expecting empty response body\")"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":279,"context_line":"    @test.idempotent_id(\u00274894c312-6056-4587-8d6f-86ffbf861f80\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_24b925cc","line":276,"range":{"start_line":276,"start_character":58,"end_line":276,"end_character":71},"in_reply_to":"1a122d0e_05723049","updated":"2016-04-25 19:57:58.000000000","message":"Sure, fixed.","commit_id":"e598d98fc838d450a94772e64587e02a7c8f9d2d"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"7def5c4666f2b422e496f77604f14a14c2862b11","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        self.account_client.create_account_metadata(metadata)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        resp, _ \u003d self.account_client.list_account_metadata()"},{"line_number":311,"context_line":"        self.assertHeaders(resp, \u0027Account\u0027, \u0027HEAD\u0027)"},{"line_number":312,"context_line":"        self.assertIn(\u0027x-account-meta-test-account-meta1\u0027, resp)"},{"line_number":313,"context_line":"        self.assertIn(\u0027x-account-meta-test-account-meta2\u0027, resp)"},{"line_number":314,"context_line":"        self.account_client.delete_account_metadata(metadata)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_25dc8c11","line":311,"updated":"2016-04-25 13:59:59.000000000","message":"If we have a failure here, the created account metadata will not be deleted. I think we need self.addCleanup() here.\n\n\nself.account_client.create_account_metadata(metadata)\nself.addCleanup(self.account_client.delete_account_metadata, metadata)","commit_id":"e598d98fc838d450a94772e64587e02a7c8f9d2d"},{"author":{"_account_id":20553,"name":"Brian Ober","email":"bober@us.ibm.com","username":"ober37"},"change_message_id":"73cc80b5d9cb719b0bc1d7ab2a53da44bc23b0ee","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        self.account_client.create_account_metadata(metadata)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        resp, _ \u003d self.account_client.list_account_metadata()"},{"line_number":311,"context_line":"        self.assertHeaders(resp, \u0027Account\u0027, \u0027HEAD\u0027)"},{"line_number":312,"context_line":"        self.assertIn(\u0027x-account-meta-test-account-meta1\u0027, resp)"},{"line_number":313,"context_line":"        self.assertIn(\u0027x-account-meta-test-account-meta2\u0027, resp)"},{"line_number":314,"context_line":"        self.account_client.delete_account_metadata(metadata)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_84e759e3","line":311,"in_reply_to":"1a122d0e_25dc8c11","updated":"2016-04-25 19:57:58.000000000","message":"I am not sure I agree on the scenario.   The account itself is cleaned up as part of the test framework and I clean up the metadata at the end of this case.   This is consistent with the other metadata cases in the account services and I do think the container servies even both deleting the metadata at all.\n\nI am not sure why this change is needed uniquely to this case...   Can you elaborate?","commit_id":"e598d98fc838d450a94772e64587e02a7c8f9d2d"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"7def5c4666f2b422e496f77604f14a14c2862b11","unresolved":false,"context_lines":[{"line_number":388,"context_line":"    def test_account_method_options(self):"},{"line_number":389,"context_line":"        resp, body \u003d self.account_client.list_extensions()"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        if (body[\u0027swift\u0027][\u0027allow_account_management\u0027] is True):"},{"line_number":392,"context_line":"            allow_str \u003d \u0027HEAD, GET, PUT, POST, OPTIONS, DELETE\u0027"},{"line_number":393,"context_line":"        else:"},{"line_number":394,"context_line":"            allow_str \u003d \u0027HEAD, GET, POST, OPTIONS\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_800c6e3c","line":391,"range":{"start_line":391,"start_character":61,"end_line":391,"end_character":62},"updated":"2016-04-25 13:59:59.000000000","message":"Parentheses are redundant.","commit_id":"e598d98fc838d450a94772e64587e02a7c8f9d2d"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"6c32507a4022a206d0656e6bc75b62bb43c9fc73","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        resp, body \u003d self.account_client.list_extensions()"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        # Check to see if Swift provided this information in /info"},{"line_number":398,"context_line":"        if \u0027swift\u0027 in body and \\"},{"line_number":399,"context_line":"            \u0027allow_account_management\u0027 in body[\u0027swift\u0027]:"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"            if body[\u0027swift\u0027][\u0027allow_account_management\u0027] is True:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_d8b3e94b","line":398,"updated":"2016-04-26 08:35:19.000000000","message":"If \u0027swift\u0027 is not in \u0027body\u0027 then \u0027allow_str\u0027 will not be defined. So L409 is going to raise an exception.","commit_id":"325970d69a078928110da200eb5db085c1aff9dd"},{"author":{"_account_id":20553,"name":"Brian Ober","email":"bober@us.ibm.com","username":"ober37"},"change_message_id":"496e1a8ca725af959fbc563f44db8fb31833a4fa","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        resp, body \u003d self.account_client.list_extensions()"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"        # Check to see if Swift provided this information in /info"},{"line_number":398,"context_line":"        if \u0027swift\u0027 in body and \\"},{"line_number":399,"context_line":"            \u0027allow_account_management\u0027 in body[\u0027swift\u0027]:"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"            if body[\u0027swift\u0027][\u0027allow_account_management\u0027] is True:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a122d0e_c52661cd","line":398,"in_reply_to":"1a122d0e_d8b3e94b","updated":"2016-04-26 11:35:22.000000000","message":"nice catch, I\u0027ll fix.\n\nI am going to redo some of this case in the condition where we cannot determine if this capability is enabled or not because it has been disallowed from /info.\n\nMy current thought was that if it was disallowed, treat it as disabled, but this is a bad assumption.   It\u0027s quite possible that the data was disallowed, but yet Swift has this capability turned on and in this scenario this test case will fail.\n\nSo, I am going to fix your comments and adjust this later scenario to be more robust.","commit_id":"325970d69a078928110da200eb5db085c1aff9dd"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"5129096cfb785cbade8cddde094c601845d6609e","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        super(AccountTest, cls).resource_cleanup()"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @test.idempotent_id(\u00277a04508b-11af-433d-ad12-6b43b7d549a3\u0027)"},{"line_number":57,"context_line":"    @testtools.skipIf("},{"line_number":58,"context_line":"        not CONF.object_storage_feature_enabled.discoverability,"},{"line_number":59,"context_line":"        \u0027Discoverability function is disabled\u0027)"},{"line_number":60,"context_line":"    def test_create_existing_account(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a122d0e_9dc5350c","line":57,"updated":"2016-05-03 08:47:08.000000000","message":"skipUnless is more readable in that case.","commit_id":"b8107952161f790ada3086aeae04c2f67f7492ac"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"5129096cfb785cbade8cddde094c601845d6609e","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        self.account_client.delete_account_metadata(metadata_2)"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"    @test.idempotent_id(\u00277e31bb6d-0a40-47a7-8491-c08eeb589e68\u0027)"},{"line_number":391,"context_line":"    @testtools.skipIf("},{"line_number":392,"context_line":"        not CONF.object_storage_feature_enabled.discoverability,"},{"line_number":393,"context_line":"        \u0027Discoverability function is disabled\u0027)"},{"line_number":394,"context_line":"    def test_account_method_options(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a122d0e_bda2b149","line":391,"updated":"2016-05-03 08:47:08.000000000","message":"Same","commit_id":"b8107952161f790ada3086aeae04c2f67f7492ac"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"278afa236d15bf903400af62784d4f43727077b1","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                self.assertHeaders(resp, \u0027Account\u0027, \u0027PUT\u0027)"},{"line_number":72,"context_line":"                self.assertEqual(resp.status, 202)"},{"line_number":73,"context_line":"            else:"},{"line_number":74,"context_line":"                self.skip(\u0027Account management disabled\u0027)"},{"line_number":75,"context_line":"        else:"},{"line_number":76,"context_line":"            self.skip(\u0027Account management capability unknown\u0027)"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"dab17558_80e6ce12","line":74,"updated":"2016-05-10 21:42:13.000000000","message":"The API based skipping is not correct here. Tempest doesn\u0027t rely on the API response to make any skip decision, it has to be base on configuration, this is why the requires_ext decorator exists.","commit_id":"e08e029a4dd616746e5eaf78d7f05610ac57464a"},{"author":{"_account_id":9622,"name":"Cindy Lu","email":"clu@us.ibm.com","username":"clu14"},"change_message_id":"7ab315c2a74b54062fe27367f9805b37a6181b07","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    @test.requires_ext(extension\u003d\u0027allow_account_management\u0027, service\u003d\u0027object\u0027)"},{"line_number":58,"context_line":"    def test_create_existing_account(self):"},{"line_number":59,"context_line":"        # Issue a PUT on the existing account"},{"line_number":60,"context_line":"        resp, _ \u003d self.account_client.put(\u0027\u0027, None, {})"},{"line_number":61,"context_line":"        self.assertHeaders(resp, \u0027Account\u0027, \u0027PUT\u0027)"},{"line_number":62,"context_line":"        self.assertEqual(resp.status, 202)"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"3ac371cc_c3e9edb8","line":60,"updated":"2016-08-18 01:16:56.000000000","message":"put is not a method","commit_id":"0ef37bf7a1087070a14436f1c793e8e302358b29"}],"tempest/api/object_storage/test_account_services_negative.py":[{"author":{"_account_id":12024,"name":"Tong Liu","email":"tongl@vmware.com","username":"tong101"},"change_message_id":"f653fcce2b1f15b936ba680cd436aa6ad26903f5","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":59,"context_line":"    @test.idempotent_id(\u00273ce8911d-560d-42df-b89d-d1e066619e2c\u0027)"},{"line_number":60,"context_line":"    def test_account_method_not_allowed(self):"},{"line_number":61,"context_line":"        self.assertRaises(lib_exc.MethodNotAllowed, self.account_client.request, "},{"line_number":62,"context_line":"            \u0027PATCH\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_8765ffe2","line":61,"updated":"2016-04-15 18:11:53.000000000","message":"trailing space","commit_id":"59bd02e30eaede1ee2e575d68829a2af80e67f7c"}],"tempest/lib/common/rest_client.py":[{"author":{"_account_id":12024,"name":"Tong Liu","email":"tongl@vmware.com","username":"tong101"},"change_message_id":"f653fcce2b1f15b936ba680cd436aa6ad26903f5","unresolved":false,"context_lines":[{"line_number":696,"context_line":"        if resp.status \u003d\u003d 405:"},{"line_number":697,"context_line":"          if parse_resp:"},{"line_number":698,"context_line":"            resp_body \u003d self._parse_resp(resp_body)"},{"line_number":699,"context_line":"          raise exceptions.MethodNotAllowed(resp_body, resp\u003dresp)"},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"        if resp.status \u003d\u003d 400:"},{"line_number":702,"context_line":"            if parse_resp:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_67570303","line":699,"updated":"2016-04-15 18:11:53.000000000","message":"Please use 4 spaces","commit_id":"59bd02e30eaede1ee2e575d68829a2af80e67f7c"}]}
