)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"09131a289ae2ef159bd0547de67707c841b02402","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change the `updated_at` time of the image whenever image members are"},{"line_number":10,"context_line":"added, changed, deleted. This functionality was requested by the"},{"line_number":11,"context_line":"SearchLight project to facilitate correct notifications handling."},{"line_number":12,"context_line":"Please refer to the bug, for detailed discussion."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Closes-Bug: #1547079"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa6399be_43e7813f","line":11,"updated":"2016-10-14 19:24:30.000000000","message":"nit: is the project Searchlight or SearchLight? It just looks funny this way but I\u0027m not sure.","commit_id":"63ef99e35c69d9d8a2edde1e1db060406f2897bc"}],"glance/tests/functional/db/base.py":[{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"09131a289ae2ef159bd0547de67707c841b02402","unresolved":false,"context_lines":[{"line_number":1244,"context_line":"        }"},{"line_number":1245,"context_line":"        self.assertEqual(expected, actual)"},{"line_number":1246,"context_line":""},{"line_number":1247,"context_line":"    def test_image_member_update(self):"},{"line_number":1248,"context_line":"        TENANT1 \u003d str(uuid.uuid4())"},{"line_number":1249,"context_line":""},{"line_number":1250,"context_line":"        # NOTE(flaper87): Update auth token, otherwise"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_c37b9179","line":1247,"updated":"2016-10-14 19:24:30.000000000","message":"should probably add test_public_image_member_update since you discovered that is a special case.","commit_id":"63ef99e35c69d9d8a2edde1e1db060406f2897bc"},{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"09131a289ae2ef159bd0547de67707c841b02402","unresolved":false,"context_lines":[{"line_number":1274,"context_line":""},{"line_number":1275,"context_line":"        # Make sure image `updated_at` timestamp has changed"},{"line_number":1276,"context_line":"        image \u003d self.db_api.image_get(self.context, UUID1)"},{"line_number":1277,"context_line":"        self.assertTrue(image[\u0027updated_at\u0027] \u003e original_update_time)"},{"line_number":1278,"context_line":""},{"line_number":1279,"context_line":"        self.assertNotEqual(member[\u0027created_at\u0027], member[\u0027updated_at\u0027])"},{"line_number":1280,"context_line":"        member.pop(\u0027id\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa6399be_e86f94f9","line":1277,"updated":"2016-10-14 19:24:30.000000000","message":"first, use assertGreater instead of assertTrue as failures provide more helpful messages.\n\nsecond, this assertion has the potential to fail because the timestamp precision is insufficient. the best way to address this is by mocking timeutils.utcnow() which might be challenging but will allow you to ensure that the test is reliable.","commit_id":"63ef99e35c69d9d8a2edde1e1db060406f2897bc"}]}
