)]}'
{"nova/tests/unit/notifications/objects/test_flavor.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a9564a5d920f4f9edf61ba685366d041c95e2724","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        schema \u003d flavor_notification.FlavorPayload.SCHEMA"},{"line_number":63,"context_line":"        for field in schema:"},{"line_number":64,"context_line":"            if field in flavor:"},{"line_number":65,"context_line":"                self.assertEqual(flavor[field], getattr(payload, field))"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    @mock.patch(\u0027nova.objects.Flavor._flavor_create\u0027)"},{"line_number":68,"context_line":"    def test_flavor_create_with_notification(self, mock_create):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_f5b6f33e","line":65,"range":{"start_line":64,"start_character":12,"end_line":65,"end_character":72},"updated":"2017-05-02 17:05:15.000000000","message":"Actually whether or not flavor_obj.projects is set or not doesn\u0027t get checked because flavor here is the db flavor and that doesn\u0027t have a \u0027projects\u0027 key in it, so we wouldn\u0027t validate that here.","commit_id":"96444cd7b7d164abacd7b196d3d8f1389ea76713"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e53711db37b89e9487f976adf49433cefd3a4ccd","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        schema \u003d flavor_notification.FlavorPayload.SCHEMA"},{"line_number":63,"context_line":"        for field in schema:"},{"line_number":64,"context_line":"            if field in flavor:"},{"line_number":65,"context_line":"                self.assertEqual(flavor[field], getattr(payload, field))"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    @mock.patch(\u0027nova.objects.Flavor._flavor_create\u0027)"},{"line_number":68,"context_line":"    def test_flavor_create_with_notification(self, mock_create):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_35933b5f","line":65,"range":{"start_line":64,"start_character":12,"end_line":65,"end_character":72},"in_reply_to":"5ff73747_f5b6f33e","updated":"2017-05-02 17:16:09.000000000","message":"We should be checking \"if field in flavor_obj\" instead. I\u0027ll change to that.","commit_id":"96444cd7b7d164abacd7b196d3d8f1389ea76713"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3cbbdefe44aceb7a270e7433b9b0649c54b97630","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        flavor_obj \u003d objects.Flavor("},{"line_number":131,"context_line":"            context\u003dself.ctxt, projects\u003d[\u0027foo\u0027], **flavor)"},{"line_number":132,"context_line":"        flavor_obj.obj_reset_changes()"},{"line_number":133,"context_line":"        self._verify_notification(flavor_obj, flavor, \"DELETE\")"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def test_obj_make_compatible(self):"},{"line_number":136,"context_line":"        flavor \u003d copy.deepcopy(fake_flavor)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_7901d004","line":133,"updated":"2017-05-02 07:43:49.000000000","message":"First I wondered how can this pass. Then I noticed that the flavor_obj is created with an extra projects attr from a flavor dict and then the flavor dict, which doesn\u0027t have projects set, is used for the notification field comparison.\n\nI would add a comment to explain this. :)","commit_id":"96444cd7b7d164abacd7b196d3d8f1389ea76713"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"16227321ed473a8861d414c9a599313a05f70740","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        flavor_obj \u003d objects.Flavor("},{"line_number":131,"context_line":"            context\u003dself.ctxt, projects\u003d[\u0027foo\u0027], **flavor)"},{"line_number":132,"context_line":"        flavor_obj.obj_reset_changes()"},{"line_number":133,"context_line":"        self._verify_notification(flavor_obj, flavor, \"DELETE\")"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def test_obj_make_compatible(self):"},{"line_number":136,"context_line":"        flavor \u003d copy.deepcopy(fake_flavor)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_f51a736d","line":133,"in_reply_to":"5ff73747_7901d004","updated":"2017-05-02 16:59:06.000000000","message":"I\u0027ll try.","commit_id":"96444cd7b7d164abacd7b196d3d8f1389ea76713"}]}
