)]}'
{"keystone/tests/unit/test_ldap_livetest.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"892d6c5f8c8e69f5894949f5fe939cb2a704398b","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.assertEqual(user_api.tree_dn, CONF.ldap.user_tree_dn)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def tearDown(self):"},{"line_number":94,"context_line":"        tests.TestCase.tearDown(self)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_ldap_dereferencing(self):"},{"line_number":97,"context_line":"        alt_users_ldif \u003d {\u0027objectclass\u0027: [\u0027top\u0027, \u0027organizationalUnit\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_90f7cf8b","side":"PARENT","line":94,"updated":"2015-07-31 14:47:07.000000000","message":"Funny how useless this is.","commit_id":"08a5720c4e27944bd0dd5a9894678f878bf156e8"}],"keystone/tests/unit/test_sql_upgrade.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"892d6c5f8c8e69f5894949f5fe939cb2a704398b","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        # auto-detect the highest available schema version in the migrate_repo"},{"line_number":170,"context_line":"        self.max_version \u003d self.schema.repository.version().version"},{"line_number":171,"context_line":"        self.addCleanup(self._cleanup)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def _cleanup(self):"},{"line_number":174,"context_line":"        sqlalchemy.orm.session.Session.close_all()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_f0ff3364","line":171,"updated":"2015-07-31 14:47:07.000000000","message":"Adding the cleanup here is no better than it was before. It still won\u0027t be run if there was an exception is the setUp.","commit_id":"f662919880e2f5f37a5f36930b53de9bc34c7c9a"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"00b449ab783c94bade56e9b07094fd888feafa91","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        # auto-detect the highest available schema version in the migrate_repo"},{"line_number":170,"context_line":"        self.max_version \u003d self.schema.repository.version().version"},{"line_number":171,"context_line":"        self.addCleanup(self._cleanup)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def _cleanup(self):"},{"line_number":174,"context_line":"        sqlalchemy.orm.session.Session.close_all()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_3faf8d7e","line":171,"in_reply_to":"3a50d1a3_1302d03e","updated":"2015-08-01 14:31:29.000000000","message":"If the last thing you do in the setUp is add the cleanup then there is no way it can be called if setUp fails because the failure would happen before you added the cleanUp.","commit_id":"f662919880e2f5f37a5f36930b53de9bc34c7c9a"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"d4af69fd71b7d218dc8dc74417601401faaa2e60","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        # auto-detect the highest available schema version in the migrate_repo"},{"line_number":170,"context_line":"        self.max_version \u003d self.schema.repository.version().version"},{"line_number":171,"context_line":"        self.addCleanup(self._cleanup)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def _cleanup(self):"},{"line_number":174,"context_line":"        sqlalchemy.orm.session.Session.close_all()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_8930de57","line":171,"in_reply_to":"3a50d1a3_3faf8d7e","updated":"2015-08-03 02:35:35.000000000","message":"yep, thanks David.","commit_id":"f662919880e2f5f37a5f36930b53de9bc34c7c9a"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"197426ee674d48451481e108fa6a9e7c3bb3a748","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        # auto-detect the highest available schema version in the migrate_repo"},{"line_number":170,"context_line":"        self.max_version \u003d self.schema.repository.version().version"},{"line_number":171,"context_line":"        self.addCleanup(self._cleanup)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def _cleanup(self):"},{"line_number":174,"context_line":"        sqlalchemy.orm.session.Session.close_all()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_1302d03e","line":171,"in_reply_to":"3a50d1a3_f0ff3364","updated":"2015-08-01 03:20:32.000000000","message":"@David,\n\nI am not quite sure how this logic is implemented, but just believe in what docstring is saying, \"Cleanup items are called even if setUp fails (unlike tearDown)\" pls see,\nhttp://testtools.readthedocs.org/en/latest/api.html#testtools.TestCase.addCleanup\n\nAnd the example there which use addCleanup just as it is, pls see, \nhttp://testtools.readthedocs.org/en/latest/for-test-authors.html#a-realistic-example.","commit_id":"f662919880e2f5f37a5f36930b53de9bc34c7c9a"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"58b17317743adc7eda19fa133d299f7c27726c1d","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        # drop tables and FKs."},{"line_number":174,"context_line":"        self.addCleanup(self._cleanupDB)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        self.addCleanup(sql.cleanup)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def _cleanupDB(self):"},{"line_number":179,"context_line":"        meta \u003d sqlalchemy.MetaData()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_56a0a8f4","line":176,"updated":"2015-08-03 19:42:57.000000000","message":"The cleanups get called in reverse order, so where before the code did the _cleanupDB() stuff and then sql.cleanup(), it now does sql.cleanup() and then self._cleanupDB().\n\nSo if the order was correct before, then cleanups should be:\n\n self.addCleanup(sql.cleanup)\n self.addCleanup(self._cleanupDB)\n self.addCleanup(sqlalchemy.orm.session.Session.close_all)\n\nI think it\u0027s more correct to put the \"self.addCleanup(sqlalchemy.orm.session.Session.close_all)\" last so I\u0027m fine with where it is in this patch set.\n\nBut, I don\u0027t think it\u0027s correct to change so that sql.cleanup() is done before _cleanupDB(). So either leave sql.cleanup() in _cleanupDB(), or change the order of these 2 cleanups.\n\nOr, maybe there\u0027s a reason that the order should change and if that\u0027s the case then say it in the commit message.","commit_id":"5e37258cbc3eda4a16bb7d1aabd28bfa1277e29e"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"c2609f7d957f0c2c0e992338237a69af24f21e36","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        # drop tables and FKs."},{"line_number":174,"context_line":"        self.addCleanup(self._cleanupDB)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        self.addCleanup(sql.cleanup)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def _cleanupDB(self):"},{"line_number":179,"context_line":"        meta \u003d sqlalchemy.MetaData()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_60658cdf","line":176,"in_reply_to":"1a4dcd0f_56a0a8f4","updated":"2015-08-05 02:13:40.000000000","message":"Done","commit_id":"5e37258cbc3eda4a16bb7d1aabd28bfa1277e29e"}]}
