)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0b9e59ec0f425e0d4b44da2a28eeee9a5eeda441","unresolved":false,"context_lines":[{"line_number":27,"context_line":"The following configuration files have had a number of elements"},{"line_number":28,"context_line":"extracted to be used within the config fixture instead of the"},{"line_number":29,"context_line":"configuration files. Most of these files contain controls that"},{"line_number":30,"context_line":"need to be overriable to test against alternative (non internal /"},{"line_number":31,"context_line":"in-memory) \"live\" configurations."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"   keystone/tests/backend_ldap.conf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAWH%2F%2FkBk%3D","line":30,"updated":"2014-03-17 01:19:41.000000000","message":"change \"overriable\" to \"overridable\"","commit_id":"ba2410488992862116e9b521fb9d10ef6db918ec"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"5a644133de3c8689da47bdb0b388e4b560902700","unresolved":false,"context_lines":[{"line_number":27,"context_line":"The following configuration files have had a number of elements"},{"line_number":28,"context_line":"extracted to be used within the config fixture instead of the"},{"line_number":29,"context_line":"configuration files. Most of these files contain controls that"},{"line_number":30,"context_line":"need to be overriable to test against alternative (non internal /"},{"line_number":31,"context_line":"in-memory) \"live\" configurations."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"   keystone/tests/backend_ldap.conf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAWH%2F%2FjQw%3D","line":30,"in_reply_to":"AAAAWH%2F%2FkBk%3D","updated":"2014-03-17 05:41:27.000000000","message":"Done in next patch.","commit_id":"ba2410488992862116e9b521fb9d10ef6db918ec"}],"keystone/tests/core.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"1ae77d5b692083de8eaa83ca14375ef708ceb15e","unresolved":false,"context_lines":[{"line_number":431,"context_line":""},{"line_number":432,"context_line":"        self.logger \u003d self.useFixture(fixtures.FakeLogger(level\u003dlogging.DEBUG))"},{"line_number":433,"context_line":"        warnings.filterwarnings(\u0027ignore\u0027, category\u003dDeprecationWarning)"},{"line_number":434,"context_line":"        ksfixtures.Cache().setUp()"},{"line_number":435,"context_line":"        self.useFixture(ksfixtures.Cache())"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        # Clear the registry of providers so that providers from previous"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2Fy2k%3D","line":434,"updated":"2014-03-13 19:12:37.000000000","message":"Is there any reason why you are not just using:\n\n  self.useFixture(ksfixtures.Cache())","commit_id":"d967ab0f699243f6bf4f0ce81c753fc8861ae0c0"}],"keystone/tests/test_associate_project_endpoint_extension.py":[{"author":{"_account_id":9098,"name":"Nathan Kinder","email":"nkinder@redhat.com","username":"nkinder"},"change_message_id":"01ff36fe4c8a7d66e2076b89755ef6ac268c8beb","unresolved":false,"context_lines":[{"line_number":471,"context_line":"                     \u0027endpoint_id\u0027: self.endpoint_id},"},{"line_number":472,"context_line":"                 expected_status\u003d204)"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":"        # Add a disabled endpoint to the default project."},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        # Create a disabled endpoint that\u0027s like the enabled one."},{"line_number":477,"context_line":"        disabled_endpoint_ref \u003d copy.copy(self.endpoint)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2FwO4%3D","line":474,"updated":"2014-03-14 01:34:32.000000000","message":"This comment seems out of place.  Perhaps it should be just before you actually add the disabled endpoint at line 487.","commit_id":"ba2410488992862116e9b521fb9d10ef6db918ec"},{"author":{"_account_id":9098,"name":"Nathan Kinder","email":"nkinder@redhat.com","username":"nkinder"},"change_message_id":"0764d913ffc3dbbfe81ca6dcfb4ea4a4aadcb5b9","unresolved":false,"context_lines":[{"line_number":471,"context_line":"                     \u0027endpoint_id\u0027: self.endpoint_id},"},{"line_number":472,"context_line":"                 expected_status\u003d204)"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":"        # Add a disabled endpoint to the default project."},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        # Create a disabled endpoint that\u0027s like the enabled one."},{"line_number":477,"context_line":"        disabled_endpoint_ref \u003d copy.copy(self.endpoint)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2Fm%2Bo%3D","line":474,"in_reply_to":"AAAAWH%2F%2FqCY%3D","updated":"2014-03-15 05:39:37.000000000","message":"Sure, it can be separate.  I\u0027ll go ahead and +1 this.","commit_id":"ba2410488992862116e9b521fb9d10ef6db918ec"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"5204ff43fc4367eb4bbc03e275e0f3a44fdfd5fd","unresolved":false,"context_lines":[{"line_number":471,"context_line":"                     \u0027endpoint_id\u0027: self.endpoint_id},"},{"line_number":472,"context_line":"                 expected_status\u003d204)"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":"        # Add a disabled endpoint to the default project."},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        # Create a disabled endpoint that\u0027s like the enabled one."},{"line_number":477,"context_line":"        disabled_endpoint_ref \u003d copy.copy(self.endpoint)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2FqCY%3D","line":474,"in_reply_to":"AAAAWH%2F%2FwO4%3D","updated":"2014-03-14 17:24:16.000000000","message":"This should probably be a cleanup separately since it would be an unrelated change.","commit_id":"ba2410488992862116e9b521fb9d10ef6db918ec"}],"keystone/tests/test_auth.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0b9e59ec0f425e0d4b44da2a28eeee9a5eeda441","unresolved":false,"context_lines":[{"line_number":972,"context_line":""},{"line_number":973,"context_line":"    def config_files(self):"},{"line_number":974,"context_line":"        config_files \u003d super(AuthCatalog, self).config_files()"},{"line_number":975,"context_line":"        config_files.append(tests.dirs.tests(\u0027backend_sql.conf\u0027))"},{"line_number":976,"context_line":"        return config_files"},{"line_number":977,"context_line":""},{"line_number":978,"context_line":"    def config_overrides(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2Fj%2Bg%3D","line":975,"updated":"2014-03-17 01:19:41.000000000","message":"suggest leave the comment here since it\u0027s not obvious to me why these tests should be using the sql catalog and not a kvs catalog.","commit_id":"ba2410488992862116e9b521fb9d10ef6db918ec"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"bdfd6ea6e8195bc15f67ce0b9ac81f04488c7b10","unresolved":false,"context_lines":[{"line_number":972,"context_line":""},{"line_number":973,"context_line":"    def config_files(self):"},{"line_number":974,"context_line":"        config_files \u003d super(AuthCatalog, self).config_files()"},{"line_number":975,"context_line":"        config_files.append(tests.dirs.tests(\u0027backend_sql.conf\u0027))"},{"line_number":976,"context_line":"        return config_files"},{"line_number":977,"context_line":""},{"line_number":978,"context_line":"    def config_overrides(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2FjSk%3D","line":975,"in_reply_to":"AAAAWH%2F%2Fj%2Bg%3D","updated":"2014-03-17 05:40:24.000000000","message":"Done in next patch","commit_id":"ba2410488992862116e9b521fb9d10ef6db918ec"}],"keystone/tests/test_auth_plugin.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0b9e59ec0f425e0d4b44da2a28eeee9a5eeda441","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            driver\u003d\u0027keystone.token.backends.sql.Token\u0027)"},{"line_number":100,"context_line":"        self.config_fixture.config("},{"line_number":101,"context_line":"            group\u003d\u0027trust\u0027,"},{"line_number":102,"context_line":"            driver\u003d\u0027keystone.trust.backends.sql.Trust\u0027)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def config(self, config_files):"},{"line_number":105,"context_line":"        super(TestAuthPlugin, self).config(config_files)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2Fj9Y%3D","line":102,"updated":"2014-03-17 01:19:41.000000000","message":"this code is copy-pasted all over the place now. Suggest put it in a function.","commit_id":"ba2410488992862116e9b521fb9d10ef6db918ec"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"bdfd6ea6e8195bc15f67ce0b9ac81f04488c7b10","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            driver\u003d\u0027keystone.token.backends.sql.Token\u0027)"},{"line_number":100,"context_line":"        self.config_fixture.config("},{"line_number":101,"context_line":"            group\u003d\u0027trust\u0027,"},{"line_number":102,"context_line":"            driver\u003d\u0027keystone.trust.backends.sql.Trust\u0027)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def config(self, config_files):"},{"line_number":105,"context_line":"        super(TestAuthPlugin, self).config(config_files)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2FjSg%3D","line":102,"in_reply_to":"AAAAWH%2F%2Fj9Y%3D","updated":"2014-03-17 05:40:24.000000000","message":"I\u0027ll see about consolidating this down, perhaps onto a clear \"SQL\" base test class.","commit_id":"ba2410488992862116e9b521fb9d10ef6db918ec"}],"keystone/tests/test_backend_ldap.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"bd1e28409881456d61bf13eb7c6a501528addf17","unresolved":false,"context_lines":[{"line_number":518,"context_line":"        self.skipTest(\"Using arbitrary attributes doesn\u0027t work under LDAP\")"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"class LDAPIdentity(BaseLDAPIdentity, tests.TestCase):"},{"line_number":522,"context_line":"    def setUp(self):"},{"line_number":523,"context_line":"        super(LDAPIdentity, self).setUp()"},{"line_number":524,"context_line":"        self.clear_database()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2B8u0%3D","line":521,"updated":"2014-03-11 04:14:44.000000000","message":"Order was switched due to MRO lookup","commit_id":"17046c4417d20de2580b8e43b8b2d568b08795c8"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"bd1e28409881456d61bf13eb7c6a501528addf17","unresolved":false,"context_lines":[{"line_number":1194,"context_line":"            \"Enabled emulation conflicts with enabled mask\")"},{"line_number":1195,"context_line":""},{"line_number":1196,"context_line":""},{"line_number":1197,"context_line":"class LdapIdentitySqlAssignment(BaseLDAPIdentity, tests.TestCase):"},{"line_number":1198,"context_line":""},{"line_number":1199,"context_line":"    def config_files(self):"},{"line_number":1200,"context_line":"        config_files \u003d super(LdapIdentitySqlAssignment, self).config_files()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2B8uw%3D","line":1197,"updated":"2014-03-11 04:14:44.000000000","message":"Order was switched due to MRO lookup","commit_id":"17046c4417d20de2580b8e43b8b2d568b08795c8"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"bd1e28409881456d61bf13eb7c6a501528addf17","unresolved":false,"context_lines":[{"line_number":1257,"context_line":"        self.skipTest(\u0027Blocked by bug 1221805\u0027)"},{"line_number":1258,"context_line":""},{"line_number":1259,"context_line":""},{"line_number":1260,"context_line":"class MultiLDAPandSQLIdentity(BaseLDAPIdentity, tests.TestCase):"},{"line_number":1261,"context_line":"    \"\"\"Class to test common SQL plus individual LDAP backends."},{"line_number":1262,"context_line":""},{"line_number":1263,"context_line":"    We define a set of domains and domain-specific backends:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2B8uo%3D","line":1260,"updated":"2014-03-11 04:14:44.000000000","message":"Order was switched due to MRO lookup","commit_id":"17046c4417d20de2580b8e43b8b2d568b08795c8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0b9e59ec0f425e0d4b44da2a28eeee9a5eeda441","unresolved":false,"context_lines":[{"line_number":518,"context_line":"        self.skipTest(\"Using arbitrary attributes doesn\u0027t work under LDAP\")"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"class LDAPIdentity(BaseLDAPIdentity, tests.TestCase):"},{"line_number":522,"context_line":"    def setUp(self):"},{"line_number":523,"context_line":"        super(LDAPIdentity, self).setUp()"},{"line_number":524,"context_line":"        self.clear_database()"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2Fj8g%3D","line":521,"updated":"2014-03-17 01:19:41.000000000","message":"why change the order?","commit_id":"ba2410488992862116e9b521fb9d10ef6db918ec"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"bdfd6ea6e8195bc15f67ce0b9ac81f04488c7b10","unresolved":false,"context_lines":[{"line_number":518,"context_line":"        self.skipTest(\"Using arbitrary attributes doesn\u0027t work under LDAP\")"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"class LDAPIdentity(BaseLDAPIdentity, tests.TestCase):"},{"line_number":522,"context_line":"    def setUp(self):"},{"line_number":523,"context_line":"        super(LDAPIdentity, self).setUp()"},{"line_number":524,"context_line":"        self.clear_database()"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2FjSE%3D","line":521,"in_reply_to":"AAAAWH%2F%2Fj8g%3D","updated":"2014-03-17 05:40:24.000000000","message":"MRO related. If the order is not inverted, the config_overrides and config_files is called incorrectly. Essentially, it would do the lookup and call the config_overrides and config_files method on test.TestCase first, this way it works as expected, Local, BaseLDAPIdentity, tests.TestCase.\n\nIf you look in the SQL backends test, it is \"sql tests\" then tests.testcase already. This is consistent and makes MRO happy for method lookup.","commit_id":"ba2410488992862116e9b521fb9d10ef6db918ec"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0b9e59ec0f425e0d4b44da2a28eeee9a5eeda441","unresolved":false,"context_lines":[{"line_number":1257,"context_line":"        self.skipTest(\u0027Blocked by bug 1221805\u0027)"},{"line_number":1258,"context_line":""},{"line_number":1259,"context_line":""},{"line_number":1260,"context_line":"class MultiLDAPandSQLIdentity(BaseLDAPIdentity, tests.TestCase):"},{"line_number":1261,"context_line":"    \"\"\"Class to test common SQL plus individual LDAP backends."},{"line_number":1262,"context_line":""},{"line_number":1263,"context_line":"    We define a set of domains and domain-specific backends:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F%2Fj8I%3D","line":1260,"updated":"2014-03-17 01:19:41.000000000","message":"why change the order?","commit_id":"ba2410488992862116e9b521fb9d10ef6db918ec"}]}
