)]}'
{"openstack/tests/network/v2/test_security_group.py":[{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"12074402f82aafb5476db07c475100e7f0ff6acc","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        self.assertEqual(EXAMPLE[\u0027tenant_id\u0027], sot.project_id)"},{"line_number":74,"context_line":"        self.assertEqual(EXAMPLE[\u0027security_group_rules\u0027],"},{"line_number":75,"context_line":"                         sot.security_group_rules)"},{"line_number":76,"context_line":"        # TODO(briancurtin): I don\u0027t understand this."},{"line_number":77,"context_line":"        # self.assertEqual(\u0027SecurityGroupRule\u0027,"},{"line_number":78,"context_line":"        #                 sot.security_group_rules[0].__class__.__name__)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_44905196","line":76,"updated":"2015-02-17 15:47:07.000000000","message":"Somehow this test is failing, but I also don\u0027t fully get it.","commit_id":"6786240e896aee9fa8782363a9bffd8b5348290f"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"2d58ae22330b2fc4ae3531e89c97d080ea6ad27d","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        self.assertEqual(EXAMPLE[\u0027description\u0027], sot.description)"},{"line_number":71,"context_line":"        self.assertEqual(EXAMPLE[\u0027id\u0027], sot.id)"},{"line_number":72,"context_line":"        self.assertEqual(EXAMPLE[\u0027name\u0027], sot.name)"},{"line_number":73,"context_line":"        self.assertEqual(EXAMPLE[\u0027tenant_id\u0027], sot.project_id)"},{"line_number":74,"context_line":"        self.assertEqual(EXAMPLE[\u0027security_group_rules\u0027],"},{"line_number":75,"context_line":"                         sot.security_group_rules)"},{"line_number":76,"context_line":"        # TODO(briancurtin): I don\u0027t understand this."}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_0c10dc57","line":73,"updated":"2015-02-19 16:53:09.000000000","message":"Set not called for project_id/tenant_id.","commit_id":"12d85d063752dd3f3e5969cf700df1902b83553d"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"2d58ae22330b2fc4ae3531e89c97d080ea6ad27d","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        self.assertEqual(EXAMPLE[\u0027tenant_id\u0027], sot.project_id)"},{"line_number":74,"context_line":"        self.assertEqual(EXAMPLE[\u0027security_group_rules\u0027],"},{"line_number":75,"context_line":"                         sot.security_group_rules)"},{"line_number":76,"context_line":"        # TODO(briancurtin): I don\u0027t understand this."},{"line_number":77,"context_line":"        # self.assertEqual(\u0027SecurityGroupRule\u0027,"},{"line_number":78,"context_line":"        #                 sot.security_group_rules[0].__class__.__name__)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_ac27d0c5","line":76,"updated":"2015-02-19 16:53:09.000000000","message":"The reason this fails is becausein __setitem__ chaged \u003d orig !\u003d value is false.  I guess [dict] \u003d\u003d [SecurityGroupRule] in this case.","commit_id":"12d85d063752dd3f3e5969cf700df1902b83553d"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"612589df201c43023452ab22a7c075dce8277e04","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        self.assertEqual(EXAMPLE[\u0027tenant_id\u0027], sot.project_id)"},{"line_number":74,"context_line":"        self.assertEqual(EXAMPLE[\u0027security_group_rules\u0027],"},{"line_number":75,"context_line":"                         sot.security_group_rules)"},{"line_number":76,"context_line":"        # TODO(briancurtin): I don\u0027t understand this."},{"line_number":77,"context_line":"        # self.assertEqual(\u0027SecurityGroupRule\u0027,"},{"line_number":78,"context_line":"        #                 sot.security_group_rules[0].__class__.__name__)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_42037d41","line":76,"in_reply_to":"da86d52c_ac27d0c5","updated":"2015-02-19 17:03:21.000000000","message":"Might help to reference the above reason and this bug here: https://bugs.launchpad.net/python-openstacksdk/+bug/1423620","commit_id":"12d85d063752dd3f3e5969cf700df1902b83553d"}],"openstack/tests/test_resource.py":[{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"12074402f82aafb5476db07c475100e7f0ff6acc","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        self.assertFalse(obj.is_dirty)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        last_req \u003d httpretty.last_request().parsed_body[fake_resource]"},{"line_number":266,"context_line":"        self.assertEqual(2, len(last_req))"},{"line_number":267,"context_line":"        self.assertEqual(fake_attr1, last_req[\u0027attr1\u0027])"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        self.assertEqual(fake_id, obj.id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_e4c945ad","line":266,"updated":"2015-02-17 15:47:07.000000000","message":"This is changed from 1 to 2 because before we were only expecting `obj[\u0027attr1\u0027]` on line 258 to trigger the update. We also need line 259\u0027s `obj.second` to trigger it as well.","commit_id":"6786240e896aee9fa8782363a9bffd8b5348290f"}]}
