)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b0d34b9afbe4d0d19c6af5409d025e86edcf0072","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Domain administrator cannot do project operations because the"},{"line_number":10,"context_line":"require access to the domain API (which they don\u0027t have).  When"},{"line_number":11,"context_line":"attempting to find a domain for project operations, ignore errors."},{"line_number":12,"context_line":"The domain administrators will have to use a domain id, but they"},{"line_number":13,"context_line":"will still be able to do project operations."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1ae5cdf2_6ca9b924","line":11,"updated":"2014-06-25 15:45:47.000000000","message":"ignore errors because ... ?","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b0d34b9afbe4d0d19c6af5409d025e86edcf0072","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Domain administrator cannot do project operations because the"},{"line_number":10,"context_line":"require access to the domain API (which they don\u0027t have).  When"},{"line_number":11,"context_line":"attempting to find a domain for project operations, ignore errors."},{"line_number":12,"context_line":"The domain administrators will have to use a domain id, but they"},{"line_number":13,"context_line":"will still be able to do project operations."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ieed5d420022a407c8296a0bb3569d9469c89d752"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1ae5cdf2_aca3c141","line":12,"updated":"2014-06-25 15:45:47.000000000","message":"where does the domain ID come from?","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"}],"openstackclient/identity/common.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f228624c300804d13ee9172d4d64d58a78a06c67","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    \"\"\"Find a service by id, name or type.\"\"\""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    try:"},{"line_number":27,"context_line":"        # search for the usual ID or name"},{"line_number":28,"context_line":"        return utils.find_resource(identity_client.services, name_type_or_id)"},{"line_number":29,"context_line":"    except exceptions.CommandError:"},{"line_number":30,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_c894c239","line":27,"updated":"2014-05-30 19:28:29.000000000","message":"my thinking was right, in this function we return the resource","commit_id":"869a646a885c4c018740a2b62bc02379eb0532b3"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f228624c300804d13ee9172d4d64d58a78a06c67","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"def find_domain(client, domain):"},{"line_number":42,"context_line":"    try:"},{"line_number":43,"context_line":"        return utils.find_resource(client.domains, domain).id"},{"line_number":44,"context_line":"    except Exception:"},{"line_number":45,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_287c4620","line":42,"updated":"2014-05-30 19:28:29.000000000","message":"Can you add a docstring here, explaining why this function exists (might want to reference the bug), and where it\u0027ll be called (from projects)","commit_id":"869a646a885c4c018740a2b62bc02379eb0532b3"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f228624c300804d13ee9172d4d64d58a78a06c67","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"def find_domain(client, domain):"},{"line_number":42,"context_line":"    try:"},{"line_number":43,"context_line":"        return utils.find_resource(client.domains, domain).id"},{"line_number":44,"context_line":"    except Exception:"},{"line_number":45,"context_line":"        pass"},{"line_number":46,"context_line":"    return domain"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_a8a136ab","line":43,"updated":"2014-05-30 19:28:29.000000000","message":"so find_domain sounds like it would return the resource, can you drop the .id from here, and return the resource?","commit_id":"869a646a885c4c018740a2b62bc02379eb0532b3"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"61fb614fa5415f1ec238e64992bf4e26f19ca103","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"def find_domain(client, domain):"},{"line_number":42,"context_line":"    try:"},{"line_number":43,"context_line":"        return utils.find_resource(client.domains, domain).id"},{"line_number":44,"context_line":"    except Exception:"},{"line_number":45,"context_line":"        pass"},{"line_number":46,"context_line":"    return domain"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_cb311ca4","line":43,"in_reply_to":"1ae5cdf2_a8a136ab","updated":"2014-05-30 19:58:11.000000000","message":"Well, part of the problem was find_resource was returning None, so the error was an AttribueError on None.id.  I\u0027m not sure how that happens, maybe in some cases a GET to keystone returns an empty array.\n\nNot sure what to do here, maybe name the method find_domain_id.","commit_id":"869a646a885c4c018740a2b62bc02379eb0532b3"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"dcdad404380fc6739b0acf22d6bbea7939578806","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"def find_domain(client, domain):"},{"line_number":42,"context_line":"    try:"},{"line_number":43,"context_line":"        return utils.find_resource(client.domains, domain).id"},{"line_number":44,"context_line":"    except Exception:"},{"line_number":45,"context_line":"        pass"},{"line_number":46,"context_line":"    return domain"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_8bc1d430","line":43,"in_reply_to":"1ae5cdf2_cb311ca4","updated":"2014-05-30 20:02:10.000000000","message":"Check if it\u0027s None before returning it? \nWouldn\u0027t keystoneclient raise a not found if it\u0027s None? Catch and raise that before you catch the general Exception?","commit_id":"869a646a885c4c018740a2b62bc02379eb0532b3"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"cbf6293a7db27d58b669b4f82a11404398bd25aa","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def find_domain(client, domain):"},{"line_number":43,"context_line":"    \"\"\"Find a domain.  If the user does not have permssions on to access"},{"line_number":44,"context_line":"       the domain API, assume that domain is the id rather than the name"},{"line_number":45,"context_line":"       of the domain.  Closes bugs #1317478 and #1317485."}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_49c86f56","line":42,"updated":"2014-06-25 15:16:40.000000000","message":"nit: s/client/identity_client\n\nnit argument domain s/domain/name_or_id\n\nto make it similar to find_service","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b0d34b9afbe4d0d19c6af5409d025e86edcf0072","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def find_domain(client, domain):"},{"line_number":43,"context_line":"    \"\"\"Find a domain.  If the user does not have permssions on to access"},{"line_number":44,"context_line":"       the domain API, assume that domain is the id rather than the name"},{"line_number":45,"context_line":"       of the domain.  Closes bugs #1317478 and #1317485."},{"line_number":46,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_e9969bee","line":43,"updated":"2014-06-25 15:45:47.000000000","message":"I assume \"Find a domain.\" should be the one line summary - but it doesn\u0027t add much clarity to the function name, find_domain(). I\u0027d suggest adding a double line break after that statement, and summarizing the method a bit more thoroughly.\n\nAlso, \"permssions on to\" -\u003e \"permission to\"","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b0d34b9afbe4d0d19c6af5409d025e86edcf0072","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"def find_domain(client, domain):"},{"line_number":43,"context_line":"    \"\"\"Find a domain.  If the user does not have permssions on to access"},{"line_number":44,"context_line":"       the domain API, assume that domain is the id rather than the name"},{"line_number":45,"context_line":"       of the domain.  Closes bugs #1317478 and #1317485."},{"line_number":46,"context_line":"    \"\"\""},{"line_number":47,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_299b2367","line":44,"updated":"2014-06-25 15:45:47.000000000","message":"what is \"the domain API\"? /v3/domains?","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b0d34b9afbe4d0d19c6af5409d025e86edcf0072","unresolved":false,"context_lines":[{"line_number":42,"context_line":"def find_domain(client, domain):"},{"line_number":43,"context_line":"    \"\"\"Find a domain.  If the user does not have permssions on to access"},{"line_number":44,"context_line":"       the domain API, assume that domain is the id rather than the name"},{"line_number":45,"context_line":"       of the domain.  Closes bugs #1317478 and #1317485."},{"line_number":46,"context_line":"    \"\"\""},{"line_number":47,"context_line":"    try:"},{"line_number":48,"context_line":"        dom \u003d utils.find_resource(client.domains, domain)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_49a14f94","line":45,"updated":"2014-06-25 15:45:47.000000000","message":"you don\u0027t need to cite bugs in comments, especially outside of tests","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"99d604a2b71c6b7857d4da748e24c2873d5dbf35","unresolved":false,"context_lines":[{"line_number":42,"context_line":"def find_domain(client, domain):"},{"line_number":43,"context_line":"    \"\"\"Find a domain.  If the user does not have permssions on to access"},{"line_number":44,"context_line":"       the domain API, assume that domain is the id rather than the name"},{"line_number":45,"context_line":"       of the domain.  Closes bugs #1317478 and #1317485."},{"line_number":46,"context_line":"    \"\"\""},{"line_number":47,"context_line":"    try:"},{"line_number":48,"context_line":"        dom \u003d utils.find_resource(client.domains, domain)"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_a1f4405b","line":45,"in_reply_to":"1ae5cdf2_49a14f94","updated":"2014-07-07 18:14:49.000000000","message":"Someone else asked me to have the bugs in the comments.","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b0d34b9afbe4d0d19c6af5409d025e86edcf0072","unresolved":false,"context_lines":[{"line_number":48,"context_line":"        dom \u003d utils.find_resource(client.domains, domain)"},{"line_number":49,"context_line":"        if dom is not None:"},{"line_number":50,"context_line":"            return dom"},{"line_number":51,"context_line":"    except Exception:"},{"line_number":52,"context_line":"        pass"},{"line_number":53,"context_line":"    return domains.Domain(None, {\u0027id\u0027: domain})"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_699c4b5c","line":51,"updated":"2014-06-25 15:45:47.000000000","message":"is there something more specific you can catch here? if `except Exception` is correct, you should include an inline comment defending it\u0027s use.","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b0d34b9afbe4d0d19c6af5409d025e86edcf0072","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            return dom"},{"line_number":51,"context_line":"    except Exception:"},{"line_number":52,"context_line":"        pass"},{"line_number":53,"context_line":"    return domains.Domain(None, {\u0027id\u0027: domain})"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_4ca15d94","line":53,"updated":"2014-06-25 15:45:47.000000000","message":"what is None?","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"99d604a2b71c6b7857d4da748e24c2873d5dbf35","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            return dom"},{"line_number":51,"context_line":"    except Exception:"},{"line_number":52,"context_line":"        pass"},{"line_number":53,"context_line":"    return domains.Domain(None, {\u0027id\u0027: domain})"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_18006b65","line":53,"in_reply_to":"1ae5cdf2_4ca15d94","updated":"2014-07-07 18:14:49.000000000","message":"The manager.  If someone sees a need to make one, they can add that in.","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"}],"openstackclient/identity/v3/project.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f228624c300804d13ee9172d4d64d58a78a06c67","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        kwargs \u003d {}"},{"line_number":156,"context_line":"        if parsed_args.domain:"},{"line_number":157,"context_line":"            domain \u003d common.find_domain(identity_client, parsed_args.domain)"},{"line_number":158,"context_line":"            kwargs[\u0027domain\u0027] \u003d domain"},{"line_number":159,"context_line":"        data \u003d identity_client.projects.list(**kwargs)"},{"line_number":160,"context_line":"        return (columns,"},{"line_number":161,"context_line":"                (utils.get_item_properties("}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_089f8a53","line":158,"updated":"2014-05-30 19:28:29.000000000","message":"kwargs[\u0027domain\u0027] \u003d domain.id","commit_id":"869a646a885c4c018740a2b62bc02379eb0532b3"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"f228624c300804d13ee9172d4d64d58a78a06c67","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            kwargs[\u0027name\u0027] \u003d parsed_args.name"},{"line_number":234,"context_line":"        if parsed_args.domain:"},{"line_number":235,"context_line":"            domain \u003d common.find_domain(identity_client, parsed_args.domain)"},{"line_number":236,"context_line":"            kwargs[\u0027domain\u0027] \u003d domain"},{"line_number":237,"context_line":"        if parsed_args.description:"},{"line_number":238,"context_line":"            kwargs[\u0027description\u0027] \u003d parsed_args.description"},{"line_number":239,"context_line":"        if parsed_args.enable:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_28a3669f","line":236,"updated":"2014-05-30 19:28:29.000000000","message":"kwargs[\u0027domain\u0027] \u003d domain.id","commit_id":"869a646a885c4c018740a2b62bc02379eb0532b3"}],"openstackclient/tests/identity/v3/test_project.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b0d34b9afbe4d0d19c6af5409d025e86edcf0072","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        )"},{"line_number":174,"context_line":"        self.assertEqual(data, datalist)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def test_project_create_domain_no_perms(self):"},{"line_number":177,"context_line":"        arglist \u003d ["},{"line_number":178,"context_line":"            \u0027--domain\u0027, identity_fakes.domain_id,"},{"line_number":179,"context_line":"            identity_fakes.project_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_ac702109","line":176,"updated":"2014-06-25 15:45:47.000000000","message":"i\u0027ve been trying to compare this new method to test_project_create_domain() and it\u0027s not immediately clear what the differences are... It looks like it just mocks find_resource() and has it return None? It\u0027s not clear from the test why that specific return value should matter for the use case in the test.","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"99d604a2b71c6b7857d4da748e24c2873d5dbf35","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        )"},{"line_number":174,"context_line":"        self.assertEqual(data, datalist)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def test_project_create_domain_no_perms(self):"},{"line_number":177,"context_line":"        arglist \u003d ["},{"line_number":178,"context_line":"            \u0027--domain\u0027, identity_fakes.domain_id,"},{"line_number":179,"context_line":"            identity_fakes.project_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_6171480b","line":176,"in_reply_to":"1ae5cdf2_ac702109","updated":"2014-07-07 18:14:49.000000000","message":"That is in fact what find_resource returns in the case, None.","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b0d34b9afbe4d0d19c6af5409d025e86edcf0072","unresolved":false,"context_lines":[{"line_number":185,"context_line":"            (\u0027name\u0027, identity_fakes.project_name),"},{"line_number":186,"context_line":"        ]"},{"line_number":187,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":188,"context_line":"        mocker \u003d mock.Mock()"},{"line_number":189,"context_line":"        mocker.return_value \u003d None"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        with mock.patch(\"openstackclient.common.utils.find_resource\", mocker):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_8cfa8541","line":188,"updated":"2014-06-25 15:45:47.000000000","message":"i don\u0027t think L187 and L188 have anything to do with each other - can you add whitespace in between?","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"99d604a2b71c6b7857d4da748e24c2873d5dbf35","unresolved":false,"context_lines":[{"line_number":185,"context_line":"            (\u0027name\u0027, identity_fakes.project_name),"},{"line_number":186,"context_line":"        ]"},{"line_number":187,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":188,"context_line":"        mocker \u003d mock.Mock()"},{"line_number":189,"context_line":"        mocker.return_value \u003d None"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        with mock.patch(\"openstackclient.common.utils.find_resource\", mocker):"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_614868b3","line":188,"in_reply_to":"1ae5cdf2_8cfa8541","updated":"2014-07-07 18:14:49.000000000","message":"Again, given/when/then.","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b0d34b9afbe4d0d19c6af5409d025e86edcf0072","unresolved":false,"context_lines":[{"line_number":459,"context_line":"            (\u0027domain\u0027, identity_fakes.domain_id),"},{"line_number":460,"context_line":"        ]"},{"line_number":461,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":462,"context_line":"        mocker \u003d mock.Mock()"},{"line_number":463,"context_line":"        mocker.return_value \u003d None"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        with mock.patch(\"openstackclient.common.utils.find_resource\", mocker):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_2ca17146","line":462,"updated":"2014-06-25 15:45:47.000000000","message":"i don\u0027t think L461 and L462 have anything to do with each other - can you add whitespace in between?","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"99d604a2b71c6b7857d4da748e24c2873d5dbf35","unresolved":false,"context_lines":[{"line_number":459,"context_line":"            (\u0027domain\u0027, identity_fakes.domain_id),"},{"line_number":460,"context_line":"        ]"},{"line_number":461,"context_line":"        parsed_args \u003d self.check_parser(self.cmd, arglist, verifylist)"},{"line_number":462,"context_line":"        mocker \u003d mock.Mock()"},{"line_number":463,"context_line":"        mocker.return_value \u003d None"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        with mock.patch(\"openstackclient.common.utils.find_resource\", mocker):"}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_01424cad","line":462,"in_reply_to":"1ae5cdf2_2ca17146","updated":"2014-07-07 18:14:49.000000000","message":"These lines are related as the \"given\" part of given/when/then.  The next section is \"when\" which is what we are testing.  I feel that OSC tests in general are way to long and rambling, but this is standard through the project.","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b0d34b9afbe4d0d19c6af5409d025e86edcf0072","unresolved":false,"context_lines":[{"line_number":466,"context_line":"            columns, data \u003d self.cmd.take_action(parsed_args)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        self.projects_mock.list.assert_called_with("},{"line_number":469,"context_line":"            domain\u003didentity_fakes.domain_id)"},{"line_number":470,"context_line":"        collist \u003d (\u0027ID\u0027, \u0027Name\u0027)"},{"line_number":471,"context_line":"        self.assertEqual(columns, collist)"},{"line_number":472,"context_line":"        datalist \u003d (("}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_0ce755ad","line":469,"updated":"2014-06-25 15:45:47.000000000","message":"there was whitespace in the original test after this line - it\u0027d make them easier to compare if it was restored","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"99d604a2b71c6b7857d4da748e24c2873d5dbf35","unresolved":false,"context_lines":[{"line_number":466,"context_line":"            columns, data \u003d self.cmd.take_action(parsed_args)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        self.projects_mock.list.assert_called_with("},{"line_number":469,"context_line":"            domain\u003didentity_fakes.domain_id)"},{"line_number":470,"context_line":"        collist \u003d (\u0027ID\u0027, \u0027Name\u0027)"},{"line_number":471,"context_line":"        self.assertEqual(columns, collist)"},{"line_number":472,"context_line":"        datalist \u003d (("}],"source_content_type":"text/x-python","patch_set":3,"id":"baada198_2124b00b","line":469,"in_reply_to":"1ae5cdf2_0ce755ad","updated":"2014-07-07 18:14:49.000000000","message":"This is the \"then\" section, we are asserting everything from out test here.","commit_id":"e09214d2a589ad0c94419b542de5248f07c61c6e"}]}
