)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"5293b852065b30aee2e4bc2d5b1232e199ef9b1b","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Groups."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Due to import order issue with loading CONF.identity.max_password_length"},{"line_number":14,"context_line":"in the JSONschema, the validation has been added in the controller instead."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Co-Authored-By: Lin Hua Cheng \u003cos.lcheng@gmail.com\u003e"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"da86d52c_e24b1e57","line":14,"updated":"2015-02-03 01:04:09.000000000","message":"all of the validation logic should be in the same place. Change the code so that import order doesn\u0027t matter. Doing things at import-time causes problems like this so the better solution is to not do things at import-time.","commit_id":"ec5000468511a5fc4a77ec942846784a8e10bf6f"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"4f9cc52e251568a2b3b856b3b3ec52bc9636e3d0","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Co-Authored-By: Lin Hua Cheng \u003cos.lcheng@gmail.com\u003e"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia260838c85f897c52740217d8d222bb86edc11c6"},{"line_number":16,"context_line":"bp: api-validation"},{"line_number":17,"context_line":"Closes-Bug: #999084"},{"line_number":18,"context_line":"Closes-Bug: #1387605"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"3acd31a7_ba1fc95a","line":16,"updated":"2015-04-29 14:34:24.000000000","message":"When I click on the link it points me to a Congress bp. I am not sure whether it was intended.","commit_id":"fd469781f979ec927d28344a63d4f8cb9afc737d"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"99be723c107fcd009a5a02b44947dfb87aceb441","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Co-Authored-By: Lin Hua Cheng \u003cos.lcheng@gmail.com\u003e"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ia260838c85f897c52740217d8d222bb86edc11c6"},{"line_number":16,"context_line":"bp: api-validation"},{"line_number":17,"context_line":"Closes-Bug: #999084"},{"line_number":18,"context_line":"Closes-Bug: #1387605"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"3acd31a7_baf22905","line":16,"in_reply_to":"3acd31a7_ba1fc95a","updated":"2015-04-29 14:36:44.000000000","message":"nope it isn\u0027t, we had an older blueprint but launchpad doesn\u0027t pull from the older releases :(","commit_id":"fd469781f979ec927d28344a63d4f8cb9afc737d"}],"keystone/identity/schema.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6109cffb92b250e68aa9dd22e773d2d468c35ac2","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    \u0027default_project_id\u0027: validation.nullable(parameter_types.id_string),"},{"line_number":19,"context_line":"    \u0027description\u0027: validation.nullable(parameter_types.description),"},{"line_number":20,"context_line":"    \u0027domain_id\u0027: parameter_types.id_string,"},{"line_number":21,"context_line":"    \u0027email\u0027: validation.nullable(parameter_types.email),"},{"line_number":22,"context_line":"    \u0027enabled\u0027: parameter_types.boolean,"},{"line_number":23,"context_line":"    \u0027name\u0027: {"},{"line_number":24,"context_line":"        \u0027type\u0027: \u0027string\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_6af549ec","line":21,"updated":"2014-12-31 17:40:15.000000000","message":"Since email is stored in the extras column, you can put whatever you want in here. This can\u0027t be limited to email addresses now without breaking backwards compatibility.","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"183e885d164390b7cf2be81fcd2bb5fda0fa9728","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    \u0027default_project_id\u0027: validation.nullable(parameter_types.id_string),"},{"line_number":19,"context_line":"    \u0027description\u0027: validation.nullable(parameter_types.description),"},{"line_number":20,"context_line":"    \u0027domain_id\u0027: parameter_types.id_string,"},{"line_number":21,"context_line":"    \u0027email\u0027: validation.nullable(parameter_types.email),"},{"line_number":22,"context_line":"    \u0027enabled\u0027: parameter_types.boolean,"},{"line_number":23,"context_line":"    \u0027name\u0027: {"},{"line_number":24,"context_line":"        \u0027type\u0027: \u0027string\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_e6fe1738","line":21,"in_reply_to":"3a961159_6af549ec","updated":"2015-01-31 10:47:35.000000000","message":"Removing validation on email, this attribute is not even documented as official attribute: http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3.html#users-v3-users","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6109cffb92b250e68aa9dd22e773d2d468c35ac2","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    \u0027name\u0027: {"},{"line_number":24,"context_line":"        \u0027type\u0027: \u0027string\u0027,"},{"line_number":25,"context_line":"        \u0027minLength\u0027: 1,"},{"line_number":26,"context_line":"        \u0027maxLength\u0027: 64"},{"line_number":27,"context_line":"    },"},{"line_number":28,"context_line":"    \u0027password\u0027: {"},{"line_number":29,"context_line":"        \u0027type\u0027: [\u0027string\u0027, \u0027null\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_4af24d07","line":26,"updated":"2014-12-31 17:40:15.000000000","message":"The max length is specific to the SQL backend. LDAP shouldn\u0027t have this same limitation.","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"183e885d164390b7cf2be81fcd2bb5fda0fa9728","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    \u0027name\u0027: {"},{"line_number":24,"context_line":"        \u0027type\u0027: \u0027string\u0027,"},{"line_number":25,"context_line":"        \u0027minLength\u0027: 1,"},{"line_number":26,"context_line":"        \u0027maxLength\u0027: 64"},{"line_number":27,"context_line":"    },"},{"line_number":28,"context_line":"    \u0027password\u0027: {"},{"line_number":29,"context_line":"        \u0027type\u0027: [\u0027string\u0027, \u0027null\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_61793193","line":26,"in_reply_to":"3a961159_4af24d07","updated":"2015-01-31 10:47:35.000000000","message":"remove maxLength","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6109cffb92b250e68aa9dd22e773d2d468c35ac2","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    },"},{"line_number":28,"context_line":"    \u0027password\u0027: {"},{"line_number":29,"context_line":"        \u0027type\u0027: [\u0027string\u0027, \u0027null\u0027],"},{"line_number":30,"context_line":"        \u0027minLength\u0027: 1,"},{"line_number":31,"context_line":"        # NOTE(lbragstad): the max length of this value should be read in"},{"line_number":32,"context_line":"        # from the CONF.identity.max_password_length property, but we hit the"},{"line_number":33,"context_line":"        # import order issue."}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_6acc69bc","line":30,"updated":"2014-12-31 17:40:15.000000000","message":"The server now supports a 0-length password, so having a minLength here breaks backwards-compability.","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"183e885d164390b7cf2be81fcd2bb5fda0fa9728","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    },"},{"line_number":28,"context_line":"    \u0027password\u0027: {"},{"line_number":29,"context_line":"        \u0027type\u0027: [\u0027string\u0027, \u0027null\u0027],"},{"line_number":30,"context_line":"        \u0027minLength\u0027: 1,"},{"line_number":31,"context_line":"        # NOTE(lbragstad): the max length of this value should be read in"},{"line_number":32,"context_line":"        # from the CONF.identity.max_password_length property, but we hit the"},{"line_number":33,"context_line":"        # import order issue."}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_c1401d38","line":30,"in_reply_to":"3a961159_6acc69bc","updated":"2015-01-31 10:47:35.000000000","message":"Done","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6109cffb92b250e68aa9dd22e773d2d468c35ac2","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        # NOTE(lbragstad): the max length of this value should be read in"},{"line_number":32,"context_line":"        # from the CONF.identity.max_password_length property, but we hit the"},{"line_number":33,"context_line":"        # import order issue."},{"line_number":34,"context_line":"        \u0027maxLength\u0027: 4096"},{"line_number":35,"context_line":"    }"},{"line_number":36,"context_line":"}"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_cae55d39","line":34,"updated":"2014-12-31 17:40:15.000000000","message":"it has to be CONF.identity.max_password_length. If someone sets their max_password_length \u003e 4096 now they can\u0027t sets passwords as expected.","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"183e885d164390b7cf2be81fcd2bb5fda0fa9728","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        # NOTE(lbragstad): the max length of this value should be read in"},{"line_number":32,"context_line":"        # from the CONF.identity.max_password_length property, but we hit the"},{"line_number":33,"context_line":"        # import order issue."},{"line_number":34,"context_line":"        \u0027maxLength\u0027: 4096"},{"line_number":35,"context_line":"    }"},{"line_number":36,"context_line":"}"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_816e25c8","line":34,"in_reply_to":"3a961159_cae55d39","updated":"2015-01-31 10:47:35.000000000","message":"Done","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6109cffb92b250e68aa9dd22e773d2d468c35ac2","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \u0027name\u0027: {"},{"line_number":56,"context_line":"        \u0027type\u0027: \u0027string\u0027,"},{"line_number":57,"context_line":"        \u0027minLength\u0027: 1,"},{"line_number":58,"context_line":"        \u0027maxLength\u0027: 64"},{"line_number":59,"context_line":"    }"},{"line_number":60,"context_line":"}"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_0acf65b4","line":58,"updated":"2014-12-31 17:40:15.000000000","message":"Similar comment here -- it\u0027s only SQL that has this max length.","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"183e885d164390b7cf2be81fcd2bb5fda0fa9728","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \u0027name\u0027: {"},{"line_number":56,"context_line":"        \u0027type\u0027: \u0027string\u0027,"},{"line_number":57,"context_line":"        \u0027minLength\u0027: 1,"},{"line_number":58,"context_line":"        \u0027maxLength\u0027: 64"},{"line_number":59,"context_line":"    }"},{"line_number":60,"context_line":"}"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_81570502","line":58,"in_reply_to":"3a961159_0acf65b4","updated":"2015-01-31 10:47:35.000000000","message":"removing max length here","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f918764111d52ec16c1b3a5274cd21a44f768a98","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027domain_id\u0027: parameter_types.id_string,"},{"line_number":50,"context_line":"    # NOTE(lhcheng): the max length is not applicable since it is specific"},{"line_number":51,"context_line":"    # to the SQL backend, LDAP does not have length limitation."},{"line_number":52,"context_line":"    \u0027name\u0027: {"},{"line_number":53,"context_line":"        \u0027type\u0027: \u0027string\u0027,"},{"line_number":54,"context_line":"        \u0027minLength\u0027: 1"},{"line_number":55,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_27b2224c","line":52,"updated":"2015-02-26 00:25:02.000000000","message":"the name dict is copy-pasted around a lot, seems like it could be DRYed.","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"249d742fae2338b4889b1fc80913aa6501f05638","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027domain_id\u0027: parameter_types.id_string,"},{"line_number":50,"context_line":"    # NOTE(lhcheng): the max length is not applicable since it is specific"},{"line_number":51,"context_line":"    # to the SQL backend, LDAP does not have length limitation."},{"line_number":52,"context_line":"    \u0027name\u0027: {"},{"line_number":53,"context_line":"        \u0027type\u0027: \u0027string\u0027,"},{"line_number":54,"context_line":"        \u0027minLength\u0027: 1"},{"line_number":55,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_fc05fc10","line":52,"in_reply_to":"ba7be1f8_27b2224c","updated":"2015-02-26 01:21:22.000000000","message":"Done","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"}],"keystone/tests/test_v3.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6109cffb92b250e68aa9dd22e773d2d468c35ac2","unresolved":false,"context_lines":[{"line_number":302,"context_line":"    def new_user_ref(self, domain_id, project_id\u003dNone):"},{"line_number":303,"context_line":"        ref \u003d self.new_ref()"},{"line_number":304,"context_line":"        ref[\u0027domain_id\u0027] \u003d domain_id"},{"line_number":305,"context_line":"        ref[\u0027email\u0027] \u003d uuid.uuid4().hex + \u0027@example.com\u0027"},{"line_number":306,"context_line":"        ref[\u0027password\u0027] \u003d uuid.uuid4().hex"},{"line_number":307,"context_line":"        if project_id:"},{"line_number":308,"context_line":"            ref[\u0027default_project_id\u0027] \u003d project_id"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_aa0c913a","line":305,"updated":"2014-12-31 17:40:15.000000000","message":"since this worked before it should continue to work otherwise this change isn\u0027t backwards compatible.","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"183e885d164390b7cf2be81fcd2bb5fda0fa9728","unresolved":false,"context_lines":[{"line_number":302,"context_line":"    def new_user_ref(self, domain_id, project_id\u003dNone):"},{"line_number":303,"context_line":"        ref \u003d self.new_ref()"},{"line_number":304,"context_line":"        ref[\u0027domain_id\u0027] \u003d domain_id"},{"line_number":305,"context_line":"        ref[\u0027email\u0027] \u003d uuid.uuid4().hex + \u0027@example.com\u0027"},{"line_number":306,"context_line":"        ref[\u0027password\u0027] \u003d uuid.uuid4().hex"},{"line_number":307,"context_line":"        if project_id:"},{"line_number":308,"context_line":"            ref[\u0027default_project_id\u0027] \u003d project_id"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_419b4dc9","line":305,"in_reply_to":"3a961159_aa0c913a","updated":"2015-01-31 10:47:35.000000000","message":"removed email validation in the schema","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"}],"keystone/tests/test_validation.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6109cffb92b250e68aa9dd22e773d2d468c35ac2","unresolved":false,"context_lines":[{"line_number":1268,"context_line":"    def setUp(self):"},{"line_number":1269,"context_line":"        super(UserValidationTestCase, self).setUp()"},{"line_number":1270,"context_line":""},{"line_number":1271,"context_line":"        self.user_name \u003d \u0027jdeveloper\u0027"},{"line_number":1272,"context_line":""},{"line_number":1273,"context_line":"        create \u003d identity_schema.user_create"},{"line_number":1274,"context_line":"        update \u003d identity_schema.user_update"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_4ac96dab","line":1271,"updated":"2014-12-31 17:40:15.000000000","message":"who\u0027s jdeveloper? use a random string.","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"183e885d164390b7cf2be81fcd2bb5fda0fa9728","unresolved":false,"context_lines":[{"line_number":1268,"context_line":"    def setUp(self):"},{"line_number":1269,"context_line":"        super(UserValidationTestCase, self).setUp()"},{"line_number":1270,"context_line":""},{"line_number":1271,"context_line":"        self.user_name \u003d \u0027jdeveloper\u0027"},{"line_number":1272,"context_line":""},{"line_number":1273,"context_line":"        create \u003d identity_schema.user_create"},{"line_number":1274,"context_line":"        update \u003d identity_schema.user_update"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_21b6593e","line":1271,"in_reply_to":"3a961159_4ac96dab","updated":"2015-01-31 10:47:35.000000000","message":"Replaced with \"My User\"","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6109cffb92b250e68aa9dd22e773d2d468c35ac2","unresolved":false,"context_lines":[{"line_number":1288,"context_line":"                               \u0027description\u0027: \u0027Some description\u0027,"},{"line_number":1289,"context_line":"                               \u0027enabled\u0027: True,"},{"line_number":1290,"context_line":"                               \u0027email\u0027: \u0027jdeveloper@example.com\u0027,"},{"line_number":1291,"context_line":"                               \u0027password\u0027: \u0027secrete\u0027}"},{"line_number":1292,"context_line":"        self.create_user_validator.validate(request_to_validate)"},{"line_number":1293,"context_line":""},{"line_number":1294,"context_line":"    def test_validate_user_create_fails_without_name(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_cabc7d09","line":1291,"updated":"2014-12-31 17:40:15.000000000","message":"use a random string.","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"183e885d164390b7cf2be81fcd2bb5fda0fa9728","unresolved":false,"context_lines":[{"line_number":1288,"context_line":"                               \u0027description\u0027: \u0027Some description\u0027,"},{"line_number":1289,"context_line":"                               \u0027enabled\u0027: True,"},{"line_number":1290,"context_line":"                               \u0027email\u0027: \u0027jdeveloper@example.com\u0027,"},{"line_number":1291,"context_line":"                               \u0027password\u0027: \u0027secrete\u0027}"},{"line_number":1292,"context_line":"        self.create_user_validator.validate(request_to_validate)"},{"line_number":1293,"context_line":""},{"line_number":1294,"context_line":"    def test_validate_user_create_fails_without_name(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_e192819e","line":1291,"in_reply_to":"3a961159_cabc7d09","updated":"2015-01-31 10:47:35.000000000","message":"Done","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":7244,"name":"Victor Howard","email":"victor.r.howard@gmail.com","username":"vichoward"},"change_message_id":"02807d9d2ba0090714a2706049ae29a934d86402","unresolved":false,"context_lines":[{"line_number":1293,"context_line":""},{"line_number":1294,"context_line":"    def test_validate_user_create_fails_without_name(self):"},{"line_number":1295,"context_line":"        \"\"\"Exception raised when validating a user without name.\"\"\""},{"line_number":1296,"context_line":"        request_to_validate \u003d {\u0027email\u0027: \u0027jdeveloper@example.com\u0027}"},{"line_number":1297,"context_line":"        self.assertRaises(exception.SchemaValidationError,"},{"line_number":1298,"context_line":"                          self.create_user_validator.validate,"},{"line_number":1299,"context_line":"                          request_to_validate)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_e8621715","line":1296,"updated":"2015-01-02 18:21:38.000000000","message":"jdeveloper used here also","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"183e885d164390b7cf2be81fcd2bb5fda0fa9728","unresolved":false,"context_lines":[{"line_number":1293,"context_line":""},{"line_number":1294,"context_line":"    def test_validate_user_create_fails_without_name(self):"},{"line_number":1295,"context_line":"        \"\"\"Exception raised when validating a user without name.\"\"\""},{"line_number":1296,"context_line":"        request_to_validate \u003d {\u0027email\u0027: \u0027jdeveloper@example.com\u0027}"},{"line_number":1297,"context_line":"        self.assertRaises(exception.SchemaValidationError,"},{"line_number":1298,"context_line":"                          self.create_user_validator.validate,"},{"line_number":1299,"context_line":"                          request_to_validate)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_01907594","line":1296,"in_reply_to":"3a961159_e8621715","updated":"2015-01-31 10:47:35.000000000","message":"Done","commit_id":"6a9743072526a3ee518ecd95ebd8eef851ef54e5"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"bbcce5e27b8d9549d61a238889fd405669623846","unresolved":false,"context_lines":[{"line_number":1279,"context_line":"        request_to_validate \u003d {\u0027name\u0027: self.user_name}"},{"line_number":1280,"context_line":"        self.create_user_validator.validate(request_to_validate)"},{"line_number":1281,"context_line":""},{"line_number":1282,"context_line":"    def test_validate_user_create_with_all_valid_parameters(self):"},{"line_number":1283,"context_line":"        \"\"\"Test that validating a user create request succeeds.\"\"\""},{"line_number":1284,"context_line":"        request_to_validate \u003d {\u0027name\u0027: self.user_name,"},{"line_number":1285,"context_line":"                               \u0027default_project_id\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_6e444cb7","line":1282,"updated":"2015-02-10 19:36:14.000000000","message":"nit: test_validate_user_create_with_all_valid_parameters_succeeds *","commit_id":"7f0530738fc6d5c5b23e3b61f0b9be7316a52b4a"}],"keystone/tests/unit/test_validation.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f918764111d52ec16c1b3a5274cd21a44f768a98","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from keystone.common import validation"},{"line_number":21,"context_line":"from keystone.common.validation import parameter_types"},{"line_number":22,"context_line":"from keystone.common.validation import validators"},{"line_number":23,"context_line":"from keystone import config"},{"line_number":24,"context_line":"from keystone.contrib.endpoint_filter import schema as endpoint_filter_schema"},{"line_number":25,"context_line":"from keystone.credential import schema as credential_schema"},{"line_number":26,"context_line":"from keystone import exception"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_27e06228","line":23,"updated":"2015-02-26 00:25:02.000000000","message":"use\n\n from oslo_config import cfg","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f918764111d52ec16c1b3a5274cd21a44f768a98","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from keystone.trust import schema as trust_schema"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"CONF \u003d config.CONF"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"\"\"\"Example model to validate create requests against. Assume that this is"},{"line_number":36,"context_line":"the only backend for the create and validate schemas. This is just an"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_47c2b685","line":33,"updated":"2015-02-26 00:25:02.000000000","message":"this is unused.","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f918764111d52ec16c1b3a5274cd21a44f768a98","unresolved":false,"context_lines":[{"line_number":1380,"context_line":"    def setUp(self):"},{"line_number":1381,"context_line":"        super(UserValidationTestCase, self).setUp()"},{"line_number":1382,"context_line":""},{"line_number":1383,"context_line":"        self.user_name \u003d \u0027My User\u0027"},{"line_number":1384,"context_line":""},{"line_number":1385,"context_line":"        create \u003d identity_schema.user_create"},{"line_number":1386,"context_line":"        update \u003d identity_schema.user_update"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_874f4e33","line":1383,"updated":"2015-02-26 00:25:02.000000000","message":"what\u0027s special about \u0027My User\u0027? why not use a random string?","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"249d742fae2338b4889b1fc80913aa6501f05638","unresolved":false,"context_lines":[{"line_number":1380,"context_line":"    def setUp(self):"},{"line_number":1381,"context_line":"        super(UserValidationTestCase, self).setUp()"},{"line_number":1382,"context_line":""},{"line_number":1383,"context_line":"        self.user_name \u003d \u0027My User\u0027"},{"line_number":1384,"context_line":""},{"line_number":1385,"context_line":"        create \u003d identity_schema.user_create"},{"line_number":1386,"context_line":"        update \u003d identity_schema.user_update"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_3c2314a8","line":1383,"in_reply_to":"ba7be1f8_874f4e33","updated":"2015-02-26 01:21:22.000000000","message":"Done","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f918764111d52ec16c1b3a5274cd21a44f768a98","unresolved":false,"context_lines":[{"line_number":1397,"context_line":"        request_to_validate \u003d {\u0027name\u0027: self.user_name,"},{"line_number":1398,"context_line":"                               \u0027default_project_id\u0027: uuid.uuid4().hex,"},{"line_number":1399,"context_line":"                               \u0027domain_id\u0027: uuid.uuid4().hex,"},{"line_number":1400,"context_line":"                               \u0027description\u0027: \u0027Some description\u0027,"},{"line_number":1401,"context_line":"                               \u0027enabled\u0027: True,"},{"line_number":1402,"context_line":"                               \u0027email\u0027: \u0027my_user@example.com\u0027,"},{"line_number":1403,"context_line":"                               \u0027password\u0027: uuid.uuid4().hex}"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_a708d2da","line":1400,"updated":"2015-02-26 00:25:02.000000000","message":"this should be a random string.","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"249d742fae2338b4889b1fc80913aa6501f05638","unresolved":false,"context_lines":[{"line_number":1397,"context_line":"        request_to_validate \u003d {\u0027name\u0027: self.user_name,"},{"line_number":1398,"context_line":"                               \u0027default_project_id\u0027: uuid.uuid4().hex,"},{"line_number":1399,"context_line":"                               \u0027domain_id\u0027: uuid.uuid4().hex,"},{"line_number":1400,"context_line":"                               \u0027description\u0027: \u0027Some description\u0027,"},{"line_number":1401,"context_line":"                               \u0027enabled\u0027: True,"},{"line_number":1402,"context_line":"                               \u0027email\u0027: \u0027my_user@example.com\u0027,"},{"line_number":1403,"context_line":"                               \u0027password\u0027: uuid.uuid4().hex}"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_dc50380d","line":1400,"in_reply_to":"ba7be1f8_a708d2da","updated":"2015-02-26 01:21:22.000000000","message":"Done","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f918764111d52ec16c1b3a5274cd21a44f768a98","unresolved":false,"context_lines":[{"line_number":1399,"context_line":"                               \u0027domain_id\u0027: uuid.uuid4().hex,"},{"line_number":1400,"context_line":"                               \u0027description\u0027: \u0027Some description\u0027,"},{"line_number":1401,"context_line":"                               \u0027enabled\u0027: True,"},{"line_number":1402,"context_line":"                               \u0027email\u0027: \u0027my_user@example.com\u0027,"},{"line_number":1403,"context_line":"                               \u0027password\u0027: uuid.uuid4().hex}"},{"line_number":1404,"context_line":"        self.create_user_validator.validate(request_to_validate)"},{"line_number":1405,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_c70b06d4","line":1402,"updated":"2015-02-26 00:25:02.000000000","message":"this should be a random string.","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"249d742fae2338b4889b1fc80913aa6501f05638","unresolved":false,"context_lines":[{"line_number":1399,"context_line":"                               \u0027domain_id\u0027: uuid.uuid4().hex,"},{"line_number":1400,"context_line":"                               \u0027description\u0027: \u0027Some description\u0027,"},{"line_number":1401,"context_line":"                               \u0027enabled\u0027: True,"},{"line_number":1402,"context_line":"                               \u0027email\u0027: \u0027my_user@example.com\u0027,"},{"line_number":1403,"context_line":"                               \u0027password\u0027: uuid.uuid4().hex}"},{"line_number":1404,"context_line":"        self.create_user_validator.validate(request_to_validate)"},{"line_number":1405,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_fc533c14","line":1402,"in_reply_to":"ba7be1f8_c70b06d4","updated":"2015-02-26 01:21:22.000000000","message":"Done","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f918764111d52ec16c1b3a5274cd21a44f768a98","unresolved":false,"context_lines":[{"line_number":1405,"context_line":""},{"line_number":1406,"context_line":"    def test_validate_user_create_fails_without_name(self):"},{"line_number":1407,"context_line":"        \"\"\"Exception raised when validating a user without name.\"\"\""},{"line_number":1408,"context_line":"        request_to_validate \u003d {\u0027email\u0027: \u0027my_user@example.com\u0027}"},{"line_number":1409,"context_line":"        self.assertRaises(exception.SchemaValidationError,"},{"line_number":1410,"context_line":"                          self.create_user_validator.validate,"},{"line_number":1411,"context_line":"                          request_to_validate)"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_e70e4ae4","line":1408,"updated":"2015-02-26 00:25:02.000000000","message":"this should be a random string.","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"249d742fae2338b4889b1fc80913aa6501f05638","unresolved":false,"context_lines":[{"line_number":1405,"context_line":""},{"line_number":1406,"context_line":"    def test_validate_user_create_fails_without_name(self):"},{"line_number":1407,"context_line":"        \"\"\"Exception raised when validating a user without name.\"\"\""},{"line_number":1408,"context_line":"        request_to_validate \u003d {\u0027email\u0027: \u0027my_user@example.com\u0027}"},{"line_number":1409,"context_line":"        self.assertRaises(exception.SchemaValidationError,"},{"line_number":1410,"context_line":"                          self.create_user_validator.validate,"},{"line_number":1411,"context_line":"                          request_to_validate)"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_5c444849","line":1408,"in_reply_to":"ba7be1f8_e70e4ae4","updated":"2015-02-26 01:21:22.000000000","message":"Done","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f918764111d52ec16c1b3a5274cd21a44f768a98","unresolved":false,"context_lines":[{"line_number":1486,"context_line":""},{"line_number":1487,"context_line":"    def test_validate_user_update_succeeds_with_extra_parameters(self):"},{"line_number":1488,"context_line":"        \"\"\"Validate user update requests with extra parameters.\"\"\""},{"line_number":1489,"context_line":"        request_to_validate \u003d {\u0027other_attr\u0027: \u0027useful stuff!\u0027}"},{"line_number":1490,"context_line":"        self.update_user_validator.validate(request_to_validate)"},{"line_number":1491,"context_line":""},{"line_number":1492,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_07aefe97","line":1489,"updated":"2015-02-26 00:25:02.000000000","message":"these should be random strings.","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"249d742fae2338b4889b1fc80913aa6501f05638","unresolved":false,"context_lines":[{"line_number":1486,"context_line":""},{"line_number":1487,"context_line":"    def test_validate_user_update_succeeds_with_extra_parameters(self):"},{"line_number":1488,"context_line":"        \"\"\"Validate user update requests with extra parameters.\"\"\""},{"line_number":1489,"context_line":"        request_to_validate \u003d {\u0027other_attr\u0027: \u0027useful stuff!\u0027}"},{"line_number":1490,"context_line":"        self.update_user_validator.validate(request_to_validate)"},{"line_number":1491,"context_line":""},{"line_number":1492,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_1c6e50c9","line":1489,"in_reply_to":"ba7be1f8_07aefe97","updated":"2015-02-26 01:21:22.000000000","message":"Done","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f918764111d52ec16c1b3a5274cd21a44f768a98","unresolved":false,"context_lines":[{"line_number":1496,"context_line":"    def setUp(self):"},{"line_number":1497,"context_line":"        super(GroupValidationTestCase, self).setUp()"},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        self.group_name \u003d \u0027Dev Department\u0027"},{"line_number":1500,"context_line":""},{"line_number":1501,"context_line":"        create \u003d identity_schema.group_create"},{"line_number":1502,"context_line":"        update \u003d identity_schema.group_update"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_27986277","line":1499,"updated":"2015-02-26 00:25:02.000000000","message":"this should be a random name.","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"249d742fae2338b4889b1fc80913aa6501f05638","unresolved":false,"context_lines":[{"line_number":1496,"context_line":"    def setUp(self):"},{"line_number":1497,"context_line":"        super(GroupValidationTestCase, self).setUp()"},{"line_number":1498,"context_line":""},{"line_number":1499,"context_line":"        self.group_name \u003d \u0027Dev Department\u0027"},{"line_number":1500,"context_line":""},{"line_number":1501,"context_line":"        create \u003d identity_schema.group_create"},{"line_number":1502,"context_line":"        update \u003d identity_schema.group_update"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_9c6160d5","line":1499,"in_reply_to":"ba7be1f8_27986277","updated":"2015-02-26 01:21:22.000000000","message":"Done","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f918764111d52ec16c1b3a5274cd21a44f768a98","unresolved":false,"context_lines":[{"line_number":1511,"context_line":"    def test_validate_group_create_succeeds_with_all_parameters(self):"},{"line_number":1512,"context_line":"        \"\"\"Validate create group requests with all parameters.\"\"\""},{"line_number":1513,"context_line":"        request_to_validate \u003d {\u0027name\u0027: self.group_name,"},{"line_number":1514,"context_line":"                               \u0027description\u0027: \u0027Group for Dev Dept.\u0027,"},{"line_number":1515,"context_line":"                               \u0027domain_id\u0027: uuid.uuid4().hex}"},{"line_number":1516,"context_line":"        self.create_group_validator.validate(request_to_validate)"},{"line_number":1517,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_87990e7b","line":1514,"updated":"2015-02-26 00:25:02.000000000","message":"this should be a random string.","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"249d742fae2338b4889b1fc80913aa6501f05638","unresolved":false,"context_lines":[{"line_number":1511,"context_line":"    def test_validate_group_create_succeeds_with_all_parameters(self):"},{"line_number":1512,"context_line":"        \"\"\"Validate create group requests with all parameters.\"\"\""},{"line_number":1513,"context_line":"        request_to_validate \u003d {\u0027name\u0027: self.group_name,"},{"line_number":1514,"context_line":"                               \u0027description\u0027: \u0027Group for Dev Dept.\u0027,"},{"line_number":1515,"context_line":"                               \u0027domain_id\u0027: uuid.uuid4().hex}"},{"line_number":1516,"context_line":"        self.create_group_validator.validate(request_to_validate)"},{"line_number":1517,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_bc5c641a","line":1514,"in_reply_to":"ba7be1f8_87990e7b","updated":"2015-02-26 01:21:22.000000000","message":"Done","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f918764111d52ec16c1b3a5274cd21a44f768a98","unresolved":false,"context_lines":[{"line_number":1517,"context_line":""},{"line_number":1518,"context_line":"    def test_validate_group_create_fails_without_group_name(self):"},{"line_number":1519,"context_line":"        \"\"\"Exception raised when group name is not provided in request.\"\"\""},{"line_number":1520,"context_line":"        request_to_validate \u003d {\u0027description\u0027: \u0027some description\u0027}"},{"line_number":1521,"context_line":"        self.assertRaises(exception.SchemaValidationError,"},{"line_number":1522,"context_line":"                          self.create_group_validator.validate,"},{"line_number":1523,"context_line":"                          request_to_validate)"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_a78b721d","line":1520,"updated":"2015-02-26 00:25:02.000000000","message":"this should be a random string.","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"249d742fae2338b4889b1fc80913aa6501f05638","unresolved":false,"context_lines":[{"line_number":1517,"context_line":""},{"line_number":1518,"context_line":"    def test_validate_group_create_fails_without_group_name(self):"},{"line_number":1519,"context_line":"        \"\"\"Exception raised when group name is not provided in request.\"\"\""},{"line_number":1520,"context_line":"        request_to_validate \u003d {\u0027description\u0027: \u0027some description\u0027}"},{"line_number":1521,"context_line":"        self.assertRaises(exception.SchemaValidationError,"},{"line_number":1522,"context_line":"                          self.create_group_validator.validate,"},{"line_number":1523,"context_line":"                          request_to_validate)"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_bcb3844b","line":1520,"in_reply_to":"ba7be1f8_a78b721d","updated":"2015-02-26 01:21:22.000000000","message":"Done","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f918764111d52ec16c1b3a5274cd21a44f768a98","unresolved":false,"context_lines":[{"line_number":1532,"context_line":"    def test_validate_group_create_succeeds_with_extra_parameters(self):"},{"line_number":1533,"context_line":"        \"\"\"Validate extra attributes on group create requests.\"\"\""},{"line_number":1534,"context_line":"        request_to_validate \u003d {\u0027name\u0027: self.group_name,"},{"line_number":1535,"context_line":"                               \u0027other_attr\u0027: \u0027other group info\u0027}"},{"line_number":1536,"context_line":"        self.create_group_validator.validate(request_to_validate)"},{"line_number":1537,"context_line":""},{"line_number":1538,"context_line":"    def test_validate_group_update_succeeds(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_e781eafb","line":1535,"updated":"2015-02-26 00:25:02.000000000","message":"these should be random strings.","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"249d742fae2338b4889b1fc80913aa6501f05638","unresolved":false,"context_lines":[{"line_number":1532,"context_line":"    def test_validate_group_create_succeeds_with_extra_parameters(self):"},{"line_number":1533,"context_line":"        \"\"\"Validate extra attributes on group create requests.\"\"\""},{"line_number":1534,"context_line":"        request_to_validate \u003d {\u0027name\u0027: self.group_name,"},{"line_number":1535,"context_line":"                               \u0027other_attr\u0027: \u0027other group info\u0027}"},{"line_number":1536,"context_line":"        self.create_group_validator.validate(request_to_validate)"},{"line_number":1537,"context_line":""},{"line_number":1538,"context_line":"    def test_validate_group_update_succeeds(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_9ce6c042","line":1535,"in_reply_to":"ba7be1f8_e781eafb","updated":"2015-02-26 01:21:22.000000000","message":"Done","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f918764111d52ec16c1b3a5274cd21a44f768a98","unresolved":false,"context_lines":[{"line_number":1537,"context_line":""},{"line_number":1538,"context_line":"    def test_validate_group_update_succeeds(self):"},{"line_number":1539,"context_line":"        \"\"\"Validate group update requests.\"\"\""},{"line_number":1540,"context_line":"        request_to_validate \u003d {\u0027description\u0027: \u0027new description\u0027}"},{"line_number":1541,"context_line":"        self.update_group_validator.validate(request_to_validate)"},{"line_number":1542,"context_line":""},{"line_number":1543,"context_line":"    def test_validate_group_update_fails_with_no_parameters(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_07851e06","line":1540,"updated":"2015-02-26 00:25:02.000000000","message":"this should be a random string.","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"249d742fae2338b4889b1fc80913aa6501f05638","unresolved":false,"context_lines":[{"line_number":1537,"context_line":""},{"line_number":1538,"context_line":"    def test_validate_group_update_succeeds(self):"},{"line_number":1539,"context_line":"        \"\"\"Validate group update requests.\"\"\""},{"line_number":1540,"context_line":"        request_to_validate \u003d {\u0027description\u0027: \u0027new description\u0027}"},{"line_number":1541,"context_line":"        self.update_group_validator.validate(request_to_validate)"},{"line_number":1542,"context_line":""},{"line_number":1543,"context_line":"    def test_validate_group_update_fails_with_no_parameters(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_1cf3b00a","line":1540,"in_reply_to":"ba7be1f8_07851e06","updated":"2015-02-26 01:21:22.000000000","message":"Done","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f918764111d52ec16c1b3a5274cd21a44f768a98","unresolved":false,"context_lines":[{"line_number":1549,"context_line":""},{"line_number":1550,"context_line":"    def test_validate_group_update_succeeds_with_extra_parameters(self):"},{"line_number":1551,"context_line":"        \"\"\"Validate group update requests with extra parameters.\"\"\""},{"line_number":1552,"context_line":"        request_to_validate \u003d {\u0027other_attr\u0027: \u0027interesting stuff\u0027}"},{"line_number":1553,"context_line":"        self.update_group_validator.validate(request_to_validate)"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_6775fa30","line":1552,"updated":"2015-02-26 00:25:02.000000000","message":"these should be random strings.","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"249d742fae2338b4889b1fc80913aa6501f05638","unresolved":false,"context_lines":[{"line_number":1549,"context_line":""},{"line_number":1550,"context_line":"    def test_validate_group_update_succeeds_with_extra_parameters(self):"},{"line_number":1551,"context_line":"        \"\"\"Validate group update requests with extra parameters.\"\"\""},{"line_number":1552,"context_line":"        request_to_validate \u003d {\u0027other_attr\u0027: \u0027interesting stuff\u0027}"},{"line_number":1553,"context_line":"        self.update_group_validator.validate(request_to_validate)"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba7be1f8_fcefbc1b","line":1552,"in_reply_to":"ba7be1f8_6775fa30","updated":"2015-02-26 01:21:22.000000000","message":"Done","commit_id":"427c1e6bd827d0b2beed02f2f48863344207ac28"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3dc5600ca7f29b20b0bcc2951d37c980731c1278","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from keystone.common import validation"},{"line_number":21,"context_line":"from keystone.common.validation import parameter_types"},{"line_number":22,"context_line":"from keystone.common.validation import validators"},{"line_number":23,"context_line":"from keystone import config"},{"line_number":24,"context_line":"from keystone.contrib.endpoint_filter import schema as endpoint_filter_schema"},{"line_number":25,"context_line":"from keystone.credential import schema as credential_schema"},{"line_number":26,"context_line":"from keystone import exception"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba7be1f8_7cccac89","line":23,"updated":"2015-02-26 01:30:40.000000000","message":"use\n\n from oslo_config import cfg","commit_id":"c4fd584ec928db9fc8c72e594cae1d5d98eee795"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"3597d1735f16c830b00228ed55de0aec2bb67127","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from keystone.common import validation"},{"line_number":21,"context_line":"from keystone.common.validation import parameter_types"},{"line_number":22,"context_line":"from keystone.common.validation import validators"},{"line_number":23,"context_line":"from keystone import config"},{"line_number":24,"context_line":"from keystone.contrib.endpoint_filter import schema as endpoint_filter_schema"},{"line_number":25,"context_line":"from keystone.credential import schema as credential_schema"},{"line_number":26,"context_line":"from keystone import exception"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba7be1f8_9c4880cd","line":23,"in_reply_to":"ba7be1f8_7cccac89","updated":"2015-02-26 01:36:40.000000000","message":"removed","commit_id":"c4fd584ec928db9fc8c72e594cae1d5d98eee795"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3dc5600ca7f29b20b0bcc2951d37c980731c1278","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from keystone.trust import schema as trust_schema"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"CONF \u003d config.CONF"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"\"\"\"Example model to validate create requests against. Assume that this is"},{"line_number":36,"context_line":"the only backend for the create and validate schemas. This is just an"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba7be1f8_9cc7a063","line":33,"updated":"2015-02-26 01:30:40.000000000","message":"this is unused.","commit_id":"c4fd584ec928db9fc8c72e594cae1d5d98eee795"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"3597d1735f16c830b00228ed55de0aec2bb67127","unresolved":false,"context_lines":[{"line_number":30,"context_line":"from keystone.trust import schema as trust_schema"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"CONF \u003d config.CONF"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"\"\"\"Example model to validate create requests against. Assume that this is"},{"line_number":36,"context_line":"the only backend for the create and validate schemas. This is just an"}],"source_content_type":"text/x-python","patch_set":15,"id":"ba7be1f8_fc189cd4","line":33,"in_reply_to":"ba7be1f8_9cc7a063","updated":"2015-02-26 01:36:40.000000000","message":"removed","commit_id":"c4fd584ec928db9fc8c72e594cae1d5d98eee795"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"385a16aa50e20afaab9b3ca68b3b7b6de3ce50db","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from keystone.resource import schema as resource_schema"},{"line_number":29,"context_line":"from keystone.trust import schema as trust_schema"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"\"\"\"Example model to validate create requests against. Assume that this is"},{"line_number":33,"context_line":"the only backend for the create and validate schemas. This is just an"},{"line_number":34,"context_line":"example to show how a backend can be used to construct a schema. In"}],"source_content_type":"text/x-python","patch_set":18,"id":"9a80dd14_b4f10003","line":31,"updated":"2015-03-08 15:55:18.000000000","message":"revert the whitespace change on the previous line.","commit_id":"23a2c7b845e3025cf93a91d67a44edc79a30b122"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"bde73c7e50cea28233e6e1258f3d40f2f8512ff1","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from keystone.resource import schema as resource_schema"},{"line_number":29,"context_line":"from keystone.trust import schema as trust_schema"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"\"\"\"Example model to validate create requests against. Assume that this is"},{"line_number":33,"context_line":"the only backend for the create and validate schemas. This is just an"},{"line_number":34,"context_line":"example to show how a backend can be used to construct a schema. In"}],"source_content_type":"text/x-python","patch_set":18,"id":"9a80dd14_1a0f32e2","line":31,"in_reply_to":"9a80dd14_883f73b3","updated":"2015-03-09 19:40:14.000000000","message":"Done","commit_id":"23a2c7b845e3025cf93a91d67a44edc79a30b122"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"ca4f9c9fc2f6227d39834e7e5c9c19409775071e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from keystone.resource import schema as resource_schema"},{"line_number":29,"context_line":"from keystone.trust import schema as trust_schema"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"\"\"\"Example model to validate create requests against. Assume that this is"},{"line_number":33,"context_line":"the only backend for the create and validate schemas. This is just an"},{"line_number":34,"context_line":"example to show how a backend can be used to construct a schema. In"}],"source_content_type":"text/x-python","patch_set":18,"id":"9a80dd14_883f73b3","line":31,"in_reply_to":"9a80dd14_b4f10003","updated":"2015-03-09 10:06:32.000000000","message":"this wasn\u0027t intentional probably got added when merging","commit_id":"23a2c7b845e3025cf93a91d67a44edc79a30b122"}]}
