)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11805,"name":"Corey Bryant","email":"corey.bryant@canonical.com","username":"coreycb"},"change_message_id":"d8f40fd1fbf209d7ef9a7fe6f1d9ee90654091d3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a3de412f_3e80dfb7","updated":"2023-09-13 12:16:08.000000000","message":"Thanks for the review Akihiro.","commit_id":"34e493e75b43d0774ba66802768f04b8a336611f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"9ef29d21ef8bf05cd1bf14293f6f33704911c32e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fb597619_730fcad8","updated":"2023-09-13 02:23:29.000000000","message":"minor nits","commit_id":"34e493e75b43d0774ba66802768f04b8a336611f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"2a1505ca3460e2c19618651640c7c883022f02a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cd780fae_c19695e6","updated":"2023-10-04 06:03:37.000000000","message":"I am fine with this version. thanks.","commit_id":"b5b22dd183955e7dc551f0417ab352b7401271fe"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"d4aef97c4b0780b171c990e910183ce60477e20c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e7425837_8f7d81f6","updated":"2023-10-04 05:21:54.000000000","message":"Thanks, LGTM.","commit_id":"b5b22dd183955e7dc551f0417ab352b7401271fe"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"ffc450241b739402946324901a0ce513e1a5dd2d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1f000f47_50deaab8","updated":"2023-10-03 13:17:16.000000000","message":"This fixed a number of unit tests for me in Debian Unstable (which currently has Django 4.2.5). So very much: +1 !!!\nThanks Corey for the patch.","commit_id":"b5b22dd183955e7dc551f0417ab352b7401271fe"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"42abdedced525e29b1bb99b53bbb6f9d52a19f76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"53a5464f_165970e4","updated":"2023-09-16 08:45:09.000000000","message":"recheck integration test failure seems not related to this patch and perhaps random failure","commit_id":"b5b22dd183955e7dc551f0417ab352b7401271fe"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"dc095c9b5723d668cb29bb0dc541a71aae4cfd27","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ab014350_0cfebc47","updated":"2023-10-03 10:49:11.000000000","message":"recheck, random integration test failure.","commit_id":"b5b22dd183955e7dc551f0417ab352b7401271fe"}],"horizon/test/helpers.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"9ef29d21ef8bf05cd1bf14293f6f33704911c32e","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import collections.abc"},{"line_number":20,"context_line":"import copy"},{"line_number":21,"context_line":"from io import BytesIO"},{"line_number":22,"context_line":"import logging"},{"line_number":23,"context_line":"import os"},{"line_number":24,"context_line":"import socket"}],"source_content_type":"text/x-python","patch_set":2,"id":"fd6b0c29_6110520e","line":21,"updated":"2023-09-13 02:23:29.000000000","message":"we use module-level import consistently.\nConsider\n\n  import io","commit_id":"34e493e75b43d0774ba66802768f04b8a336611f"},{"author":{"_account_id":11805,"name":"Corey Bryant","email":"corey.bryant@canonical.com","username":"coreycb"},"change_message_id":"d8f40fd1fbf209d7ef9a7fe6f1d9ee90654091d3","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import collections.abc"},{"line_number":20,"context_line":"import copy"},{"line_number":21,"context_line":"from io import BytesIO"},{"line_number":22,"context_line":"import logging"},{"line_number":23,"context_line":"import os"},{"line_number":24,"context_line":"import socket"}],"source_content_type":"text/x-python","patch_set":2,"id":"04585114_1fa6c166","line":21,"in_reply_to":"fd6b0c29_6110520e","updated":"2023-09-13 12:16:08.000000000","message":"Ack","commit_id":"34e493e75b43d0774ba66802768f04b8a336611f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"9ef29d21ef8bf05cd1bf14293f6f33704911c32e","unresolved":true,"context_lines":[{"line_number":34,"context_line":"from django.contrib.messages.storage import default_storage"},{"line_number":35,"context_line":"from django.contrib.sessions.backends.base import SessionBase"},{"line_number":36,"context_line":"from django.core.handlers import wsgi"},{"line_number":37,"context_line":"from django.core.handlers.wsgi import LimitedStream"},{"line_number":38,"context_line":"from django import http"},{"line_number":39,"context_line":"from django import test as django_test"},{"line_number":40,"context_line":"from django.test.client import RequestFactory"}],"source_content_type":"text/x-python","patch_set":2,"id":"29c44a20_f2362971","line":37,"updated":"2023-09-13 02:23:29.000000000","message":"we use module-level import.\nwsgi module is already imported in the previous line.","commit_id":"34e493e75b43d0774ba66802768f04b8a336611f"},{"author":{"_account_id":11805,"name":"Corey Bryant","email":"corey.bryant@canonical.com","username":"coreycb"},"change_message_id":"d8f40fd1fbf209d7ef9a7fe6f1d9ee90654091d3","unresolved":false,"context_lines":[{"line_number":34,"context_line":"from django.contrib.messages.storage import default_storage"},{"line_number":35,"context_line":"from django.contrib.sessions.backends.base import SessionBase"},{"line_number":36,"context_line":"from django.core.handlers import wsgi"},{"line_number":37,"context_line":"from django.core.handlers.wsgi import LimitedStream"},{"line_number":38,"context_line":"from django import http"},{"line_number":39,"context_line":"from django import test as django_test"},{"line_number":40,"context_line":"from django.test.client import RequestFactory"}],"source_content_type":"text/x-python","patch_set":2,"id":"5ea2f843_800e0f3c","line":37,"in_reply_to":"29c44a20_f2362971","updated":"2023-09-13 12:16:08.000000000","message":"Ack","commit_id":"34e493e75b43d0774ba66802768f04b8a336611f"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"9ef29d21ef8bf05cd1bf14293f6f33704911c32e","unresolved":true,"context_lines":[{"line_number":202,"context_line":"        The expected number of messages can be specified per message type."},{"line_number":203,"context_line":"        Usage would look like ``self.assertMessageCount(success\u003d1)``."},{"line_number":204,"context_line":"        \"\"\""},{"line_number":205,"context_line":"        stream \u003d LimitedStream(BytesIO(b\"test\"), 2)"},{"line_number":206,"context_line":"        temp_req \u003d self.client.request(**{\u0027wsgi.input\u0027: stream})"},{"line_number":207,"context_line":"        temp_req.COOKIES \u003d self.client.cookies"},{"line_number":208,"context_line":"        storage \u003d default_storage(temp_req)"}],"source_content_type":"text/x-python","patch_set":2,"id":"2d132958_3113097c","line":205,"updated":"2023-09-13 02:23:29.000000000","message":"question: Doesn\u0027t ByteIO(b\u0027\u0027) (i.e., empty byte stream) work instead of b\u0027test\u0027?\nPreviously nothing was passed, so I just wonder if the similar stream can work.","commit_id":"34e493e75b43d0774ba66802768f04b8a336611f"},{"author":{"_account_id":11805,"name":"Corey Bryant","email":"corey.bryant@canonical.com","username":"coreycb"},"change_message_id":"d8f40fd1fbf209d7ef9a7fe6f1d9ee90654091d3","unresolved":true,"context_lines":[{"line_number":202,"context_line":"        The expected number of messages can be specified per message type."},{"line_number":203,"context_line":"        Usage would look like ``self.assertMessageCount(success\u003d1)``."},{"line_number":204,"context_line":"        \"\"\""},{"line_number":205,"context_line":"        stream \u003d LimitedStream(BytesIO(b\"test\"), 2)"},{"line_number":206,"context_line":"        temp_req \u003d self.client.request(**{\u0027wsgi.input\u0027: stream})"},{"line_number":207,"context_line":"        temp_req.COOKIES \u003d self.client.cookies"},{"line_number":208,"context_line":"        storage \u003d default_storage(temp_req)"}],"source_content_type":"text/x-python","patch_set":2,"id":"e841703e_e6a64cfb","line":205,"in_reply_to":"2d132958_3113097c","updated":"2023-09-13 12:16:08.000000000","message":"It might. Let me try in the next patchset.","commit_id":"34e493e75b43d0774ba66802768f04b8a336611f"}]}
