)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"13bb79dbfb99671f4f4bc6ebb8a708d8f49bc189","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Update request returns old value of field \u0027enabled\u0027 when"},{"line_number":10,"context_line":"we use LDAP backends and flag tenant_enabled_emulation is True."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes bug 1318927"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I4b0c76a181e14a11df0cd14141abfdf78d4cedee"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7adec928_1b80f089","line":12,"updated":"2014-05-20 01:08:38.000000000","message":"This should be \"Closes-Bug: #1318927\"","commit_id":"373ee30eaa0987cc52f83ff85698d5978a1b50e4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"645d8c211117db6442a9003d845e4cfb10eb8e22","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sergey Nikitin \u003csnikitin@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-05-27 10:42:05 +0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixed wrong behavior when updating tenant with LDAP backends"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Update request returns old value of field \u0027enabled\u0027 when"},{"line_number":10,"context_line":"we use LDAP backends and flag tenant_enabled_emulation is True."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3ae8d1ca_2602850b","line":7,"updated":"2014-05-29 05:45:17.000000000","message":"updating tenant or user?","commit_id":"a2a33ca00573d33a4ce1564c9604ff9d6bb11f86"}],"keystone/tests/test_backend.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"469197d138d129ab94f8c910f3d0ba6abe99da21","unresolved":false,"context_lines":[{"line_number":3028,"context_line":"        # SQL backend adds \u0027extra\u0027 field"},{"line_number":3029,"context_line":"        updated_project_ref.pop(\u0027extra\u0027, None)"},{"line_number":3030,"context_line":""},{"line_number":3031,"context_line":"        self.assertFalse(updated_project_ref[\u0027enabled\u0027])"},{"line_number":3032,"context_line":""},{"line_number":3033,"context_line":"        project_ref \u003d self.assignment_api.get_project(project[\u0027id\u0027])"},{"line_number":3034,"context_line":"        self.assertDictEqual(project_ref, updated_project_ref)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ae8d1ca_9fc9375d","line":3031,"updated":"2014-05-27 00:44:08.000000000","message":"This should be assertIs(False, updated_project_ref[\u0027enabled\u0027]) -- that way it also asserts that the value is a boolean and not an empty string or something.","commit_id":"b5647695086b55a55c3898f334dc585508c81ced"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"5c86ebc450ba33ea62b1274a8a9cd58986bf5978","unresolved":false,"context_lines":[{"line_number":3028,"context_line":"        # SQL backend adds \u0027extra\u0027 field"},{"line_number":3029,"context_line":"        updated_project_ref.pop(\u0027extra\u0027, None)"},{"line_number":3030,"context_line":""},{"line_number":3031,"context_line":"        self.assertFalse(updated_project_ref[\u0027enabled\u0027])"},{"line_number":3032,"context_line":""},{"line_number":3033,"context_line":"        project_ref \u003d self.assignment_api.get_project(project[\u0027id\u0027])"},{"line_number":3034,"context_line":"        self.assertDictEqual(project_ref, updated_project_ref)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ae8d1ca_b16702ea","line":3031,"in_reply_to":"3ae8d1ca_9fc9375d","updated":"2014-05-27 06:42:16.000000000","message":"yes, you are right","commit_id":"b5647695086b55a55c3898f334dc585508c81ced"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"469197d138d129ab94f8c910f3d0ba6abe99da21","unresolved":false,"context_lines":[{"line_number":3051,"context_line":"        # SQL backend adds \u0027extra\u0027 field"},{"line_number":3052,"context_line":"        updated_user_ref.pop(\u0027extra\u0027, None)"},{"line_number":3053,"context_line":""},{"line_number":3054,"context_line":"        self.assertFalse(updated_user_ref[\u0027enabled\u0027])"},{"line_number":3055,"context_line":""},{"line_number":3056,"context_line":"        user_ref \u003d self.identity_api.get_user(user[\u0027id\u0027])"},{"line_number":3057,"context_line":"        self.assertDictEqual(user_ref, updated_user_ref)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ae8d1ca_bfc6f347","line":3054,"updated":"2014-05-27 00:44:08.000000000","message":"This should be assertIs(False, ... -- that way it also asserts that the value is a boolean and not an empty string or something.","commit_id":"b5647695086b55a55c3898f334dc585508c81ced"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"645d8c211117db6442a9003d845e4cfb10eb8e22","unresolved":false,"context_lines":[{"line_number":3019,"context_line":""},{"line_number":3020,"context_line":"        project_ref \u003d self.assignment_api.create_project(project[\u0027id\u0027],"},{"line_number":3021,"context_line":"                                                         project)"},{"line_number":3022,"context_line":"        self.assertDictEqual(project_ref, project)"},{"line_number":3023,"context_line":""},{"line_number":3024,"context_line":"        updated_project \u003d {\u0027enabled\u0027: False}"},{"line_number":3025,"context_line":"        updated_project_ref \u003d self.assignment_api.update_project("}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_812183a1","line":3022,"updated":"2014-05-29 05:45:17.000000000","message":"nit: this check seems unnecessary","commit_id":"a2a33ca00573d33a4ce1564c9604ff9d6bb11f86"}],"keystone/tests/test_backend_ldap.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4d9fd9d6d0ce97589705f2870deedffddff8e868","unresolved":false,"context_lines":[{"line_number":1440,"context_line":""},{"line_number":1441,"context_line":"        updated_project \u003d {\u0027enabled\u0027: False}"},{"line_number":1442,"context_line":"        updated_project_ref \u003d self.assignment_api.update_project("},{"line_number":1443,"context_line":"            project[\u0027id\u0027], updated_project)"},{"line_number":1444,"context_line":""},{"line_number":1445,"context_line":"        self.assertFalse(updated_project_ref[\u0027enabled\u0027])"},{"line_number":1446,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_ad53db6a","line":1443,"updated":"2014-05-22 22:10:14.000000000","message":"updated_project_ref.pop(\u0027extra\u0027, None) # SQL backend adds \u0027extra\u0027 field","commit_id":"9a6126ad701edf2559f3d86f5840f292f3ec23a0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c6eb412bc37db8724acb7fdf8517fa2e270169ff","unresolved":false,"context_lines":[{"line_number":1447,"context_line":"        project_ref \u003d self.assignment_api.get_project(project[\u0027id\u0027])"},{"line_number":1448,"context_line":"        self.assertDictEqual(project_ref, updated_project_ref)"},{"line_number":1449,"context_line":""},{"line_number":1450,"context_line":"    def test_user_update_and_project_get_return_same_response(self):"},{"line_number":1451,"context_line":"        user \u003d {"},{"line_number":1452,"context_line":"            \u0027id\u0027: uuid.uuid4().hex,"},{"line_number":1453,"context_line":"            \u0027name\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_cac80d78","line":1450,"updated":"2014-05-22 21:24:26.000000000","message":"\"project_get\" should be \"user_get\"","commit_id":"9a6126ad701edf2559f3d86f5840f292f3ec23a0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4d9fd9d6d0ce97589705f2870deedffddff8e868","unresolved":false,"context_lines":[{"line_number":1460,"context_line":""},{"line_number":1461,"context_line":"        updated_user \u003d {\u0027enabled\u0027: False}"},{"line_number":1462,"context_line":"        updated_user_ref \u003d self.identity_api.update_user("},{"line_number":1463,"context_line":"            user[\u0027id\u0027], updated_user)"},{"line_number":1464,"context_line":""},{"line_number":1465,"context_line":"        self.assertFalse(updated_user_ref[\u0027enabled\u0027])"},{"line_number":1466,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_cd4e67c2","line":1463,"updated":"2014-05-22 22:10:14.000000000","message":"updated_user_ref.pop(\u0027extra\u0027, None) # SQL backend adds \u0027extra\u0027 field","commit_id":"9a6126ad701edf2559f3d86f5840f292f3ec23a0"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"a8f976a18a19bfd064da53425cbcd001e3e6cef8","unresolved":false,"context_lines":[{"line_number":1465,"context_line":"        self.assertFalse(updated_user_ref[\u0027enabled\u0027])"},{"line_number":1466,"context_line":""},{"line_number":1467,"context_line":"        user_ref \u003d self.identity_api.get_user(user[\u0027id\u0027])"},{"line_number":1468,"context_line":"        self.assertDictEqual(user_ref, updated_user_ref)"},{"line_number":1469,"context_line":""},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"class LdapIdentitySqlAssignment(BaseLDAPIdentity, tests.SQLDriverOverrides,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_09b94ee9","line":1468,"updated":"2014-05-21 18:02:00.000000000","message":"these tests look perfect to me - but they should run just fine against the KVS or SQL backends as well -- can you move them into the base test class so they get executed against all 3 backends?","commit_id":"9a6126ad701edf2559f3d86f5840f292f3ec23a0"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"246eb6a3bace2aa5ffd22984d2cbf947d9cfe6c2","unresolved":false,"context_lines":[{"line_number":1465,"context_line":"        self.assertFalse(updated_user_ref[\u0027enabled\u0027])"},{"line_number":1466,"context_line":""},{"line_number":1467,"context_line":"        user_ref \u003d self.identity_api.get_user(user[\u0027id\u0027])"},{"line_number":1468,"context_line":"        self.assertDictEqual(user_ref, updated_user_ref)"},{"line_number":1469,"context_line":""},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"class LdapIdentitySqlAssignment(BaseLDAPIdentity, tests.SQLDriverOverrides,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_ea7de5b2","line":1468,"in_reply_to":"7adec928_09b94ee9","updated":"2014-05-22 06:18:36.000000000","message":"It\u0027s good idea! Thanks, but when I tried to move tests to the base class, I got five test fails in different backends. That\u0027s why I think it\u0027s be better to move these tests in to the base class in separate patch (with fixing problem with fails)","commit_id":"9a6126ad701edf2559f3d86f5840f292f3ec23a0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"83bdfaeebd3810cf021480c823d43a4422fac1ad","unresolved":false,"context_lines":[{"line_number":1465,"context_line":"        self.assertFalse(updated_user_ref[\u0027enabled\u0027])"},{"line_number":1466,"context_line":""},{"line_number":1467,"context_line":"        user_ref \u003d self.identity_api.get_user(user[\u0027id\u0027])"},{"line_number":1468,"context_line":"        self.assertDictEqual(user_ref, updated_user_ref)"},{"line_number":1469,"context_line":""},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"class LdapIdentitySqlAssignment(BaseLDAPIdentity, tests.SQLDriverOverrides,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_0d1befca","line":1468,"in_reply_to":"7adec928_2a1251b4","updated":"2014-05-22 22:07:13.000000000","message":"that should be, returns the \u0027extra\u0027 field on update but not on create or get... WEIRD!","commit_id":"9a6126ad701edf2559f3d86f5840f292f3ec23a0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f2e32002592bcbef72182c90d7808d4ea1977703","unresolved":false,"context_lines":[{"line_number":1465,"context_line":"        self.assertFalse(updated_user_ref[\u0027enabled\u0027])"},{"line_number":1466,"context_line":""},{"line_number":1467,"context_line":"        user_ref \u003d self.identity_api.get_user(user[\u0027id\u0027])"},{"line_number":1468,"context_line":"        self.assertDictEqual(user_ref, updated_user_ref)"},{"line_number":1469,"context_line":""},{"line_number":1470,"context_line":""},{"line_number":1471,"context_line":"class LdapIdentitySqlAssignment(BaseLDAPIdentity, tests.SQLDriverOverrides,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_2a1251b4","line":1468,"in_reply_to":"7adec928_ea7de5b2","updated":"2014-05-22 22:05:10.000000000","message":"Looks like it\u0027s because the sql backend returns the \"extra\" field on update. And it doesn\u0027t return the \u0027extra\u0027 field on create... weird.","commit_id":"9a6126ad701edf2559f3d86f5840f292f3ec23a0"}]}
