)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"7effcd0e698d42ae8c7470db297a65464feda361","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Joe H. Rahme \u003cjoe.hakim.rahme@enovance.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-12-12 22:19:20 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Searate negative tests for Swift"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Move negative tests in Swift to their own file."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9TR8%3D","line":7,"updated":"2013-12-12 21:25:24.000000000","message":"Perhaps separate?","commit_id":"678fef75ef596bc03521067ad9c67bf337225077"}],"tempest/api/object_storage/test_account_quotas_negative.py":[{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"3133b6a6d0dca47d5b857733cd6a504d3ae8e943","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from tempest.test import attr"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class AccountQuotasTestNegative(base.BaseObjectTest):"},{"line_number":28,"context_line":"    accounts_quotas_available \u003d \\"},{"line_number":29,"context_line":"        config.TempestConfig().object_storage_feature_enabled.accounts_quotas"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9J0o%3D","line":27,"updated":"2013-12-16 09:06:58.000000000","message":"I think the class name should be :\nAccountQuotasNegativeTest.","commit_id":"2d97f823f501541f26385cd3bb77b2d0b357e630"},{"author":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"change_message_id":"064cffe1cb5a06d23dfdc03557775533449e3a83","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from tempest.test import attr"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class AccountQuotasTestNegative(base.BaseObjectTest):"},{"line_number":28,"context_line":"    accounts_quotas_available \u003d \\"},{"line_number":29,"context_line":"        config.TempestConfig().object_storage_feature_enabled.accounts_quotas"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F87VA%3D","line":27,"in_reply_to":"AAAATn%2F9J0o%3D","updated":"2013-12-18 17:39:29.000000000","message":"Done","commit_id":"2d97f823f501541f26385cd3bb77b2d0b357e630"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"25bc291fec3208143e622701e4a11817ce30f254","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        cls.os_reselleradmin \u003d clients.Manager("},{"line_number":40,"context_line":"            cls.data.test_user,"},{"line_number":41,"context_line":"            cls.data.test_password,"},{"line_number":42,"context_line":"            cls.data.test_tenant)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        # Retrieve the ResellerAdmin role id"},{"line_number":45,"context_line":"        reseller_role_id \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2F%2F9Q%3D","line":42,"updated":"2013-12-25 05:49:59.000000000","message":"Is this os_reselleradmin necessary?\nThat seems unused.","commit_id":"15718572107ac37c57763cc81c621f5486c6a05d"},{"author":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"change_message_id":"ab57e9a3a7b0e122ac43f280f011ec8dfe2596e8","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        cls.os_reselleradmin \u003d clients.Manager("},{"line_number":40,"context_line":"            cls.data.test_user,"},{"line_number":41,"context_line":"            cls.data.test_password,"},{"line_number":42,"context_line":"            cls.data.test_tenant)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        # Retrieve the ResellerAdmin role id"},{"line_number":45,"context_line":"        reseller_role_id \u003d None"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2F5yM%3D","line":42,"in_reply_to":"AAAAT3%2F%2F%2F9Q%3D","updated":"2013-12-27 13:34:08.000000000","message":"Done. I\u0027ve also done the same for the positive tests.","commit_id":"15718572107ac37c57763cc81c621f5486c6a05d"}],"tempest/api/object_storage/test_account_services_negative.py":[{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"3133b6a6d0dca47d5b857733cd6a504d3ae8e943","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest.test import attr"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class AccountTestNegative(base.BaseObjectTest):"},{"line_number":26,"context_line":"    @classmethod"},{"line_number":27,"context_line":"    def setUpClass(cls):"},{"line_number":28,"context_line":"        super(AccountTestNegative, cls).setUpClass()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9J0c%3D","line":25,"updated":"2013-12-16 09:06:58.000000000","message":"Make it AccountNegativeTest","commit_id":"2d97f823f501541f26385cd3bb77b2d0b357e630"},{"author":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"change_message_id":"064cffe1cb5a06d23dfdc03557775533449e3a83","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tempest.test import attr"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class AccountTestNegative(base.BaseObjectTest):"},{"line_number":26,"context_line":"    @classmethod"},{"line_number":27,"context_line":"    def setUpClass(cls):"},{"line_number":28,"context_line":"        super(AccountTestNegative, cls).setUpClass()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F87U0%3D","line":25,"in_reply_to":"AAAATn%2F9J0c%3D","updated":"2013-12-18 17:39:29.000000000","message":"Done","commit_id":"2d97f823f501541f26385cd3bb77b2d0b357e630"},{"author":{"_account_id":6889,"name":"Fabien Boucher","email":"fboucher@redhat.com","username":"fabien-boucher"},"change_message_id":"78f86f67dcd8405cedeb44bc2800317d668902ef","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            name \u003d data_utils.rand_name(name\u003d\u0027%s-\u0027 % chr(i))"},{"line_number":32,"context_line":"            cls.container_client.create_container(name)"},{"line_number":33,"context_line":"            cls.containers.append(name)"},{"line_number":34,"context_line":"        cls.containers_count \u003d len(cls.containers)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @classmethod"},{"line_number":37,"context_line":"    def tearDownClass(cls):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9C1s%3D","line":34,"updated":"2013-12-17 11:39:47.000000000","message":"containers_count is not used after.","commit_id":"2d97f823f501541f26385cd3bb77b2d0b357e630"},{"author":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"change_message_id":"064cffe1cb5a06d23dfdc03557775533449e3a83","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            name \u003d data_utils.rand_name(name\u003d\u0027%s-\u0027 % chr(i))"},{"line_number":32,"context_line":"            cls.container_client.create_container(name)"},{"line_number":33,"context_line":"            cls.containers.append(name)"},{"line_number":34,"context_line":"        cls.containers_count \u003d len(cls.containers)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @classmethod"},{"line_number":37,"context_line":"    def tearDownClass(cls):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F87Uw%3D","line":34,"in_reply_to":"AAAATn%2F9C1s%3D","updated":"2013-12-18 17:39:29.000000000","message":"Done","commit_id":"2d97f823f501541f26385cd3bb77b2d0b357e630"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"25bc291fec3208143e622701e4a11817ce30f254","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        for i in xrange(ord(\u0027a\u0027), ord(\u0027f\u0027) + 1):"},{"line_number":31,"context_line":"            name \u003d data_utils.rand_name(name\u003d\u0027%s-\u0027 % chr(i))"},{"line_number":32,"context_line":"            cls.container_client.create_container(name)"},{"line_number":33,"context_line":"            cls.containers.append(name)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @classmethod"},{"line_number":36,"context_line":"    def tearDownClass(cls):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2F%2F9I%3D","line":33,"updated":"2013-12-25 05:49:59.000000000","message":"Can we remove this container creation?\n\ntest_list_containers_with_non_authorized_user is a test for user authorization. That could test even if there is not container.","commit_id":"15718572107ac37c57763cc81c621f5486c6a05d"},{"author":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"change_message_id":"ab57e9a3a7b0e122ac43f280f011ec8dfe2596e8","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        for i in xrange(ord(\u0027a\u0027), ord(\u0027f\u0027) + 1):"},{"line_number":31,"context_line":"            name \u003d data_utils.rand_name(name\u003d\u0027%s-\u0027 % chr(i))"},{"line_number":32,"context_line":"            cls.container_client.create_container(name)"},{"line_number":33,"context_line":"            cls.containers.append(name)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @classmethod"},{"line_number":36,"context_line":"    def tearDownClass(cls):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2F5yE%3D","line":33,"in_reply_to":"AAAAT3%2F%2F%2F9I%3D","updated":"2013-12-27 13:34:08.000000000","message":"I don\u0027t necessarily agree. I understand your point of view, but I think that creating the container ensures a more strict testing and will be more flexible (and correct) in case of future changes.\n\nIn any case, if this should be changed, I feel it should be done in a separate patch where we could concentrate on this point specifically.","commit_id":"15718572107ac37c57763cc81c621f5486c6a05d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"3f566592239b4200d85913876e35d009bcfaf955","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        for i in xrange(ord(\u0027a\u0027), ord(\u0027f\u0027) + 1):"},{"line_number":31,"context_line":"            name \u003d data_utils.rand_name(name\u003d\u0027%s-\u0027 % chr(i))"},{"line_number":32,"context_line":"            cls.container_client.create_container(name)"},{"line_number":33,"context_line":"            cls.containers.append(name)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @classmethod"},{"line_number":36,"context_line":"    def tearDownClass(cls):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FUCE%3D","line":33,"in_reply_to":"AAAAT3%2F%2F5yE%3D","updated":"2014-01-15 06:09:13.000000000","message":"Hi Rahme,\n\nSorry for my late response,\n\nMy concern is that if an error happens in setUpClass(), the created containers remain because tearDownClass() is not called.\nThat mean some testing elements remain in production environment if the test fails.\n\nSo I hope we avoid creating elements if they are not necessary now.","commit_id":"15718572107ac37c57763cc81c621f5486c6a05d"},{"author":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"change_message_id":"9017d4eb46ce1de86d9d52f775f3776b8987cee1","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        for i in xrange(ord(\u0027a\u0027), ord(\u0027f\u0027) + 1):"},{"line_number":31,"context_line":"            name \u003d data_utils.rand_name(name\u003d\u0027%s-\u0027 % chr(i))"},{"line_number":32,"context_line":"            cls.container_client.create_container(name)"},{"line_number":33,"context_line":"            cls.containers.append(name)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @classmethod"},{"line_number":36,"context_line":"    def tearDownClass(cls):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2BiqA%3D","line":33,"in_reply_to":"AAAAUH%2F%2FUCE%3D","updated":"2014-01-24 16:46:23.000000000","message":"Done","commit_id":"15718572107ac37c57763cc81c621f5486c6a05d"}]}
