)]}'
{"keystone/tests/unit/utils.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f9d68def4a542d6589f1a870d66605e3e665aa1b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    return uuid.uuid4().hex"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def wip(message, expected_exception\u003dException, bugid\u003dNone):"},{"line_number":53,"context_line":"    \"\"\"Mark a test as work in progress."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    Based on code by Nat Pryce:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_06f59eeb","line":52,"updated":"2016-05-12 03:11:40.000000000","message":"Any reason not to make it just \u0027bug\u0027 so that it matches skip_because()?","commit_id":"a726a4f923ff35878a2dc772a53417ce40bcbc56"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"a38355cac1cd65604ab31e9962c15ae516d1a747","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    return uuid.uuid4().hex"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def wip(message, expected_exception\u003dException, bugid\u003dNone):"},{"line_number":53,"context_line":"    \"\"\"Mark a test as work in progress."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    Based on code by Nat Pryce:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_932b6e94","line":52,"in_reply_to":"dab17558_06f59eeb","updated":"2016-05-12 12:48:49.000000000","message":"+1","commit_id":"a726a4f923ff35878a2dc772a53417ce40bcbc56"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a9a63df57e27c9c5b8276305abd5af1876e7cc7f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    return uuid.uuid4().hex"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"def wip(message, expected_exception\u003dException, bugid\u003dNone):"},{"line_number":53,"context_line":"    \"\"\"Mark a test as work in progress."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    Based on code by Nat Pryce:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_99509a60","line":52,"in_reply_to":"dab17558_06f59eeb","updated":"2016-05-12 19:41:30.000000000","message":"either way.","commit_id":"a726a4f923ff35878a2dc772a53417ce40bcbc56"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"48442e3660afcc8bf58e1058af5c80ae5f976a09","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                f(*args, **kwargs)"},{"line_number":88,"context_line":"            except expected_exception as __e:"},{"line_number":89,"context_line":"                raise testcase.TestSkipped("},{"line_number":90,"context_line":"                    \u0027Work In Progress Test Failed%(bugstr)s: %(message)s\u0027 %"},{"line_number":91,"context_line":"                    {\u0027message\u0027: message, \u0027bugstr\u0027: bugstr})"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"            if expected_exception !\u003d Exception and __e is not None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_52d009c9","line":90,"range":{"start_line":90,"start_character":49,"end_line":90,"end_character":59},"updated":"2016-05-11 19:04:06.000000000","message":"add a space or colon here, between Failed and the bugID","commit_id":"a726a4f923ff35878a2dc772a53417ce40bcbc56"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"52a3c6eb2b8c7c95b624bcdaf01abe5291d0e6ec","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                f(*args, **kwargs)"},{"line_number":88,"context_line":"            except expected_exception as __e:"},{"line_number":89,"context_line":"                raise testcase.TestSkipped("},{"line_number":90,"context_line":"                    \u0027Work In Progress Test Failed%(bugstr)s: %(message)s\u0027 %"},{"line_number":91,"context_line":"                    {\u0027message\u0027: message, \u0027bugstr\u0027: bugstr})"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"            if expected_exception !\u003d Exception and __e is not None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_d22eb9a3","line":90,"range":{"start_line":90,"start_character":49,"end_line":90,"end_character":59},"in_reply_to":"dab17558_52d009c9","updated":"2016-05-11 19:06:40.000000000","message":"That is explicit to not have it so that you don\u0027t end up with:\n\n  Failed : \u003cmessage\u003e or Failed (BugId: \u003cID\u003e): Message\n\nLook at line 78 for where the space is added.","commit_id":"a726a4f923ff35878a2dc772a53417ce40bcbc56"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f9d68def4a542d6589f1a870d66605e3e665aa1b","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                    \u0027Work In Progress Test Failed%(bugstr)s: %(message)s\u0027 %"},{"line_number":91,"context_line":"                    {\u0027message\u0027: message, \u0027bugstr\u0027: bugstr})"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"            if expected_exception !\u003d Exception and __e is not None:"},{"line_number":94,"context_line":"                raise AssertionError("},{"line_number":95,"context_line":"                    \u0027Work In Progress Test Failed%(bugstr)s with unexpected \u0027"},{"line_number":96,"context_line":"                    \u0027exception. Expected \"%(expected)s\" got \"%(exception)s\": \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_a568fff5","line":93,"updated":"2016-05-12 03:11:40.000000000","message":"Will this ever be hit? Line 88 catches the one you care about and any other exception would just bubble up.","commit_id":"a726a4f923ff35878a2dc772a53417ce40bcbc56"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"a38355cac1cd65604ab31e9962c15ae516d1a747","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                    \u0027Work In Progress Test Failed%(bugstr)s: %(message)s\u0027 %"},{"line_number":91,"context_line":"                    {\u0027message\u0027: message, \u0027bugstr\u0027: bugstr})"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"            if expected_exception !\u003d Exception and __e is not None:"},{"line_number":94,"context_line":"                raise AssertionError("},{"line_number":95,"context_line":"                    \u0027Work In Progress Test Failed%(bugstr)s with unexpected \u0027"},{"line_number":96,"context_line":"                    \u0027exception. Expected \"%(expected)s\" got \"%(exception)s\": \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_6eaedde8","line":93,"in_reply_to":"dab17558_a568fff5","updated":"2016-05-12 12:48:49.000000000","message":"+1\n\nit needs another except block for Exception and this check would be made there","commit_id":"a726a4f923ff35878a2dc772a53417ce40bcbc56"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"a9a63df57e27c9c5b8276305abd5af1876e7cc7f","unresolved":false,"context_lines":[{"line_number":90,"context_line":"                    \u0027Work In Progress Test Failed%(bugstr)s: %(message)s\u0027 %"},{"line_number":91,"context_line":"                    {\u0027message\u0027: message, \u0027bugstr\u0027: bugstr})"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"            if expected_exception !\u003d Exception and __e is not None:"},{"line_number":94,"context_line":"                raise AssertionError("},{"line_number":95,"context_line":"                    \u0027Work In Progress Test Failed%(bugstr)s with unexpected \u0027"},{"line_number":96,"context_line":"                    \u0027exception. Expected \"%(expected)s\" got \"%(exception)s\": \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_595e3277","line":93,"in_reply_to":"dab17558_a568fff5","updated":"2016-05-12 19:41:30.000000000","message":"This was supposed to be indented and above the raise skip. will fix in next.","commit_id":"a726a4f923ff35878a2dc772a53417ce40bcbc56"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"48442e3660afcc8bf58e1058af5c80ae5f976a09","unresolved":false,"context_lines":[{"line_number":92,"context_line":""},{"line_number":93,"context_line":"            if expected_exception !\u003d Exception and __e is not None:"},{"line_number":94,"context_line":"                raise AssertionError("},{"line_number":95,"context_line":"                    \u0027Work In Progress Test Failed%(bugstr)s with unexpected \u0027"},{"line_number":96,"context_line":"                    \u0027exception. Expected \"%(expected)s\" got \"%(exception)s\": \u0027"},{"line_number":97,"context_line":"                    \u0027%(message)s \u0027 %"},{"line_number":98,"context_line":"                    {\u0027message\u0027: message, \u0027bugstr\u0027: bugstr,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_52e769ab","line":95,"range":{"start_line":95,"start_character":49,"end_line":95,"end_character":59},"updated":"2016-05-11 19:04:06.000000000","message":"same remark","commit_id":"a726a4f923ff35878a2dc772a53417ce40bcbc56"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"48442e3660afcc8bf58e1058af5c80ae5f976a09","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                    {\u0027message\u0027: message, \u0027bugstr\u0027: bugstr,"},{"line_number":99,"context_line":"                     \u0027expected\u0027: expected_exception.__class__.__name__,"},{"line_number":100,"context_line":"                     \u0027exception\u0027: __e.__class__.__name__})"},{"line_number":101,"context_line":"            raise AssertionError(\u0027Work In Progress Test Passed%(bugstr)s: \u0027"},{"line_number":102,"context_line":"                                 \u0027%(message)s\u0027 % {\u0027message\u0027: message,"},{"line_number":103,"context_line":"                                                  \u0027bugstr\u0027: bugstr})"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_b2f6955a","line":101,"range":{"start_line":101,"start_character":62,"end_line":101,"end_character":72},"updated":"2016-05-11 19:04:06.000000000","message":"same","commit_id":"a726a4f923ff35878a2dc772a53417ce40bcbc56"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"d3a54f325182476e4e73b8e31c779eeb39d17831","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            __e \u003d None"},{"line_number":87,"context_line":"            try:"},{"line_number":88,"context_line":"                f(*args, **kwargs)"},{"line_number":89,"context_line":"            except expected_exception as __e:"},{"line_number":90,"context_line":"                if (expected_exception !\u003d Exception and"},{"line_number":91,"context_line":"                        not isinstance(__e, expected_exception)):"},{"line_number":92,"context_line":"                    raise AssertionError("}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_f5db077a","line":89,"range":{"start_line":89,"start_character":19,"end_line":89,"end_character":44},"updated":"2016-05-22 12:17:12.000000000","message":"this needs to be:\n\n  except Exception as __e:\n\nso you can check the exception type inside the except block","commit_id":"73fc3737196670f260d600fc08f0977d988eb1d5"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6f17e7909b50ef68d8b0c51efbf4187bea8f18d5","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            __e \u003d None"},{"line_number":87,"context_line":"            try:"},{"line_number":88,"context_line":"                f(*args, **kwargs)"},{"line_number":89,"context_line":"            except expected_exception as __e:"},{"line_number":90,"context_line":"                if (expected_exception !\u003d Exception and"},{"line_number":91,"context_line":"                        not isinstance(__e, expected_exception)):"},{"line_number":92,"context_line":"                    raise AssertionError("}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_987c72ed","line":89,"range":{"start_line":89,"start_character":19,"end_line":89,"end_character":44},"in_reply_to":"bab6814e_f5db077a","updated":"2016-05-22 16:05:05.000000000","message":"Done","commit_id":"73fc3737196670f260d600fc08f0977d988eb1d5"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"d3a54f325182476e4e73b8e31c779eeb39d17831","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                f(*args, **kwargs)"},{"line_number":89,"context_line":"            except expected_exception as __e:"},{"line_number":90,"context_line":"                if (expected_exception !\u003d Exception and"},{"line_number":91,"context_line":"                        not isinstance(__e, expected_exception)):"},{"line_number":92,"context_line":"                    raise AssertionError("},{"line_number":93,"context_line":"                        \u0027Work In Progress Test Failed%(bugstr)s with \u0027"},{"line_number":94,"context_line":"                        \u0027unexpected exception. Expected \"%(expected)s\" \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_15e16b2d","line":91,"range":{"start_line":91,"start_character":24,"end_line":91,"end_character":63},"updated":"2016-05-22 12:17:12.000000000","message":"this will never happen since it is catching only \"expected_exception\" above","commit_id":"73fc3737196670f260d600fc08f0977d988eb1d5"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6f17e7909b50ef68d8b0c51efbf4187bea8f18d5","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                f(*args, **kwargs)"},{"line_number":89,"context_line":"            except expected_exception as __e:"},{"line_number":90,"context_line":"                if (expected_exception !\u003d Exception and"},{"line_number":91,"context_line":"                        not isinstance(__e, expected_exception)):"},{"line_number":92,"context_line":"                    raise AssertionError("},{"line_number":93,"context_line":"                        \u0027Work In Progress Test Failed%(bugstr)s with \u0027"},{"line_number":94,"context_line":"                        \u0027unexpected exception. Expected \"%(expected)s\" \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_787f0ee0","line":91,"range":{"start_line":91,"start_character":24,"end_line":91,"end_character":63},"in_reply_to":"bab6814e_15e16b2d","updated":"2016-05-22 16:05:05.000000000","message":"Done","commit_id":"73fc3737196670f260d600fc08f0977d988eb1d5"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"e1167765adbe810f2b8d7ede3cf72a5e0df3f2d9","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                # NOTE(notmorgan): We got the expected exception we can safely"},{"line_number":100,"context_line":"                # skip this test."},{"line_number":101,"context_line":"                raise testcase.TestSkipped("},{"line_number":102,"context_line":"                    \u0027Work In Progress Test Failed%(bugstr)s: %(message)s\u0027 %"},{"line_number":103,"context_line":"                    {\u0027message\u0027: message, \u0027bugstr\u0027: bugstr})"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"            raise AssertionError(\u0027Work In Progress Test Passed%(bugstr)s: \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_7f1898d3","line":102,"range":{"start_line":102,"start_character":43,"end_line":102,"end_character":49},"updated":"2016-05-22 07:35:58.000000000","message":"nit: do you think it might be worth saying \"Failed (as expected)\" ?","commit_id":"73fc3737196670f260d600fc08f0977d988eb1d5"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"6f17e7909b50ef68d8b0c51efbf4187bea8f18d5","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                # NOTE(notmorgan): We got the expected exception we can safely"},{"line_number":100,"context_line":"                # skip this test."},{"line_number":101,"context_line":"                raise testcase.TestSkipped("},{"line_number":102,"context_line":"                    \u0027Work In Progress Test Failed%(bugstr)s: %(message)s\u0027 %"},{"line_number":103,"context_line":"                    {\u0027message\u0027: message, \u0027bugstr\u0027: bugstr})"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"            raise AssertionError(\u0027Work In Progress Test Passed%(bugstr)s: \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"bab6814e_d8827ac7","line":102,"range":{"start_line":102,"start_character":43,"end_line":102,"end_character":49},"in_reply_to":"bab6814e_7f1898d3","updated":"2016-05-22 16:05:05.000000000","message":"Done","commit_id":"73fc3737196670f260d600fc08f0977d988eb1d5"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"f7dde68b713f764af39397aab528f67e0f6aefac","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    :param expected_exception: an exception class that will be checked for"},{"line_number":66,"context_line":"                               when @wip verifies an exception is raised. The"},{"line_number":67,"context_line":"                               test will fail if a different exception is"},{"line_number":68,"context_line":"                               raised. Default is \"any\" exception is valid"},{"line_number":69,"context_line":"    :param bug: (optional) a string for tracking the bug and what bug should"},{"line_number":70,"context_line":"                cause the @wip decorator to be removed from the testcase"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_73f28f9b","line":68,"range":{"start_line":68,"start_character":50,"end_line":68,"end_character":74},"updated":"2016-05-22 19:45:05.000000000","message":"Default is \"python built-in Exception class\" would be more accurate since we are talking about exception class","commit_id":"e386e84869ebf2e3d3c61c03e39782ac16ae2a0f"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"0eae1df3625abde70197dff01e5df6b53c6fc4df","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    :param expected_exception: an exception class that will be checked for"},{"line_number":66,"context_line":"                               when @wip verifies an exception is raised. The"},{"line_number":67,"context_line":"                               test will fail if a different exception is"},{"line_number":68,"context_line":"                               raised. Default is \"any\" exception is valid"},{"line_number":69,"context_line":"    :param bug: (optional) a string for tracking the bug and what bug should"},{"line_number":70,"context_line":"                cause the @wip decorator to be removed from the testcase"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bab6814e_c9ad8e9c","line":68,"range":{"start_line":68,"start_character":50,"end_line":68,"end_character":74},"in_reply_to":"bab6814e_73f28f9b","updated":"2016-05-22 23:51:09.000000000","message":"This improvement would be incorrect, this describes the behavior, not the argument itself.","commit_id":"e386e84869ebf2e3d3c61c03e39782ac16ae2a0f"}]}
