)]}'
{"glance/tests/functional/db/test_sqlalchemy.py":[{"author":{"_account_id":7884,"name":"Noboru Arai","email":"arai@mxa.nes.nec.co.jp","username":"NoboruArai"},"change_message_id":"39c32fcd3b3c6f7498ad5449e64a090dc2508dd0","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        self.assertRaises(exception.NotFound,"},{"line_number":61,"context_line":"                          self.db_api.user_get_storage_usage,"},{"line_number":62,"context_line":"                          self.context, \u0027fake_owner_id\u0027, image_id)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def test_image_get_all_with_filter_changes_since(self):"},{"line_number":65,"context_line":"        # FIXME: move this method to functional/db/base.py,"},{"line_number":66,"context_line":"        #       when \"change-since\" function is implemented in simple db."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2BFIM%3D","line":63,"updated":"2014-01-30 11:25:27.000000000","message":"@Fei, Thanks you for your advice.\n\nOn reflection, I moved test code into functional/db/test_sqlalchemy.py.\n\nThe main reasons for this are as follows.\n -this code is independent of API Version and test code about sqlalchemy.\n  (as Fei\u0027s comment)\n\n -this code should be in base.DriverTests of functional/db/base.py because\n  all DB classes have \"image_get_all\" method. But, as far as I checked source, \n  \"change-since\" option is\u0027nt implementedin simple DB.(in my trial,\n  if \"change-since\" option is set this method returns always empty list.)\n\n    IMO, because implementation of simple DB is out of scope in this patch,\n   I would prefer that test code is in sqlalchemy dedicated class.\n\nIf I\u0027m wrong, or there are better implementation, let me know.","commit_id":"84fd965df4bd5602013d8f011111f467074914e2"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"558c2fe27ce2fb785704d18dd051d5477a36d374","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                                           filters\u003d{"},{"line_number":98,"context_line":"                                               \u0027changes-since\u0027: before_ts"},{"line_number":99,"context_line":"                                           })"},{"line_number":100,"context_line":"        self.assertEqual(len(images), 1)"},{"line_number":101,"context_line":"        self.assertEqual(images[0][\u0027id\u0027], image_id)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        #  if updated_at \u003d\u003d  changes-since , return list"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2BdxI%3D","line":100,"updated":"2014-02-21 00:57:22.000000000","message":"The arguments of assertEqual should be \"expected\", \"actual\" in the order.","commit_id":"84fd965df4bd5602013d8f011111f467074914e2"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"558c2fe27ce2fb785704d18dd051d5477a36d374","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                                               \u0027changes-since\u0027: before_ts"},{"line_number":99,"context_line":"                                           })"},{"line_number":100,"context_line":"        self.assertEqual(len(images), 1)"},{"line_number":101,"context_line":"        self.assertEqual(images[0][\u0027id\u0027], image_id)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        #  if updated_at \u003d\u003d  changes-since , return list"},{"line_number":104,"context_line":"        images \u003d self.db_api.image_get_all(self.context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2BdxE%3D","line":101,"updated":"2014-02-21 00:57:22.000000000","message":"ditto","commit_id":"84fd965df4bd5602013d8f011111f467074914e2"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"558c2fe27ce2fb785704d18dd051d5477a36d374","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                                           filters\u003d{"},{"line_number":106,"context_line":"                                               \u0027changes-since\u0027: just_ts"},{"line_number":107,"context_line":"                                           })"},{"line_number":108,"context_line":"        self.assertEqual(len(images), 1)"},{"line_number":109,"context_line":"        self.assertEqual(images[0][\u0027id\u0027], image_id)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        #  if updated_at \u003c  changes-since , filter out"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2Bdw8%3D","line":108,"updated":"2014-02-21 00:57:22.000000000","message":"ditto","commit_id":"84fd965df4bd5602013d8f011111f467074914e2"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"558c2fe27ce2fb785704d18dd051d5477a36d374","unresolved":false,"context_lines":[{"line_number":106,"context_line":"                                               \u0027changes-since\u0027: just_ts"},{"line_number":107,"context_line":"                                           })"},{"line_number":108,"context_line":"        self.assertEqual(len(images), 1)"},{"line_number":109,"context_line":"        self.assertEqual(images[0][\u0027id\u0027], image_id)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        #  if updated_at \u003c  changes-since , filter out"},{"line_number":112,"context_line":"        images \u003d self.db_api.image_get_all(self.context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2Bdww%3D","line":109,"updated":"2014-02-21 00:57:22.000000000","message":"ditto","commit_id":"84fd965df4bd5602013d8f011111f467074914e2"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"558c2fe27ce2fb785704d18dd051d5477a36d374","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                                           filters\u003d{"},{"line_number":114,"context_line":"                                               \u0027changes-since\u0027: after_ts"},{"line_number":115,"context_line":"                                           })"},{"line_number":116,"context_line":"        self.assertEqual(len(images), 0)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"class TestSqlAlchemyVisibility(base.TestVisibility, base.VisibilityTests):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2Bdwk%3D","line":116,"updated":"2014-02-21 00:57:22.000000000","message":"ditto","commit_id":"84fd965df4bd5602013d8f011111f467074914e2"},{"author":{"_account_id":9520,"name":"David Koo (koofoss)","email":"david.koo@huawei.com","username":"koofoss"},"change_message_id":"406eb5beccfebae5e4d152cf5543f484ee8b8168","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        before_ts \u003d datetime.datetime(2114, 12, 31, 23, 59, 58)"},{"line_number":71,"context_line":"        just_ts \u003d datetime.datetime(2114, 12, 31, 23, 59, 59)"},{"line_number":72,"context_line":"        after_ts \u003d datetime.datetime(2115, 1, 1, 0, 0, 0)"},{"line_number":73,"context_line":"        image_id \u003d str(uuid.uuid4())"},{"line_number":74,"context_line":"        value \u003d {"},{"line_number":75,"context_line":"            \u0027id\u0027: image_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2FuIs%3D","line":72,"updated":"2014-02-25 04:02:25.000000000","message":"It\u0027s not a deal breaker but I\u0027m just wondering whether the test would be clearer if you use datetime and timedelta:\n\n  create_date \u003d datetime.datetime(2114, 12, 31, 23, 59, 59)\n  one_sec \u003d datetime.timedelta(seconds\u003d1)\n\nThen later on:\n\n   images \u003d self.db_api_get_all(self.context,\n       filters\u003d{\u0027changes-since\u0027: create_date - one_sec})\n   ...\n   images \u003d self.db_api_get_all(self.context,\n       filters\u003d{\u0027changes-since\u0027: create_date})\n   ...\n   images \u003d self.db_api_get_all(self.context,\n       filters\u003d{\u0027changes-since\u0027: create_date + one_sec})\n\nThe relationship between the dates is a little more obvious (don\u0027t need to parse 3 datetime structures).\n\nWhat do you think?","commit_id":"d901deabb5f8692595afe27174b0993dde1e6201"},{"author":{"_account_id":9533,"name":"Eiichi Aikawa","email":"aikawa@mxk.nes.nec.co.jp","username":"EiichiAikawa"},"change_message_id":"9d5183cd2e151ef29205b5f6343e7aa76f39317b","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        before_ts \u003d datetime.datetime(2114, 12, 31, 23, 59, 58)"},{"line_number":71,"context_line":"        just_ts \u003d datetime.datetime(2114, 12, 31, 23, 59, 59)"},{"line_number":72,"context_line":"        after_ts \u003d datetime.datetime(2115, 1, 1, 0, 0, 0)"},{"line_number":73,"context_line":"        image_id \u003d str(uuid.uuid4())"},{"line_number":74,"context_line":"        value \u003d {"},{"line_number":75,"context_line":"            \u0027id\u0027: image_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F0wI%3D","line":72,"in_reply_to":"AAAAU3%2F%2FuIs%3D","updated":"2014-02-28 02:00:49.000000000","message":"Thanks for your good advice. I think your idea can make the test meanings more clear.\nBut at this time, I will not modify them because I want to limit the changes.\nplease understand.","commit_id":"d901deabb5f8692595afe27174b0993dde1e6201"},{"author":{"_account_id":9520,"name":"David Koo (koofoss)","email":"david.koo@huawei.com","username":"koofoss"},"change_message_id":"406eb5beccfebae5e4d152cf5543f484ee8b8168","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                           \u0027metadata\u0027: {}}],"},{"line_number":91,"context_line":"            \u0027properties\u0027: {},"},{"line_number":92,"context_line":"        }"},{"line_number":93,"context_line":"        image \u003d self.db_api.image_create(self.context, value)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        #  if updated_at \u003e changes-since , return list"},{"line_number":96,"context_line":"        images \u003d self.db_api.image_get_all(self.context,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2FuNQ%3D","line":93,"updated":"2014-02-25 04:02:25.000000000","message":"Since you don\u0027t care about the result of the call, why not just:\n\n   self.db_api.image_create(self.context, {\n       \u0027id\u0027: image_id,\n       ...,\n       })\n\n?","commit_id":"d901deabb5f8692595afe27174b0993dde1e6201"},{"author":{"_account_id":9533,"name":"Eiichi Aikawa","email":"aikawa@mxk.nes.nec.co.jp","username":"EiichiAikawa"},"change_message_id":"9d5183cd2e151ef29205b5f6343e7aa76f39317b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                           \u0027metadata\u0027: {}}],"},{"line_number":91,"context_line":"            \u0027properties\u0027: {},"},{"line_number":92,"context_line":"        }"},{"line_number":93,"context_line":"        image \u003d self.db_api.image_create(self.context, value)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        #  if updated_at \u003e changes-since , return list"},{"line_number":96,"context_line":"        images \u003d self.db_api.image_get_all(self.context,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F6%2B8%3D","line":93,"in_reply_to":"AAAAU3%2F%2FuNQ%3D","updated":"2014-02-28 02:00:49.000000000","message":"Thanks.\nI will remove the part of \"image \u003d \".","commit_id":"d901deabb5f8692595afe27174b0993dde1e6201"}]}
