)]}'
{"ceilometer/tests/storage/test_impl_sqlalchemy.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c78e58d99ed5d6e3442696522bbb1a1dc156d9a0","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        self.assertEqual(5, session.query(sql_models.Sample).count())"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        resource_ids \u003d (session.query(sql_models.Resource.internal_id)"},{"line_number":186,"context_line":"                        .group_by(sql_models.Resource.internal_id))"},{"line_number":187,"context_line":"        meta_tables \u003d [sql_models.MetaText, sql_models.MetaFloat,"},{"line_number":188,"context_line":"                       sql_models.MetaBigInt, sql_models.MetaBool]"},{"line_number":189,"context_line":"        s \u003d set()"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_c1dc6b1b","line":186,"updated":"2015-02-09 17:04:17.000000000","message":"probably an oversight, but we should really check that resource table is empty too or the below check can still pass","commit_id":"5a65b4de0fe46967e76832c2acf4924a53b18612"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"40daec202494903c35b5415de9e4be8b868253d6","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        self.assertEqual(5, session.query(sql_models.Sample).count())"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        resource_ids \u003d (session.query(sql_models.Resource.internal_id)"},{"line_number":186,"context_line":"                        .group_by(sql_models.Resource.internal_id))"},{"line_number":187,"context_line":"        meta_tables \u003d [sql_models.MetaText, sql_models.MetaFloat,"},{"line_number":188,"context_line":"                       sql_models.MetaBigInt, sql_models.MetaBool]"},{"line_number":189,"context_line":"        s \u003d set()"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_c1946bea","line":186,"in_reply_to":"da86d52c_c1dc6b1b","updated":"2015-02-09 17:12:16.000000000","message":"the resource table is not empty since we still have samples there\n\nps: the group_by statement is not necessary actually","commit_id":"5a65b4de0fe46967e76832c2acf4924a53b18612"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"c78e58d99ed5d6e3442696522bbb1a1dc156d9a0","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                                 .filter(~table.id.in_(resource_ids)).count()"},{"line_number":193,"context_line":"                                 ))"},{"line_number":194,"context_line":"            s.update(session.query(table.id).all())"},{"line_number":195,"context_line":"        self.assertEqual(set(resource_ids.all()), s)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"class CapabilitiesTest(test_base.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_d0627b15","line":195,"updated":"2015-02-09 17:04:17.000000000","message":"what\u0027s the point of this extra assertion?","commit_id":"5a65b4de0fe46967e76832c2acf4924a53b18612"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"8b801b2388b816c70638d523b42f9c9f3e7c2113","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                                 .filter(~table.id.in_(resource_ids)).count()"},{"line_number":193,"context_line":"                                 ))"},{"line_number":194,"context_line":"            s.update(session.query(table.id).all())"},{"line_number":195,"context_line":"        self.assertEqual(set(resource_ids.all()), s)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"class CapabilitiesTest(test_base.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_8937ecaf","line":195,"in_reply_to":"da86d52c_514dac71","updated":"2015-02-09 22:05:13.000000000","message":"ah got it.","commit_id":"5a65b4de0fe46967e76832c2acf4924a53b18612"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"40daec202494903c35b5415de9e4be8b868253d6","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                                 .filter(~table.id.in_(resource_ids)).count()"},{"line_number":193,"context_line":"                                 ))"},{"line_number":194,"context_line":"            s.update(session.query(table.id).all())"},{"line_number":195,"context_line":"        self.assertEqual(set(resource_ids.all()), s)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"class CapabilitiesTest(test_base.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_514dac71","line":195,"in_reply_to":"da86d52c_d0627b15","updated":"2015-02-09 17:12:16.000000000","message":"we have metadata (see prepare_data) for each sample, so the metadata tables\u0027 id collection should be equal to resource internal ids\n\nthis check is the most important one, with this statement, the L191 check actually not needed, L191 is weak and cannot cover the case that metadata tables are cleared (which is exactly why the bug is reported)\n\nL195 means: metadata tables\u0027 id should in, can only in, and should cover all of resource internal id collections","commit_id":"5a65b4de0fe46967e76832c2acf4924a53b18612"}]}
