)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58115669726d1794b76bdc5ac2e7ec669a059b6c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Make the datetime utility function coerce to UTC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Getting datetime objects from existing sources (i.e. sqlalchemy)"},{"line_number":10,"context_line":"is probelatic because they\u0027re \"timezone naive\". Make the utility"},{"line_number":11,"context_line":"function coerce these to UTC for easier conversion."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Related to blueprint unified-object-model"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAPX%2F%2F8M0%3D","line":10,"updated":"2013-06-05 17:12:59.000000000","message":"typo: problematic","commit_id":"edf3a30aef63cd1aa2a9b1e9b08b888b4697def7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0fc1c91447c23079f60ae32f9927339654fc11a9","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Make the datetime utility function coerce to UTC"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Getting datetime objects from existing sources (i.e. sqlalchemy)"},{"line_number":10,"context_line":"is probelatic because they\u0027re \"timezone naive\". Make the utility"},{"line_number":11,"context_line":"function coerce these to UTC for easier conversion."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Related to blueprint unified-object-model"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAPX%2F%2F780%3D","line":10,"in_reply_to":"AAAAPX%2F%2F8M0%3D","updated":"2013-06-05 18:13:44.000000000","message":"Doh, thanks!","commit_id":"edf3a30aef63cd1aa2a9b1e9b08b888b4697def7"}],"nova/objects/utils.py":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"58115669726d1794b76bdc5ac2e7ec669a059b6c","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        return None"},{"line_number":28,"context_line":"    elif isinstance(dt, datetime.datetime):"},{"line_number":29,"context_line":"        if dt.utcoffset() is None:"},{"line_number":30,"context_line":"            return dt.replace(tzinfo\u003diso8601.iso8601.Utc())"},{"line_number":31,"context_line":"        else:"},{"line_number":32,"context_line":"            return dt"},{"line_number":33,"context_line":"    raise ValueError(\u0027A datetime.datetime is required here\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPX%2F%2F8MU%3D","line":30,"updated":"2013-06-05 17:12:59.000000000","message":"When you\u0027re dealing with a naive datetime, you have no idea what the actual UTC time is.  Are we assuming that the native datetime is already a UTC one?  If that\u0027s the case, can we comment that?","commit_id":"edf3a30aef63cd1aa2a9b1e9b08b888b4697def7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0fc1c91447c23079f60ae32f9927339654fc11a9","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        return None"},{"line_number":28,"context_line":"    elif isinstance(dt, datetime.datetime):"},{"line_number":29,"context_line":"        if dt.utcoffset() is None:"},{"line_number":30,"context_line":"            return dt.replace(tzinfo\u003diso8601.iso8601.Utc())"},{"line_number":31,"context_line":"        else:"},{"line_number":32,"context_line":"            return dt"},{"line_number":33,"context_line":"    raise ValueError(\u0027A datetime.datetime is required here\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPX%2F%2F78U%3D","line":30,"in_reply_to":"AAAAPX%2F%2F8MU%3D","updated":"2013-06-05 18:13:44.000000000","message":"Yeah, and I think that\u0027s outlined in the (flawed) commit message. However, yeah, I\u0027ll add a comment here.","commit_id":"edf3a30aef63cd1aa2a9b1e9b08b888b4697def7"}],"nova/tests/objects/test_objects.py":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"17f6e02160e2f2bd14d6baedc4140743942bc640","unresolved":false,"context_lines":[{"line_number":119,"context_line":"class TestUtils(test.TestCase):"},{"line_number":120,"context_line":"    def test_datetime_or_none(self):"},{"line_number":121,"context_line":"        dt \u003d timeutils.parse_isotime(timeutils.isotime())"},{"line_number":122,"context_line":"        self.assertEqual(utils.datetime_or_none(dt), dt)"},{"line_number":123,"context_line":"        self.assertEqual(utils.datetime_or_none(None), None)"},{"line_number":124,"context_line":"        self.assertRaises(ValueError, utils.datetime_or_none, \u0027foo\u0027)"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPX%2F%2F7wM%3D","line":122,"updated":"2013-06-05 19:16:32.000000000","message":"Is one of these asserts testing the naive dt case?","commit_id":"b90109c8c3e1c84a041fdec3f7d8d04a1f2b4193"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"34c0accdbacc08c3f10713467486fcdf74134f6b","unresolved":false,"context_lines":[{"line_number":119,"context_line":"class TestUtils(test.TestCase):"},{"line_number":120,"context_line":"    def test_datetime_or_none(self):"},{"line_number":121,"context_line":"        dt \u003d timeutils.parse_isotime(timeutils.isotime())"},{"line_number":122,"context_line":"        self.assertEqual(utils.datetime_or_none(dt), dt)"},{"line_number":123,"context_line":"        self.assertEqual(utils.datetime_or_none(None), None)"},{"line_number":124,"context_line":"        self.assertRaises(ValueError, utils.datetime_or_none, \u0027foo\u0027)"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPX%2F%2F7k4%3D","line":122,"in_reply_to":"AAAAPX%2F%2F7pQ%3D","updated":"2013-06-05 20:00:13.000000000","message":"Important is relative, I suppose.  \n\nIt did kind of seem like the whole point of your patch though. :)","commit_id":"b90109c8c3e1c84a041fdec3f7d8d04a1f2b4193"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9a32c125d51938f437d8fc69a087183e5d362104","unresolved":false,"context_lines":[{"line_number":119,"context_line":"class TestUtils(test.TestCase):"},{"line_number":120,"context_line":"    def test_datetime_or_none(self):"},{"line_number":121,"context_line":"        dt \u003d timeutils.parse_isotime(timeutils.isotime())"},{"line_number":122,"context_line":"        self.assertEqual(utils.datetime_or_none(dt), dt)"},{"line_number":123,"context_line":"        self.assertEqual(utils.datetime_or_none(None), None)"},{"line_number":124,"context_line":"        self.assertRaises(ValueError, utils.datetime_or_none, \u0027foo\u0027)"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPX%2F%2F7pQ%3D","line":122,"in_reply_to":"AAAAPX%2F%2F7wM%3D","updated":"2013-06-05 19:43:59.000000000","message":"No, is that important?\n\n\u003csigh\u003e\n\nFixing :)","commit_id":"b90109c8c3e1c84a041fdec3f7d8d04a1f2b4193"}]}
