)]}'
{"ironic_inspector_client/test/functional.py":[{"author":{"_account_id":18653,"name":"Milan Kováčik","email":"mkovacik@redhat.com","username":"dparalen"},"change_message_id":"64df8aec02de6526f5458337e8fb9fb0b4c8944d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        self.assertEqual({\u0027finished\u0027: True, \u0027error\u0027: None}, status)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def test_wait_for_finish(self):"},{"line_number":54,"context_line":"        shared \u003d [0]  # mutable structure to hold number of retries"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        def fake_waiter(delay):"},{"line_number":57,"context_line":"            shared[0] +\u003d 1"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ac06dbe_9594b5e2","line":54,"range":{"start_line":54,"start_character":8,"end_line":54,"end_character":20},"updated":"2016-08-22 09:42:37.000000000","message":"could you please elaborate why this has to be a mutable thing?","commit_id":"a987c25046db32894d78421c01c904acacdf4020"},{"author":{"_account_id":18653,"name":"Milan Kováčik","email":"mkovacik@redhat.com","username":"dparalen"},"change_message_id":"cf25ff4ba3662737192dcad83a22361fb7356083","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        self.assertEqual({\u0027finished\u0027: True, \u0027error\u0027: None}, status)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def test_wait_for_finish(self):"},{"line_number":54,"context_line":"        shared \u003d [0]  # mutable structure to hold number of retries"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        def fake_waiter(delay):"},{"line_number":57,"context_line":"            shared[0] +\u003d 1"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ac06dbe_d64c5c44","line":54,"range":{"start_line":54,"start_character":8,"end_line":54,"end_character":20},"in_reply_to":"1ac06dbe_5550785d","updated":"2016-08-22 15:46:48.000000000","message":"interesting, didn\u0027t know about this, thx!","commit_id":"a987c25046db32894d78421c01c904acacdf4020"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5b1fc35b2930fcdf09eba218e90c1c1dc83354ac","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        self.assertEqual({\u0027finished\u0027: True, \u0027error\u0027: None}, status)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def test_wait_for_finish(self):"},{"line_number":54,"context_line":"        shared \u003d [0]  # mutable structure to hold number of retries"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        def fake_waiter(delay):"},{"line_number":57,"context_line":"            shared[0] +\u003d 1"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ac06dbe_5550785d","line":54,"range":{"start_line":54,"start_character":8,"end_line":54,"end_character":20},"in_reply_to":"1ac06dbe_9594b5e2","updated":"2016-08-22 10:53:54.000000000","message":"Because of how Python closures work. If I use a plain value, it will become a local variable in fake_waiter instead.","commit_id":"a987c25046db32894d78421c01c904acacdf4020"},{"author":{"_account_id":18653,"name":"Milan Kováčik","email":"mkovacik@redhat.com","username":"dparalen"},"change_message_id":"64df8aec02de6526f5458337e8fb9fb0b4c8944d","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                self.assertEqual({\u0027uuid\u0027: self.uuid}, res)"},{"line_number":62,"context_line":"            elif shared[0] \u003e 2:"},{"line_number":63,"context_line":"                # Just wait afterwards"},{"line_number":64,"context_line":"                eventlet.greenthread.sleep(functional.DEFAULT_SLEEP)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        self.client.introspect(self.uuid)"},{"line_number":67,"context_line":"        eventlet.greenthread.sleep(functional.DEFAULT_SLEEP)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ac06dbe_3047cf1e","line":64,"range":{"start_line":64,"start_character":43,"end_line":64,"end_character":67},"updated":"2016-08-22 09:42:37.000000000","message":"This might be misleading and it renders the delay param an unused variable, better maybe:\n\n    eventlet.greenthread.sleep(delay)\n\n...what is also in line with the sleep_function call in the client library[1]\n\n[1] https://github.com/openstack/python-ironic-inspector-client/blob/master/ironic_inspector_client/v1.py#L146","commit_id":"a987c25046db32894d78421c01c904acacdf4020"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5b1fc35b2930fcdf09eba218e90c1c1dc83354ac","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                self.assertEqual({\u0027uuid\u0027: self.uuid}, res)"},{"line_number":62,"context_line":"            elif shared[0] \u003e 2:"},{"line_number":63,"context_line":"                # Just wait afterwards"},{"line_number":64,"context_line":"                eventlet.greenthread.sleep(functional.DEFAULT_SLEEP)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        self.client.introspect(self.uuid)"},{"line_number":67,"context_line":"        eventlet.greenthread.sleep(functional.DEFAULT_SLEEP)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ac06dbe_f5fec436","line":64,"range":{"start_line":64,"start_character":43,"end_line":64,"end_character":67},"in_reply_to":"1ac06dbe_3047cf1e","updated":"2016-08-22 10:53:54.000000000","message":"Done","commit_id":"a987c25046db32894d78421c01c904acacdf4020"}]}
