)]}'
{"cinder/tests/unit/objects/__init__.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"545fd121a697f0d197f0ccaadbd626308fe4c2fe","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    # TODO(mriedem): Replace this with"},{"line_number":35,"context_line":"    # oslo_versionedobjects.fixture.compare_obj when that is in a released"},{"line_number":36,"context_line":"    # version of o.vo."},{"line_number":37,"context_line":"    @staticmethod"},{"line_number":38,"context_line":"    def _compare(test, db, obj):"},{"line_number":39,"context_line":"        for field, value in db.items():"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a68dd71_9b1644f0","line":36,"range":{"start_line":36,"start_character":14,"end_line":36,"end_character":16},"updated":"2016-01-26 15:12:57.000000000","message":"FYI I tried to use compare_obj(), but I don\u0027t understand how to use it :-/","commit_id":"fa92d6efc0cb8212701299b3a312e2fa97fa102c"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"644f1da7e85e1eeef7f8da4bd30acb50b35e328d","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    @staticmethod"},{"line_number":38,"context_line":"    def _compare(test, db, obj):"},{"line_number":39,"context_line":"        for field, value in db.items():"},{"line_number":40,"context_line":"            try:"},{"line_number":41,"context_line":"                getattr(obj, field)"},{"line_number":42,"context_line":"            except AttributeError:"},{"line_number":43,"context_line":"                continue"},{"line_number":44,"context_line":"            except exception.CinderException:"},{"line_number":45,"context_line":"                continue"},{"line_number":46,"context_line":"            except NotImplementedError:"},{"line_number":47,"context_line":"                # Ignore \"Cannot load \u0027projects\u0027 in the base class\" error"},{"line_number":48,"context_line":"                continue"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"            if field in (\u0027modified_at\u0027, \u0027created_at\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a5ae5dd_9fc30f89","line":47,"range":{"start_line":40,"start_character":0,"end_line":47,"end_character":73},"updated":"2016-02-05 16:30:26.000000000","message":"Can\u0027t we squash that into:\n\n try:\n     getattr(obj, field)\n except (AttributeError, exception.CinderException, NotImplementedError)\n     continue\n\n?","commit_id":"fa92d6efc0cb8212701299b3a312e2fa97fa102c"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"9bbe1bb9eb824330a1a43f67efced0a105acbf9d","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    @staticmethod"},{"line_number":38,"context_line":"    def _compare(test, db, obj):"},{"line_number":39,"context_line":"        for field, value in db.items():"},{"line_number":40,"context_line":"            try:"},{"line_number":41,"context_line":"                getattr(obj, field)"},{"line_number":42,"context_line":"            except AttributeError:"},{"line_number":43,"context_line":"                continue"},{"line_number":44,"context_line":"            except exception.CinderException:"},{"line_number":45,"context_line":"                continue"},{"line_number":46,"context_line":"            except NotImplementedError:"},{"line_number":47,"context_line":"                # Ignore \"Cannot load \u0027projects\u0027 in the base class\" error"},{"line_number":48,"context_line":"                continue"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"            if field in (\u0027modified_at\u0027, \u0027created_at\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a5ae5dd_802cda99","line":47,"range":{"start_line":40,"start_character":0,"end_line":47,"end_character":73},"in_reply_to":"5a5ae5dd_9fc30f89","updated":"2016-02-08 09:50:23.000000000","message":"Done","commit_id":"fa92d6efc0cb8212701299b3a312e2fa97fa102c"}],"cinder/tests/unit/objects/test_backup.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"644f1da7e85e1eeef7f8da4bd30acb50b35e328d","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        # for that field"},{"line_number":166,"context_line":"        backup.refresh()"},{"line_number":167,"context_line":"        self._compare(self, db_backup2, backup)"},{"line_number":168,"context_line":"        if six.PY3:"},{"line_number":169,"context_line":"            call_bool \u003d mock.call.__bool__()"},{"line_number":170,"context_line":"        else:"},{"line_number":171,"context_line":"            call_bool \u003d mock.call.__nonzero__()"},{"line_number":172,"context_line":"        backup_get.assert_has_calls([mock.call(self.context, \u00271\u0027),"},{"line_number":173,"context_line":"                                     call_bool,"},{"line_number":174,"context_line":"                                     mock.call(self.context, \u00271\u0027)])"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"class TestBackupList(test_objects.BaseObjectsTestCase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a5ae5dd_bf960b3c","line":174,"range":{"start_line":168,"start_character":2,"end_line":174,"end_character":67},"updated":"2016-02-05 16:30:26.000000000","message":"Can you elaborate more why this is needed?","commit_id":"fa92d6efc0cb8212701299b3a312e2fa97fa102c"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"9bbe1bb9eb824330a1a43f67efced0a105acbf9d","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        # for that field"},{"line_number":166,"context_line":"        backup.refresh()"},{"line_number":167,"context_line":"        self._compare(self, db_backup2, backup)"},{"line_number":168,"context_line":"        if six.PY3:"},{"line_number":169,"context_line":"            call_bool \u003d mock.call.__bool__()"},{"line_number":170,"context_line":"        else:"},{"line_number":171,"context_line":"            call_bool \u003d mock.call.__nonzero__()"},{"line_number":172,"context_line":"        backup_get.assert_has_calls([mock.call(self.context, \u00271\u0027),"},{"line_number":173,"context_line":"                                     call_bool,"},{"line_number":174,"context_line":"                                     mock.call(self.context, \u00271\u0027)])"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"class TestBackupList(test_objects.BaseObjectsTestCase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a5ae5dd_a01c766a","line":174,"range":{"start_line":168,"start_character":2,"end_line":174,"end_character":67},"in_reply_to":"5a5ae5dd_bf960b3c","updated":"2016-02-08 09:50:23.000000000","message":"See the commit message:\n\n\"Mocks: except a call to obj.__bool__() rather than obj.__nonzero__() on Python 3. bool(obj) now calls obj.__bool__() on Python 3.\"","commit_id":"fa92d6efc0cb8212701299b3a312e2fa97fa102c"}]}
