)]}'
{"nova/objects/base.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"038c28445e7a2ace6e40427242e8b94b004ea36c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    cls.fields.update(NovaObject.fields)"},{"line_number":40,"context_line":"    for name, typefn in cls.fields.iteritems():"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        def getter(self, name\u003dname, typefn\u003dtypefn):"},{"line_number":43,"context_line":"            attrname \u003d get_attrname(name)"},{"line_number":44,"context_line":"            if not hasattr(self, attrname):"},{"line_number":45,"context_line":"                self.obj_load_attr(name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPX%2F%2Fp2g%3D","line":42,"updated":"2013-06-13 12:26:35.000000000","message":"Why is typefn here if it\u0027s not used?","commit_id":"127be37b4d28c5abe676d3a96e7e4bbf09305b60"}],"nova/tests/objects/test_objects.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"bafd9819f501f73b66158021e05b8168c6bf5d8b","unresolved":false,"context_lines":[{"line_number":313,"context_line":"        raised \u003d False"},{"line_number":314,"context_line":"        try:"},{"line_number":315,"context_line":"            obj.foobar"},{"line_number":316,"context_line":"        except Exception as ex:"},{"line_number":317,"context_line":"            raised \u003d True"},{"line_number":318,"context_line":"        self.assertTrue(raised)"},{"line_number":319,"context_line":"        self.assertTrue(\u0027foobar\u0027 in str(ex))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPX%2F%2FruE%3D","line":316,"updated":"2013-06-12 20:49:48.000000000","message":"Wouldn\u0027t you just be looking for NotImplementedError here?","commit_id":"6d317707d55da8d6a97535c4d099f8c84b3c0cfb"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"258e3d762dfb9930957bf02ec06fac9ad3e16801","unresolved":false,"context_lines":[{"line_number":313,"context_line":"        raised \u003d False"},{"line_number":314,"context_line":"        try:"},{"line_number":315,"context_line":"            obj.foobar"},{"line_number":316,"context_line":"        except Exception as ex:"},{"line_number":317,"context_line":"            raised \u003d True"},{"line_number":318,"context_line":"        self.assertTrue(raised)"},{"line_number":319,"context_line":"        self.assertTrue(\u0027foobar\u0027 in str(ex))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPX%2F%2Frrw%3D","line":316,"in_reply_to":"AAAAPX%2F%2FruE%3D","updated":"2013-06-12 21:04:10.000000000","message":"Actually, yeah... I think so, too.  That\u0027d be better.  More than likely the \u0027foobar\u0027 assert below will catch any un-expected exceptions in this test...  but better to not have the \u0027bare\" above.","commit_id":"6d317707d55da8d6a97535c4d099f8c84b3c0cfb"}]}
