)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"1fd0b106ad9487344eec6daf7583a7426760b3d4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     zhangyangyang \u003czhangyangyang@unionpay.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-09-15 14:49:01 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix mocking of utcnow() for model datetime cols"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now when we are going to deprecate timeutils.set_time_override()"},{"line_number":10,"context_line":"and use mock instead, it easy to hit the following gotcha: when"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f2577a7_a4bd38d9","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":11},"updated":"2017-09-15 15:46:28.000000000","message":"This patch isn\u0027t about mocking and isn\u0027t using mock... should have a summary that better explains what it does.","commit_id":"f6b64e939fd52f4f7a624508c1b038d60e30cc91"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"1fd0b106ad9487344eec6daf7583a7426760b3d4","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix mocking of utcnow() for model datetime cols"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now when we are going to deprecate timeutils.set_time_override()"},{"line_number":10,"context_line":"and use mock instead, it easy to hit the following gotcha: when"},{"line_number":11,"context_line":"testr does tests discovering, it imports all modules within a given"},{"line_number":12,"context_line":"directory and it might happen that common.db.sqlalchemy.models"},{"line_number":13,"context_line":"is imported before timeutils.utcnow() is mocked in a test case."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f2577a7_84c23c58","line":10,"range":{"start_line":10,"start_character":8,"end_line":10,"end_character":12},"updated":"2017-09-15 15:46:28.000000000","message":"^","commit_id":"f6b64e939fd52f4f7a624508c1b038d60e30cc91"}],"cinder/db/sqlalchemy/models.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"03c313d3bde8548f362a42bde01ff6822067d39e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    binary \u003d Column(String(255))"},{"line_number":71,"context_line":"    # We want to overwrite default updated_at definition so we timestamp at"},{"line_number":72,"context_line":"    # creation as well, so we only need to check updated_at for the heartbeat"},{"line_number":73,"context_line":"    updated_at \u003d Column(DateTime, default\u003dtimeutils.utcnow,"},{"line_number":74,"context_line":"                        onupdate\u003dtimeutils.utcnow)"},{"line_number":75,"context_line":"    topic \u003d Column(String(255))"},{"line_number":76,"context_line":"    report_count \u003d Column(Integer, nullable\u003dFalse, default\u003d0)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f2577a7_246b7285","side":"PARENT","line":73,"updated":"2017-09-17 19:19:58.000000000","message":"These methods aren\u0027t called on loading the module as the commit message describes. Column wouldn\u0027t be initialized until runtime, and by that point timeutils.utcnow should be mocked if necessary.","commit_id":"def3cb7f043e1d7d6c37e7c9b916878ffcd0b93c"}]}
