)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"abd4e4817bcbf5c47334154521521562d0bda5b3","unresolved":false,"context_lines":[{"line_number":15,"context_line":"unpause and resume done as regular step instead of using the  addCleanUp"},{"line_number":16,"context_line":"in the test_servers_negative.py,"},{"line_number":17,"context_line":"because the methods added by the addClenaUp just runs after the"},{"line_number":18,"context_line":"tearDonw() method."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I38cf8649de9eab2f50bf49b4decc1527e22e29ea"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAATn%2F%2B%2Bfg%3D","line":18,"updated":"2013-11-17 06:54:14.000000000","message":"tearDown()\n\nit\u0027s confused. \nIn unittest document, it said the methods added by addCleanup run **after** tearDown.\nhttp://docs.python.org/2/library/unittest.html#unittest.TestCase\n\nIn testtools document, it said the methods added by addCleanup run **before** tearDown.\nhttp://testtools.readthedocs.org/en/latest/for-test-authors.html#addcleanup\n\nActually,  I test it in tempest, the methods added by addCleanup run **after** tearDown.","commit_id":"8fd987bb7919928319a34348a190924535c13338"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"f321e6a2edf78bdef29c22acdd16f4d7ee934ba9","unresolved":false,"context_lines":[{"line_number":17,"context_line":"In the past this kind of issues fixed silently by the setUp."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Several addCleanUp converted to normal cleanup operations,"},{"line_number":20,"context_line":"because the methods added by the addClenaUp just runs after the"},{"line_number":21,"context_line":"tearDonw() method."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I38cf8649de9eab2f50bf49b4decc1527e22e29ea"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"AAAAXH%2F%2FXiM%3D","line":20,"updated":"2014-04-22 09:45:24.000000000","message":"I think it\u0027s misprint. May you fix it?","commit_id":"c4fb9d813cf286275838e58ad02b29b25d307ab0"}],"tempest/api/compute/base.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"58e76d0d75412a3619d40da0db09f0844c61576c","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                pass"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    @classmethod"},{"line_number":96,"context_line":"    def check_server_noisy(cls, **kwargs):"},{"line_number":97,"context_line":"        # Destroy an existing server and creates a new one"},{"line_number":98,"context_line":"        if getattr(cls, \u0027server_id\u0027, None) is not None:"},{"line_number":99,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2Fsvo%3D","line":96,"updated":"2014-03-14 12:17:40.000000000","message":"this is a very non descriptive function name, we need to be clearer than that.","commit_id":"8faeb4d25f930447cf9fd8487860b430b0dd2965"}],"tempest/api/compute/servers/test_server_actions.py":[{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"f321e6a2edf78bdef29c22acdd16f4d7ee934ba9","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def tearDown(self):"},{"line_number":46,"context_line":"        _, server \u003d self.client.get_server(self.server_id)"},{"line_number":47,"context_line":"        self.assertEqual(server[\u0027image\u0027][\u0027id\u0027], self.image_ref)"},{"line_number":48,"context_line":"        self.server_check_teardown()"},{"line_number":49,"context_line":"        super(ServerActionsTestJSON, self).tearDown()"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAXH%2F%2FXSs%3D","line":47,"updated":"2014-04-22 09:45:24.000000000","message":"Please, swap arguments in assertEqual. This class is derived from testUtils.TestCase which have method assertEqual with signature assertEqual(self, expected, observed).\nAlso if test message has more than 80 letters, assertEqual fail message has format \"expected: %s, observed: %s\". in this case you assertEqual may mislead.","commit_id":"c4fb9d813cf286275838e58ad02b29b25d307ab0"}],"tempest/api/compute/v3/servers/test_server_actions.py":[{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"f321e6a2edf78bdef29c22acdd16f4d7ee934ba9","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def tearDown(self):"},{"line_number":43,"context_line":"        _, server \u003d self.client.get_server(self.server_id)"},{"line_number":44,"context_line":"        self.assertEqual(server[\u0027image\u0027][\u0027id\u0027], self.image_ref)"},{"line_number":45,"context_line":"        self.server_check_teardown()"},{"line_number":46,"context_line":"        super(ServerActionsV3Test, self).tearDown()"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAXH%2F%2FXSU%3D","line":44,"updated":"2014-04-22 09:45:24.000000000","message":"ditto","commit_id":"c4fb9d813cf286275838e58ad02b29b25d307ab0"}]}
