)]}'
{"openstack_dashboard/dashboards/admin/rbac_policies/forms.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"80b3dbaea0db11acaba02886d1da5391ffd4c5f3","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            \u0027data-switch-on\u0027: \u0027action_object_type\u0027,"},{"line_number":65,"context_line":"            \u0027data-action_object_type-shared_network\u0027: _(\u0027Network\u0027),"},{"line_number":66,"context_line":"            \u0027data-action_object_type-external_network\u0027: _(\u0027Network\u0027),"},{"line_number":67,"context_line":"            \u0027data-required-when-shown\u0027: \u0027true\u0027"},{"line_number":68,"context_line":"        }),"},{"line_number":69,"context_line":"        required\u003dFalse)"},{"line_number":70,"context_line":"    qos_policy_id \u003d forms.ThemableChoiceField("}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_8ec83b22","line":67,"updated":"2019-05-28 05:11:38.000000000","message":"Could you keep a comma at EOL?","commit_id":"3de49643836f038e05379413a4880bbc64307fa2"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"80b3dbaea0db11acaba02886d1da5391ffd4c5f3","unresolved":false,"context_lines":[{"line_number":73,"context_line":"            \u0027class\u0027: \u0027switched\u0027,"},{"line_number":74,"context_line":"            \u0027data-switch-on\u0027: \u0027action_object_type\u0027,"},{"line_number":75,"context_line":"            \u0027data-action_object_type-shared_qos_policy\u0027: _(\u0027QoS Policy\u0027),"},{"line_number":76,"context_line":"            \u0027data-required-when-shown\u0027: \u0027true\u0027"},{"line_number":77,"context_line":"        }),"},{"line_number":78,"context_line":"        required\u003dFalse)"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_aecdff31","line":76,"updated":"2019-05-28 05:11:38.000000000","message":"ditto","commit_id":"3de49643836f038e05379413a4880bbc64307fa2"}],"openstack_dashboard/dashboards/admin/rbac_policies/tests.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"2554b4f4671b2fe6b3de604314312ee104757fb8","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        self.mock_network_list.assert_has_calls(["},{"line_number":148,"context_line":"            mock.call(test.IsHttpRequest())])"},{"line_number":149,"context_line":"        self.assertEqual(2, self.mock_network_list.call_count)"},{"line_number":150,"context_line":"        self.mock_is_extension_supported.assert_has_calls(["},{"line_number":151,"context_line":"            mock.call(test.IsHttpRequest(), extension_alias\u003d\u0027qos\u0027)])"},{"line_number":152,"context_line":"        self.assertEqual(2, self.mock_is_extension_supported.call_count)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    @test.create_mocks({api.neutron: (\u0027network_list\u0027,"},{"line_number":155,"context_line":"                                      \u0027policy_list\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_4e5f1e41","line":152,"range":{"start_line":150,"start_character":8,"end_line":152,"end_character":72},"updated":"2019-05-05 18:09:03.000000000","message":"Please use assert_mock_multiple_calls_with_same_arguments instead. The current version just checks at least one call with \u0027qos\u0027.\n\nThis applies to L.144 and L.147.","commit_id":"29bdf2be24a9f397bca4006781961c698e104368"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"2554b4f4671b2fe6b3de604314312ee104757fb8","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        self.assertEqual(2, self.mock_policy_list.call_count)"},{"line_number":185,"context_line":"        self.mock_is_extension_supported.assert_has_calls(["},{"line_number":186,"context_line":"            mock.call(test.IsHttpRequest(), extension_alias\u003d\u0027qos\u0027)])"},{"line_number":187,"context_line":"        self.assertEqual(2, self.mock_is_extension_supported.call_count)"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfbec78f_0e592659","line":187,"updated":"2019-05-05 18:09:03.000000000","message":"same comment as the above.","commit_id":"29bdf2be24a9f397bca4006781961c698e104368"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"80b3dbaea0db11acaba02886d1da5391ffd4c5f3","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    under the License."},{"line_number":14,"context_line":"from django.urls import reverse"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import mock"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from openstack_dashboard import api"},{"line_number":19,"context_line":"from openstack_dashboard.test import helpers as test"}],"source_content_type":"text/x-python","patch_set":4,"id":"bfb3d3c7_ce4cf3c9","line":16,"updated":"2019-05-28 05:11:38.000000000","message":"mock and django are both third-party imports, so the blank line before \"mock\" is unnecessary.","commit_id":"3de49643836f038e05379413a4880bbc64307fa2"}]}
