)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"d34525617a5c1bf7e9398e2a9177322d090b84b4","unresolved":false,"context_lines":[{"line_number":13,"context_line":"password and not even with his old password."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Updated the code to raise an error if the user tries"},{"line_number":16,"context_line":"to keep his password as blank."},{"line_number":17,"context_line":"Closes-Bug: #1391116"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Ie170418905930ee8449562e9eb0a6fec4553ea0c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a961159_e6ccc663","line":16,"updated":"2015-01-15 08:23:22.000000000","message":"There should be a blank line between description and \"Closes-Bug\"","commit_id":"c027b41e7d849b27270e947caade53500de3071b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c7d6fffc6ab3fb3ac97e0e8aacb8a0e299e93837","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"User-password-update accepts blank as password"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Intially \"keystone user-password-update username\""},{"line_number":10,"context_line":"command worked successfully even if the user left"},{"line_number":11,"context_line":"the new password as blank. But the issue was that"},{"line_number":12,"context_line":"the user then was not able to log in with a blank"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da86d52c_20b72e3c","line":9,"updated":"2015-02-13 16:09:15.000000000","message":"Initially*","commit_id":"b82b730ae76cb20d56af06cbdfe2d9feddc5b301"}],"keystoneclient/tests/unit/v2_0/test_shell.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"dbcf6e1391b09ab85655608286ad84009360e4ac","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            if isinstance(cmd, list):"},{"line_number":70,"context_line":"                self.shell.main(cmd)"},{"line_number":71,"context_line":"            else:"},{"line_number":72,"context_line":"                self.shell.main(cmd.split())"},{"line_number":73,"context_line":"        except SystemExit:"},{"line_number":74,"context_line":"            exc_type, exc_value, exc_traceback \u003d sys.exc_info()"},{"line_number":75,"context_line":"            self.assertEqual(exc_value.code, 0)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_113a63cd","line":72,"updated":"2015-03-05 00:38:16.000000000","message":"dolphm: I thought about that - but it\u0027ll get caught here. I honestly don\u0027t know enough about these tests to start messing with this.","commit_id":"a98bafc02a5c83371fb93f9664160d12521c5fdb"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"da338366a7ff473dfb1d5e643357e44223687007","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        required \u003d (\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                    \"or using the prompt\")"},{"line_number":146,"context_line":"        out \u003d self.run_command(\u0027user-password-update 1\u0027)"},{"line_number":147,"context_line":"        self.assertThat(out, matchers.MatchesRegex(required))"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def test_user_update(self):"},{"line_number":150,"context_line":"        self.stub_url(\u0027PUT\u0027, [\u0027users\u0027, \u00271\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_f87cd974","line":147,"updated":"2015-03-04 21:32:26.000000000","message":"with sys.exit(msg) or raise SystemExit(msg) you should be able to use:\n\n  self.assertRaisesRegexp(\n      SystemExit,\n      \u0027Please specify password using the --pass option \u0027\n      \u0027or using the prompt\u0027,\n      self.run_command,\n      \u0027user-password-update 1\u0027)","commit_id":"a98bafc02a5c83371fb93f9664160d12521c5fdb"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"e85e6b0aaaff496abb7523ac487eb744f583af31","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    def test_user_password_update_fail_password_null(self):"},{"line_number":141,"context_line":"        self.stub_url(\u0027GET\u0027, [\u0027users\u0027, \u00271\u0027],"},{"line_number":142,"context_line":"                      json\u003d{\u0027user\u0027: {\u0027id\u0027: \u00271\u0027}})"},{"line_number":143,"context_line":"        self.stub_url(\u0027PUT\u0027, [\u0027users\u0027, \u00271\u0027, \u0027OS-KSADM\u0027, \u0027password\u0027])"},{"line_number":144,"context_line":"        self.assertRaisesRegexp("},{"line_number":145,"context_line":"            SystemExit,"},{"line_number":146,"context_line":"            \u0027Please specify password using the --pass option \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_0ecc7d69","line":143,"updated":"2015-03-08 10:48:54.000000000","message":"this seems unnecessary, the user_update won\u0027t get called","commit_id":"5c6fd6623e1ce4d5cef90a5c30a34392d95e6a9c"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"0bb2960db96c8a4af37a7e8808bbcb36516a49f4","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        self.stub_url(\u0027GET\u0027, [\u0027users\u0027, \u00271\u0027],"},{"line_number":142,"context_line":"                      json\u003d{\u0027user\u0027: {\u0027id\u0027: \u00271\u0027}})"},{"line_number":143,"context_line":"        self.stub_url(\u0027PUT\u0027, [\u0027users\u0027, \u00271\u0027, \u0027OS-KSADM\u0027, \u0027password\u0027])"},{"line_number":144,"context_line":"        self.assertRaisesRegexp("},{"line_number":145,"context_line":"            SystemExit,"},{"line_number":146,"context_line":"            \u0027Please specify password using the --pass option \u0027"},{"line_number":147,"context_line":"            \u0027or using the prompt\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aaa499b_44ae5486","line":144,"updated":"2015-04-14 10:40:43.000000000","message":"Although this can\u0027t be the only problem with your tests, the following suggests this may not work with python2:\nhttp://stackoverflow.com/questions/23276849/assertraisesregexp-does-work-with-unicode-in-python2","commit_id":"5c6fd6623e1ce4d5cef90a5c30a34392d95e6a9c"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"6f24fd049e9a991f33f5374ead7f66274f74a079","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                      json\u003d{\u0027user\u0027: {\u0027id\u0027: \u00271\u0027}})"},{"line_number":143,"context_line":"        self.stub_url(\u0027PUT\u0027, [\u0027users\u0027, \u00271\u0027, \u0027OS-KSADM\u0027, \u0027password\u0027])"},{"line_number":144,"context_line":"        self.assertRaisesRegexp("},{"line_number":145,"context_line":"            SystemExit,"},{"line_number":146,"context_line":"            \u0027Please specify password using the --pass option \u0027"},{"line_number":147,"context_line":"            \u0027or using the prompt\u0027,"},{"line_number":148,"context_line":"            self.run_command,"}],"source_content_type":"text/x-python","patch_set":10,"id":"7aaa499b_04616c39","line":145,"updated":"2015-04-14 10:46:32.000000000","message":"as an aside, you can see how I handled something vaguely similar (for the keystone-manage cli) in CliDomainConfigTooManyOptionsTestCase in test_cli.py.","commit_id":"5c6fd6623e1ce4d5cef90a5c30a34392d95e6a9c"}],"keystoneclient/tests/v2_0/test_shell.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c593c568aff36aa531dec83fc9262ef4f7b2c9dd","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        self.assert_called(\u0027PUT\u0027, \u0027/users/1/OS-KSADM/password\u0027)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def test_user_password_update_fail_password_null(self):"},{"line_number":141,"context_line":"        self.stub_url(\u0027GET\u0027, [\u0027users\u0027, \u00271\u0027],"},{"line_number":142,"context_line":"                      json\u003d{\u0027user\u0027: {\u0027id\u0027: \u00271\u0027}})"},{"line_number":143,"context_line":"        self.stub_url(\u0027PUT\u0027, [\u0027users\u0027, \u00271\u0027, \u0027OS-KSADM\u0027, \u0027password\u0027])"},{"line_number":144,"context_line":"        required \u003d (\"\\nPlease specify password using the --pass option \""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_779fe503","line":141,"updated":"2015-02-10 06:19:36.000000000","message":"nit: if you move the user retrieval lower, these stubs could go away","commit_id":"e2215dfcfc4f85b4603c02ad618b8ad1e69b22f8"}],"keystoneclient/v2_0/shell.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"d34525617a5c1bf7e9398e2a9177322d090b84b4","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    \"\"\"Update user password.\"\"\""},{"line_number":142,"context_line":"    user \u003d utils.find_resource(kc.users, args.user)"},{"line_number":143,"context_line":"    new_passwd \u003d args.passwd or utils.prompt_for_password()"},{"line_number":144,"context_line":"    if new_passwd is None new_passwd \u003d\u003d\"\":"},{"line_number":145,"context_line":"        msg \u003d (_(\"\\nPlease specify password using the --pass option \""},{"line_number":146,"context_line":"                 \"or using the prompt\"))"},{"line_number":147,"context_line":"        sys.exit(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_86e222d2","line":144,"updated":"2015-01-15 08:23:22.000000000","message":"bug is here","commit_id":"c027b41e7d849b27270e947caade53500de3071b"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"580d77b76ef891bb41fa98f9d4951c9a5dd5b417","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    \"\"\"Update user password.\"\"\""},{"line_number":142,"context_line":"    user \u003d utils.find_resource(kc.users, args.user)"},{"line_number":143,"context_line":"    new_passwd \u003d args.passwd or utils.prompt_for_password()"},{"line_number":144,"context_line":"    if new_passwd is None or new_passwd \u003d\u003d \"\":"},{"line_number":145,"context_line":"        msg \u003d (_(\"\\nPlease specify password using the --pass option \""},{"line_number":146,"context_line":"                 \"or using the prompt\"))"},{"line_number":147,"context_line":"        sys.exit(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_b008e227","line":144,"updated":"2015-01-17 17:58:49.000000000","message":"isn\u0027t something like:\n\n  if not new_passwd:\n\nenough?","commit_id":"4eb5136ed3d1ffd2f121093212904b6759ef7d2f"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"74af4c9c806d31d7952852d6255d43a4d3a609c2","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    \"\"\"Update user password.\"\"\""},{"line_number":142,"context_line":"    user \u003d utils.find_resource(kc.users, args.user)"},{"line_number":143,"context_line":"    new_passwd \u003d args.passwd or utils.prompt_for_password()"},{"line_number":144,"context_line":"    if new_passwd is None or new_passwd \u003d\u003d \"\":"},{"line_number":145,"context_line":"        msg \u003d (_(\"\\nPlease specify password using the --pass option \""},{"line_number":146,"context_line":"                 \"or using the prompt\"))"},{"line_number":147,"context_line":"        sys.exit(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_22955b88","line":144,"in_reply_to":"3a961159_7ea72bbc","updated":"2015-02-09 10:15:08.000000000","message":"Agree, it\u0027s much more pythonic to check for not new_passwd.","commit_id":"4eb5136ed3d1ffd2f121093212904b6759ef7d2f"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6963f437e67ccc9330acea9b87c6a37f2393228c","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    \"\"\"Update user password.\"\"\""},{"line_number":142,"context_line":"    user \u003d utils.find_resource(kc.users, args.user)"},{"line_number":143,"context_line":"    new_passwd \u003d args.passwd or utils.prompt_for_password()"},{"line_number":144,"context_line":"    if new_passwd is None or new_passwd \u003d\u003d \"\":"},{"line_number":145,"context_line":"        msg \u003d (_(\"\\nPlease specify password using the --pass option \""},{"line_number":146,"context_line":"                 \"or using the prompt\"))"},{"line_number":147,"context_line":"        sys.exit(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_7ea72bbc","line":144,"in_reply_to":"3a961159_b008e227","updated":"2015-01-18 07:10:10.000000000","message":"I tend to agree that in this case we never want to pass a \"false\" evaluated password. \"If not new_password\" should catch all cases and be a bit more clear.","commit_id":"4eb5136ed3d1ffd2f121093212904b6759ef7d2f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"cd14057fcdcfcf306c99458bc529f6ae9c4b8b70","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    \"\"\"Update user password.\"\"\""},{"line_number":142,"context_line":"    user \u003d utils.find_resource(kc.users, args.user)"},{"line_number":143,"context_line":"    new_passwd \u003d args.passwd or utils.prompt_for_password()"},{"line_number":144,"context_line":"    if new_passwd is None or new_passwd \u003d\u003d \"\":"},{"line_number":145,"context_line":"        msg \u003d (_(\"\\nPlease specify password using the --pass option \""},{"line_number":146,"context_line":"                 \"or using the prompt\"))"},{"line_number":147,"context_line":"        sys.exit(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_b31a5a16","line":144,"in_reply_to":"da86d52c_22955b88","updated":"2015-02-10 01:24:56.000000000","message":"++ \n\n  if not new_passwd","commit_id":"4eb5136ed3d1ffd2f121093212904b6759ef7d2f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c593c568aff36aa531dec83fc9262ef4f7b2c9dd","unresolved":false,"context_lines":[{"line_number":138,"context_line":"           help\u003d\u0027Name or ID of user to update password.\u0027)"},{"line_number":139,"context_line":"def do_user_password_update(kc, args):"},{"line_number":140,"context_line":"    \"\"\"Update user password.\"\"\""},{"line_number":141,"context_line":"    user \u003d utils.find_resource(kc.users, args.user)"},{"line_number":142,"context_line":"    new_passwd \u003d args.passwd or utils.prompt_for_password()"},{"line_number":143,"context_line":"    if not new_passwd:"},{"line_number":144,"context_line":"        msg \u003d (_(\"\\nPlease specify password using the --pass option \""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_77d1a5cc","line":141,"updated":"2015-02-10 06:19:36.000000000","message":"nit: you could actually move this a bit lower, after the if block, the password checking shouldn\u0027t depend on the user.","commit_id":"e2215dfcfc4f85b4603c02ad618b8ad1e69b22f8"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"d17b1aac004c8107ed30459c146196f5f5113698","unresolved":false,"context_lines":[{"line_number":138,"context_line":"           help\u003d\u0027Name or ID of user to update password.\u0027)"},{"line_number":139,"context_line":"def do_user_password_update(kc, args):"},{"line_number":140,"context_line":"    \"\"\"Update user password.\"\"\""},{"line_number":141,"context_line":"    user \u003d utils.find_resource(kc.users, args.user)"},{"line_number":142,"context_line":"    new_passwd \u003d args.passwd or utils.prompt_for_password()"},{"line_number":143,"context_line":"    if not new_passwd:"},{"line_number":144,"context_line":"        msg \u003d (_(\"\\nPlease specify password using the --pass option \""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_76a3629e","line":141,"in_reply_to":"da86d52c_77d1a5cc","updated":"2015-02-10 09:16:27.000000000","message":"Agree, we could move it below password checking.","commit_id":"e2215dfcfc4f85b4603c02ad618b8ad1e69b22f8"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"e5d156d59c476ab9440f774a2a875900055d267a","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    user \u003d utils.find_resource(kc.users, args.user)"},{"line_number":142,"context_line":"    new_passwd \u003d args.passwd or utils.prompt_for_password()"},{"line_number":143,"context_line":"    if not new_passwd:"},{"line_number":144,"context_line":"        msg \u003d (_(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                 \"or using the prompt\"))"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_2425d45b","line":144,"updated":"2015-02-12 02:57:22.000000000","message":"nit: Extra enclosing parenthesis is not really needed.","commit_id":"e2215dfcfc4f85b4603c02ad618b8ad1e69b22f8"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"c593c568aff36aa531dec83fc9262ef4f7b2c9dd","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    if not new_passwd:"},{"line_number":144,"context_line":"        msg \u003d (_(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                 \"or using the prompt\"))"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"},{"line_number":148,"context_line":"    kc.users.update_password(user, new_passwd)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_f7fbd544","line":146,"updated":"2015-02-10 06:19:36.000000000","message":"i think the advantage of using sys.exit() was that it had a non-zero return code, so you probably want to keep that around.\n\nedit: on second thought, no other places use it, and just do the same print message / return. so i won\u0027t bother -1\u0027ing for that.","commit_id":"e2215dfcfc4f85b4603c02ad618b8ad1e69b22f8"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"d17b1aac004c8107ed30459c146196f5f5113698","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    if not new_passwd:"},{"line_number":144,"context_line":"        msg \u003d (_(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                 \"or using the prompt\"))"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"},{"line_number":148,"context_line":"    kc.users.update_password(user, new_passwd)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_96f3769e","line":146,"in_reply_to":"da86d52c_f7fbd544","updated":"2015-02-10 09:16:27.000000000","message":"Additionally it\u0027s near impossible to cover this case with unittests when sys.exit is used instead of print+return pattern. I couldn\u0027t get through it in reasonable time.","commit_id":"e2215dfcfc4f85b4603c02ad618b8ad1e69b22f8"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"e5d156d59c476ab9440f774a2a875900055d267a","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                 \"or using the prompt\"))"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"},{"line_number":148,"context_line":"    kc.users.update_password(user, new_passwd)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"@utils.arg(\u0027--current-password\u0027, metavar\u003d\u0027\u003ccurrent-password\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_e48adc19","line":148,"updated":"2015-02-12 02:57:22.000000000","message":"I wonder if we should also add the validation inside kc.users.update_password().  Horizon utlizes this method to do the update.\n\nMaybe moving the validation in the central is better?\n\nAnyway, just a suggestion.","commit_id":"e2215dfcfc4f85b4603c02ad618b8ad1e69b22f8"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"6b9f041e214b95d3e93a97c11c9e7ea505e70f9f","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    user \u003d utils.find_resource(kc.users, args.user)"},{"line_number":142,"context_line":"    new_passwd \u003d args.passwd or utils.prompt_for_password()"},{"line_number":143,"context_line":"    if not new_passwd:"},{"line_number":144,"context_line":"        msg \u003d (_(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                 \"or using the prompt\"))"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_66ea50d9","line":144,"updated":"2015-02-12 17:49:47.000000000","message":"nit: extra enclosing bracket not needed","commit_id":"b82b730ae76cb20d56af06cbdfe2d9feddc5b301"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c7d6fffc6ab3fb3ac97e0e8aacb8a0e299e93837","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    user \u003d utils.find_resource(kc.users, args.user)"},{"line_number":142,"context_line":"    new_passwd \u003d args.passwd or utils.prompt_for_password()"},{"line_number":143,"context_line":"    if not new_passwd:"},{"line_number":144,"context_line":"        msg \u003d (_(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                 \"or using the prompt\"))"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_4050a2d4","line":144,"in_reply_to":"da86d52c_66ea50d9","updated":"2015-02-13 16:09:15.000000000","message":"++","commit_id":"b82b730ae76cb20d56af06cbdfe2d9feddc5b301"},{"author":{"_account_id":13161,"name":"Kamil Rykowski","email":"kamil.rykowski@gmail.com","username":"krykowski"},"change_message_id":"48f7d19758ce4de60342f4a5b693c09f9299292c","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    user \u003d utils.find_resource(kc.users, args.user)"},{"line_number":142,"context_line":"    new_passwd \u003d args.passwd or utils.prompt_for_password()"},{"line_number":143,"context_line":"    if not new_passwd:"},{"line_number":144,"context_line":"        msg \u003d (_(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                 \"or using the prompt\"))"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_02edae25","line":144,"in_reply_to":"da86d52c_66ea50d9","updated":"2015-02-15 17:21:00.000000000","message":"+1","commit_id":"b82b730ae76cb20d56af06cbdfe2d9feddc5b301"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"6b9f041e214b95d3e93a97c11c9e7ea505e70f9f","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    if not new_passwd:"},{"line_number":144,"context_line":"        msg \u003d (_(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                 \"or using the prompt\"))"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"},{"line_number":148,"context_line":"    kc.users.update_password(user, new_passwd)"},{"line_number":149,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_66709008","line":146,"updated":"2015-02-12 17:49:47.000000000","message":"Since we\u0027re using print(), don\u0027t we need to import \"from __future__ import print_function\"?","commit_id":"b82b730ae76cb20d56af06cbdfe2d9feddc5b301"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"65de808c17b9e6d6c763dfe33c80751325aa3844","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    new_passwd \u003d args.passwd or utils.prompt_for_password()"},{"line_number":143,"context_line":"    if not new_passwd:"},{"line_number":144,"context_line":"        msg \u003d _(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                 \"or using the prompt\")"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"},{"line_number":148,"context_line":"    kc.users.update_password(user, new_passwd)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_ea50de2d","line":145,"updated":"2015-02-19 06:48:59.000000000","message":"pep8 error here:  E127 continuation line over-indented for visual indent","commit_id":"7b074e0364342d67358a17a73848cff5a01172b5"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"600a03c3d40796a23ce9e4294318001786e55594","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    new_passwd \u003d args.passwd or utils.prompt_for_password()"},{"line_number":143,"context_line":"    if not new_passwd:"},{"line_number":144,"context_line":"        msg \u003d _(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                \"or using the prompt\")"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"},{"line_number":148,"context_line":"    kc.users.update_password(user, new_passwd)"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_ddf1e796","line":145,"updated":"2015-02-20 02:11:15.000000000","message":"not related: you may want to add a dot to the end of the sentence.","commit_id":"a98bafc02a5c83371fb93f9664160d12521c5fdb"},{"author":{"_account_id":12140,"name":"Abhishek Talwar","email":"abhishek.talwar@tcs.com","username":"abhishek.talwar"},"change_message_id":"8f73b74d131b031c0d37173464b1ee1a1eed40af","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    new_passwd \u003d args.passwd or utils.prompt_for_password()"},{"line_number":143,"context_line":"    if not new_passwd:"},{"line_number":144,"context_line":"        msg \u003d _(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                \"or using the prompt\")"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"},{"line_number":148,"context_line":"    kc.users.update_password(user, new_passwd)"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_e6a3374d","line":145,"in_reply_to":"ba7be1f8_ddf1e796","updated":"2015-02-23 10:15:57.000000000","message":"Hi,\n\nI have used the same message as earlier. There was no dot at the end of the sentence so kept it like that only.","commit_id":"a98bafc02a5c83371fb93f9664160d12521c5fdb"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"de7b54c5c1be4b24141a7a7885b8d876b17eef4a","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        msg \u003d _(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                \"or using the prompt\")"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"},{"line_number":148,"context_line":"    kc.users.update_password(user, new_passwd)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_0cae1c81","line":147,"updated":"2015-02-19 16:11:50.000000000","message":"I think the message should be written on stderr, and that it would make sense for the client to return 1. Why did you make this change?","commit_id":"a98bafc02a5c83371fb93f9664160d12521c5fdb"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"ab14cfc624c6f067d632b0c4263b2645b44ea2e2","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        msg \u003d _(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                \"or using the prompt\")"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"},{"line_number":148,"context_line":"    kc.users.update_password(user, new_passwd)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_1631a20b","line":147,"in_reply_to":"ba7be1f8_9d25af0c","updated":"2015-03-04 08:42:53.000000000","message":"++","commit_id":"a98bafc02a5c83371fb93f9664160d12521c5fdb"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"da338366a7ff473dfb1d5e643357e44223687007","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        msg \u003d _(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                \"or using the prompt\")"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"},{"line_number":148,"context_line":"    kc.users.update_password(user, new_passwd)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_d82b9580","line":147,"in_reply_to":"ba7be1f8_a6993f21","updated":"2015-03-04 21:32:26.000000000","message":"sys.exit(msg) just raises a SystemExit(msg) which you can assert is raised in tests before it\u0027s ever sent to an output stream","commit_id":"a98bafc02a5c83371fb93f9664160d12521c5fdb"},{"author":{"_account_id":12140,"name":"Abhishek Talwar","email":"abhishek.talwar@tcs.com","username":"abhishek.talwar"},"change_message_id":"8f73b74d131b031c0d37173464b1ee1a1eed40af","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        msg \u003d _(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                \"or using the prompt\")"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"},{"line_number":148,"context_line":"    kc.users.update_password(user, new_passwd)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_a6993f21","line":147,"in_reply_to":"da86d52c_0cae1c81","updated":"2015-02-23 10:15:57.000000000","message":"I just made this change because it\u0027s near impossible to cover this case with unit tests when sys.exit is used instead of print+return pattern. I couldn\u0027t get through it in reasonable time.\n\nSo thought of using it like this. Moreover, it has been used like this in other functions of the file so I don\u0027t think this should be a problem.\n\nThanks \nAbhishek Talwar","commit_id":"a98bafc02a5c83371fb93f9664160d12521c5fdb"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"6f8ede44ceca6f61adb680f6a85b4f65aea9dabf","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        msg \u003d _(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                \"or using the prompt\")"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"},{"line_number":148,"context_line":"    kc.users.update_password(user, new_passwd)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_22b129e0","line":147,"in_reply_to":"da86d52c_0cae1c81","updated":"2015-02-19 16:50:41.000000000","message":"More to say it would be nice to have output stream explicitely defined if it has to be hard-coded.","commit_id":"a98bafc02a5c83371fb93f9664160d12521c5fdb"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"600a03c3d40796a23ce9e4294318001786e55594","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        msg \u003d _(\"\\nPlease specify password using the --pass option \""},{"line_number":145,"context_line":"                \"or using the prompt\")"},{"line_number":146,"context_line":"        print(msg)"},{"line_number":147,"context_line":"        return"},{"line_number":148,"context_line":"    kc.users.update_password(user, new_passwd)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba7be1f8_9d25af0c","line":147,"in_reply_to":"da86d52c_22b129e0","updated":"2015-02-20 02:11:15.000000000","message":"++","commit_id":"a98bafc02a5c83371fb93f9664160d12521c5fdb"}]}
