)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"0eedc5195bc91bad74162ce5c563e69448f26e9b","unresolved":true,"context_lines":[{"line_number":9,"context_line":"After 196de449b6 merged in openstack/horizon return value"},{"line_number":10,"context_line":"of network_list_for_tenant() is changed. This patch update"},{"line_number":11,"context_line":"the unit tests in openstack/trove-dashboard to use updated"},{"line_number":12,"context_line":"return type [1]"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"[1] https://github.com/openstack/horizon/blob/master/openstack_dashboard/api/neutron.py#L1397"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1f6c53ae_d1c515c1","line":12,"updated":"2022-04-01 08:14:39.000000000","message":"Precisely speaking, the return value of network_list_for_tenant() was NOT changed for this case. The reason of the failure is the internal implementation change in network_list_for_tenant.","commit_id":"f4f822d5502884e1e1dd7851856addf6e8f19851"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"e4eb66d63697e42b437f0c746df1fd852af595ac","unresolved":false,"context_lines":[{"line_number":9,"context_line":"After 196de449b6 merged in openstack/horizon return value"},{"line_number":10,"context_line":"of network_list_for_tenant() is changed. This patch update"},{"line_number":11,"context_line":"the unit tests in openstack/trove-dashboard to use updated"},{"line_number":12,"context_line":"return type [1]"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"[1] https://github.com/openstack/horizon/blob/master/openstack_dashboard/api/neutron.py#L1397"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"497f2307_f362787e","line":12,"in_reply_to":"1f6c53ae_d1c515c1","updated":"2022-04-06 05:04:14.000000000","message":"Updated","commit_id":"f4f822d5502884e1e1dd7851856addf6e8f19851"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"383150bab764027bac9ae0df4424638b03a5b945","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"dfaf98ec_e46da1aa","updated":"2022-03-30 23:53:08.000000000","message":"It passes the UT, but I would suggest not to depend on the internal of network_list_for_tenant().\nFind my suggestions inline.","commit_id":"ebe4706818632df2d1c83a587284077252708105"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"e63a55c379a1fbb796c0f05fc6eecb38a4a3807a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0be75d5d_c4523d63","updated":"2022-03-29 14:25:26.000000000","message":"This fixed the Debian packaging for me.","commit_id":"ebe4706818632df2d1c83a587284077252708105"}],"trove_dashboard/content/database_backups/tests.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"383150bab764027bac9ae0df4424638b03a5b945","unresolved":true,"context_lines":[{"line_number":228,"context_line":"        self.mock_instance_list.assert_called_once_with(test.IsHttpRequest())"},{"line_number":229,"context_line":"        self.mock_volume_type_list.assert_called_once_with("},{"line_number":230,"context_line":"            test.IsHttpRequest())"},{"line_number":231,"context_line":"        self.mock_network_list.assert_any_call("},{"line_number":232,"context_line":"            test.IsHttpRequest(), single_page\u003dFalse,"},{"line_number":233,"context_line":"            shared\u003dFalse, tenant_id\u003dself.tenant.id)"},{"line_number":234,"context_line":"        self.mock_availability_zone_list.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":1,"id":"943c8f9b_47f513bc","line":231,"range":{"start_line":231,"start_character":31,"end_line":231,"end_character":46},"updated":"2022-03-30 23:53:08.000000000","message":"This should be assert_called_once_with (or assert_has_calls if it is called multiple times).","commit_id":"ebe4706818632df2d1c83a587284077252708105"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"9fde61830080f534a5e5b8e29175b3e292105e28","unresolved":false,"context_lines":[{"line_number":228,"context_line":"        self.mock_instance_list.assert_called_once_with(test.IsHttpRequest())"},{"line_number":229,"context_line":"        self.mock_volume_type_list.assert_called_once_with("},{"line_number":230,"context_line":"            test.IsHttpRequest())"},{"line_number":231,"context_line":"        self.mock_network_list.assert_any_call("},{"line_number":232,"context_line":"            test.IsHttpRequest(), single_page\u003dFalse,"},{"line_number":233,"context_line":"            shared\u003dFalse, tenant_id\u003dself.tenant.id)"},{"line_number":234,"context_line":"        self.mock_availability_zone_list.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":1,"id":"116e3adc_31f9a839","line":231,"range":{"start_line":231,"start_character":31,"end_line":231,"end_character":46},"in_reply_to":"943c8f9b_47f513bc","updated":"2022-03-31 07:26:19.000000000","message":"Done.","commit_id":"ebe4706818632df2d1c83a587284077252708105"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"383150bab764027bac9ae0df4424638b03a5b945","unresolved":true,"context_lines":[{"line_number":230,"context_line":"            test.IsHttpRequest())"},{"line_number":231,"context_line":"        self.mock_network_list.assert_any_call("},{"line_number":232,"context_line":"            test.IsHttpRequest(), single_page\u003dFalse,"},{"line_number":233,"context_line":"            shared\u003dFalse, tenant_id\u003dself.tenant.id)"},{"line_number":234,"context_line":"        self.mock_availability_zone_list.assert_called_once_with("},{"line_number":235,"context_line":"            test.IsHttpRequest())"},{"line_number":236,"context_line":"        self.assertTemplateUsed(res, \u0027project/databases/launch.html\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"646d3a13_031ea59f","line":233,"updated":"2022-03-30 23:53:08.000000000","message":"It depends on the internal of network_list_for_tenant(). If horizon changes the implementation of network_list_for_tenant() in future, this test will be broken easily. Instead, I would suggest to mock network_list_for_tenant and assert it like:\n\n self.mock_network_list_for_tenant.assert_called_once_with(\n     test.IsHttpRequest(), self.tenant.id, include_pre_auto_allocate\u003dTrue)","commit_id":"ebe4706818632df2d1c83a587284077252708105"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"9fde61830080f534a5e5b8e29175b3e292105e28","unresolved":false,"context_lines":[{"line_number":230,"context_line":"            test.IsHttpRequest())"},{"line_number":231,"context_line":"        self.mock_network_list.assert_any_call("},{"line_number":232,"context_line":"            test.IsHttpRequest(), single_page\u003dFalse,"},{"line_number":233,"context_line":"            shared\u003dFalse, tenant_id\u003dself.tenant.id)"},{"line_number":234,"context_line":"        self.mock_availability_zone_list.assert_called_once_with("},{"line_number":235,"context_line":"            test.IsHttpRequest())"},{"line_number":236,"context_line":"        self.assertTemplateUsed(res, \u0027project/databases/launch.html\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"6ef8f70b_5f16a8f7","line":233,"in_reply_to":"646d3a13_031ea59f","updated":"2022-03-31 07:26:19.000000000","message":"Done.","commit_id":"ebe4706818632df2d1c83a587284077252708105"}],"trove_dashboard/content/databases/tests.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"383150bab764027bac9ae0df4424638b03a5b945","unresolved":true,"context_lines":[{"line_number":183,"context_line":"            mock.call(test.IsHttpRequest(),"},{"line_number":184,"context_line":"                      single_page\u003dFalse, shared\u003dTrue),"},{"line_number":185,"context_line":"            mock.call(test.IsHttpRequest(), single_page\u003dFalse,"},{"line_number":186,"context_line":"                      shared\u003dFalse, tenant_id\u003dself.tenant.id)])"},{"line_number":187,"context_line":"        self.mock_availability_zone_list.assert_called_once_with("},{"line_number":188,"context_line":"            test.IsHttpRequest())"},{"line_number":189,"context_line":"        self.assertTemplateUsed(res, \u0027project/databases/launch.html\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"f6d4cdf4_05199771","line":186,"updated":"2022-03-30 23:53:08.000000000","message":"See my comment for database_backups/tests.py. It applies to all cases in this file too.","commit_id":"ebe4706818632df2d1c83a587284077252708105"},{"author":{"_account_id":29313,"name":"Vishal Manchanda","email":"manchandavishal143@gmail.com","username":"vishalmanchanda"},"change_message_id":"9fde61830080f534a5e5b8e29175b3e292105e28","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            mock.call(test.IsHttpRequest(),"},{"line_number":184,"context_line":"                      single_page\u003dFalse, shared\u003dTrue),"},{"line_number":185,"context_line":"            mock.call(test.IsHttpRequest(), single_page\u003dFalse,"},{"line_number":186,"context_line":"                      shared\u003dFalse, tenant_id\u003dself.tenant.id)])"},{"line_number":187,"context_line":"        self.mock_availability_zone_list.assert_called_once_with("},{"line_number":188,"context_line":"            test.IsHttpRequest())"},{"line_number":189,"context_line":"        self.assertTemplateUsed(res, \u0027project/databases/launch.html\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"a768ae59_3c412177","line":186,"in_reply_to":"f6d4cdf4_05199771","updated":"2022-03-31 07:26:19.000000000","message":"Done.","commit_id":"ebe4706818632df2d1c83a587284077252708105"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"c025418d031dfe7cfffa2581f37b343d0be78e08","unresolved":true,"context_lines":[{"line_number":158,"context_line":"        self.mock_network_list_for_tenant.side_effect \u003d ["},{"line_number":159,"context_line":"            self.networks.list()[:1],"},{"line_number":160,"context_line":"            self.networks.list()[1:]"},{"line_number":161,"context_line":"        ]"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        self.mock_availability_zone_list.return_value \u003d ("},{"line_number":164,"context_line":"            self.availability_zones.list())"}],"source_content_type":"text/x-python","patch_set":2,"id":"661348b5_4661b3bf","line":161,"updated":"2022-03-31 09:54:28.000000000","message":"network_list_for_tenant() is expected to call once according to L.184 below.\nDo you need to prepare the return value for two calls?","commit_id":"ea9b4921da2cf51c54ba3c867b4869c4bf1511d2"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a48a028095fe8435d2678d9ee68338bf3e4181af","unresolved":true,"context_lines":[{"line_number":158,"context_line":"        self.mock_network_list_for_tenant.side_effect \u003d ["},{"line_number":159,"context_line":"            self.networks.list()[:1],"},{"line_number":160,"context_line":"            self.networks.list()[1:]"},{"line_number":161,"context_line":"        ]"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        self.mock_availability_zone_list.return_value \u003d ("},{"line_number":164,"context_line":"            self.availability_zones.list())"}],"source_content_type":"text/x-python","patch_set":2,"id":"05091210_74adf371","line":161,"in_reply_to":"661348b5_4661b3bf","updated":"2022-04-01 05:39:34.000000000","message":"You just dropped the second return value for the list, but looking at network_list_for_tenant implementation, roughly speaking, it merged return values from two network_list() calls (or more). Isn\u0027t it better to return self.networks.list()?","commit_id":"ea9b4921da2cf51c54ba3c867b4869c4bf1511d2"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"a48a028095fe8435d2678d9ee68338bf3e4181af","unresolved":true,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        self.mock_volume_type_list.return_value \u003d []"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        self.mock_network_list_for_tenant.side_effect \u003d ["},{"line_number":159,"context_line":"            self.networks.list()[:1],"},{"line_number":160,"context_line":"        ]"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"048518b7_45d0856c","line":158,"range":{"start_line":158,"start_character":42,"end_line":158,"end_character":53},"updated":"2022-04-01 05:39:34.000000000","message":"It should be return_value rather than side_effect.","commit_id":"eb00abb86216ac911a52070229768334e3a526b7"}]}
