)]}'
{"tests/fakes.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"fe45b8b57e0834e5427196b52f9cde39162acb5b","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        expected \u003d (method, url)"},{"line_number":30,"context_line":"        called \u003d self.callstack[pos][0:2]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        assert self.callstack, \\"},{"line_number":33,"context_line":"            \"Expected %s %s but no calls were made.\" % expected"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        assert expected \u003d\u003d called, \u0027Expected %s %s; got %s %s\u0027 % \\"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FAHU%3D","line":32,"updated":"2013-02-12 01:07:18.000000000","message":"\"Long lines should be wrapped in parentheses\" -- see HACKING.rst. This applies in several other places in this file.","commit_id":"0b4b56efa9a8468cd975fd1dd70a50dfe70cdeb0"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"120143ad81453d41abf6099c2ac18d1dca4c9c07","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        expected \u003d (method, url)"},{"line_number":30,"context_line":"        called \u003d self.callstack[pos][0:2]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        assert self.callstack, \\"},{"line_number":33,"context_line":"            \"Expected %s %s but no calls were made.\" % expected"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        assert expected \u003d\u003d called, \u0027Expected %s %s; got %s %s\u0027 % \\"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B%2FE8%3D","line":32,"in_reply_to":"AAAAM3%2F%2FAHU%3D","updated":"2013-02-12 14:06:51.000000000","message":"+1","commit_id":"0b4b56efa9a8468cd975fd1dd70a50dfe70cdeb0"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"25059193c40b356f154467b174326a355c1d6fac","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        expected \u003d (method, url)"},{"line_number":30,"context_line":"        called \u003d self.callstack[pos][0:2]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        assert self.callstack, \\"},{"line_number":33,"context_line":"            \"Expected %s %s but no calls were made.\" % expected"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        assert expected \u003d\u003d called, \u0027Expected %s %s; got %s %s\u0027 % \\"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9F0%3D","line":32,"in_reply_to":"AAAAM3%2F%2FAHU%3D","updated":"2013-02-13 11:52:34.000000000","message":"Oh sorry..\nDone","commit_id":"0b4b56efa9a8468cd975fd1dd70a50dfe70cdeb0"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"fe45b8b57e0834e5427196b52f9cde39162acb5b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"            \"Expected %s %s but no calls were made.\" % expected"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        assert expected \u003d\u003d called, \u0027Expected %s %s; got %s %s\u0027 % \\"},{"line_number":36,"context_line":"            (expected + called)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        if body is not None:"},{"line_number":39,"context_line":"            assert self.callstack[pos][2] \u003d\u003d body"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FAHM%3D","line":36,"updated":"2013-02-12 01:07:18.000000000","message":"\"Long lines should be wrapped in parentheses\"","commit_id":"0b4b56efa9a8468cd975fd1dd70a50dfe70cdeb0"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"25059193c40b356f154467b174326a355c1d6fac","unresolved":false,"context_lines":[{"line_number":33,"context_line":"            \"Expected %s %s but no calls were made.\" % expected"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        assert expected \u003d\u003d called, \u0027Expected %s %s; got %s %s\u0027 % \\"},{"line_number":36,"context_line":"            (expected + called)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        if body is not None:"},{"line_number":39,"context_line":"            assert self.callstack[pos][2] \u003d\u003d body"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2B9Fw%3D","line":36,"in_reply_to":"AAAAM3%2F%2FAHM%3D","updated":"2013-02-13 11:52:34.000000000","message":"Done","commit_id":"0b4b56efa9a8468cd975fd1dd70a50dfe70cdeb0"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"bc7df3693cf36488ed7a715aec9d3bd2ff2e79e8","unresolved":false,"context_lines":[{"line_number":6,"context_line":"places where actual behavior differs from the spec."},{"line_number":7,"context_line":"\"\"\""},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"from keystoneclient.service_catalog import ServiceCatalog"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"def assert_has_keys(dict, required\u003d[], optional\u003d[]):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B80Q%3D","line":9,"updated":"2013-02-13 15:22:01.000000000","message":"HACKING: import modules not attributes\n\n  from keystoneclient import service_catalog\n\n  service_catalog.ServiceCatalog(...)","commit_id":"48c96d4f915a82ab3025b72ebdfa51edc1e5af90"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"bc7df3693cf36488ed7a715aec9d3bd2ff2e79e8","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            except AssertionError:"},{"line_number":61,"context_line":"                print entry[2]"},{"line_number":62,"context_line":"                print \"!\u003d\""},{"line_number":63,"context_line":"                print body"},{"line_number":64,"context_line":"                raise"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        self.callstack \u003d []"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B80E%3D","line":63,"updated":"2013-02-13 15:22:01.000000000","message":"remove the print statements or, preferrably, write this as:\n\n  if entry[2] !\u003d body:\n    raise AssertionError(\u0027%s !\u003d %s\u0027 % (...))","commit_id":"48c96d4f915a82ab3025b72ebdfa51edc1e5af90"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"bc7df3693cf36488ed7a715aec9d3bd2ff2e79e8","unresolved":false,"context_lines":[{"line_number":109,"context_line":"            }"},{"line_number":110,"context_line":"            ],"},{"line_number":111,"context_line":"                \"name\": \"joeuser\""},{"line_number":112,"context_line":"            }"},{"line_number":113,"context_line":"        }"},{"line_number":114,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8z4%3D","line":112,"updated":"2013-02-13 15:22:01.000000000","message":"clean up the indentation in this dict, it\u0027s not self-consistent at all","commit_id":"48c96d4f915a82ab3025b72ebdfa51edc1e5af90"}],"tests/test_shell.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"f79070a0685b6ab4c5988ab954bd6c474a2e9942","unresolved":false,"context_lines":[{"line_number":1,"context_line":"import argparse"},{"line_number":2,"context_line":"import json"},{"line_number":3,"context_line":"import mock"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"import os"},{"line_number":6,"context_line":"import fixtures"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FJXw%3D","line":3,"updated":"2013-02-05 17:38:40.000000000","message":"import os, sys and StringIO go up here","commit_id":"19195de1d9c446a4c9ecfe93777ff9ff9f93372b"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"a4b02fe75af72d1b98b1b2b4948a31c1a01c62a2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"import argparse"},{"line_number":2,"context_line":"import json"},{"line_number":3,"context_line":"import mock"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"import os"},{"line_number":6,"context_line":"import fixtures"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FH%2Bc%3D","line":3,"in_reply_to":"AAAAM3%2F%2FJXw%3D","updated":"2013-02-09 00:54:44.000000000","message":"Done","commit_id":"19195de1d9c446a4c9ecfe93777ff9ff9f93372b"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"f79070a0685b6ab4c5988ab954bd6c474a2e9942","unresolved":false,"context_lines":[{"line_number":6,"context_line":"import fixtures"},{"line_number":7,"context_line":"import requests"},{"line_number":8,"context_line":"import testtools"},{"line_number":9,"context_line":"from testtools import matchers"},{"line_number":10,"context_line":"import cStringIO"},{"line_number":11,"context_line":"import sys"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FJX0%3D","line":9,"updated":"2013-02-05 17:38:40.000000000","message":"(HACKING) separate stdlib packages from vendor packages, from internal packages; also use human alphabetical order","commit_id":"19195de1d9c446a4c9ecfe93777ff9ff9f93372b"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"a4b02fe75af72d1b98b1b2b4948a31c1a01c62a2","unresolved":false,"context_lines":[{"line_number":6,"context_line":"import fixtures"},{"line_number":7,"context_line":"import requests"},{"line_number":8,"context_line":"import testtools"},{"line_number":9,"context_line":"from testtools import matchers"},{"line_number":10,"context_line":"import cStringIO"},{"line_number":11,"context_line":"import sys"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FH%2BY%3D","line":9,"in_reply_to":"AAAAM3%2F%2FJX0%3D","updated":"2013-02-09 00:54:44.000000000","message":"Done","commit_id":"19195de1d9c446a4c9ecfe93777ff9ff9f93372b"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"e1f982e12cc9666f5343181e2ae8097561a1d97a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"import cStringIO"},{"line_number":3,"context_line":"import fixtures"},{"line_number":4,"context_line":"import json"},{"line_number":5,"context_line":"import mock"},{"line_number":6,"context_line":"import os"},{"line_number":7,"context_line":"import requests"},{"line_number":8,"context_line":"import sys"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FH68%3D","line":5,"updated":"2013-02-06 14:35:06.000000000","message":"fixtures and mock belong in the second group of imports (mock was in the wrong group before your change)\n\nsys belongs in the first group","commit_id":"1376eba1212de41f6a99a97554e880db6e2850b4"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"d22e220983e9aa0942c54ac72b495e41162ee57b","unresolved":false,"context_lines":[{"line_number":2,"context_line":"import cStringIO"},{"line_number":3,"context_line":"import fixtures"},{"line_number":4,"context_line":"import json"},{"line_number":5,"context_line":"import mock"},{"line_number":6,"context_line":"import os"},{"line_number":7,"context_line":"import requests"},{"line_number":8,"context_line":"import sys"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FH1c%3D","line":5,"in_reply_to":"AAAAM3%2F%2FH68%3D","updated":"2013-02-09 00:54:16.000000000","message":"Done","commit_id":"1376eba1212de41f6a99a97554e880db6e2850b4"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"bc7df3693cf36488ed7a715aec9d3bd2ff2e79e8","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        return out"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def test_help_unknown_command(self):"},{"line_number":80,"context_line":"        self.assertRaises(exceptions.CommandError, shell, \u0027help foofoo\u0027)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def test_help_no_args(self):"},{"line_number":83,"context_line":"        do_tenant_mock \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8z0%3D","line":80,"updated":"2013-02-13 15:22:01.000000000","message":"generally prefer using uuid.uuid4().hex instead of garbage text to fully illustrate that arbitrary values are in fact arbitrary -- it\u0027s not clear if \u0027foofoo\u0027 is supposed to match something somewhere else","commit_id":"48c96d4f915a82ab3025b72ebdfa51edc1e5af90"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"bc7df3693cf36488ed7a715aec9d3bd2ff2e79e8","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        with testtools.ExpectedException("},{"line_number":109,"context_line":"            exceptions.CommandError,"},{"line_number":110,"context_line":"            \u0027Expecting a username provided via either\u0027):"},{"line_number":111,"context_line":"            self.shell(\u0027--os-password\u003dqwe --os-auth-url\u003dasdasd user-list\u0027)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def test_auth_username_password_no_authurl(self):"},{"line_number":114,"context_line":"        with testtools.ExpectedException("}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8zw%3D","line":111,"updated":"2013-02-13 15:22:01.000000000","message":"same here","commit_id":"48c96d4f915a82ab3025b72ebdfa51edc1e5af90"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"bc7df3693cf36488ed7a715aec9d3bd2ff2e79e8","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        with testtools.ExpectedException("},{"line_number":115,"context_line":"            exceptions.CommandError,"},{"line_number":116,"context_line":"            \u0027Expecting an auth URL via either\u0027):"},{"line_number":117,"context_line":"            self.shell(\u0027--os-password\u003dqwe --os-username\u003dasdasd user-list\u0027)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def test_token_no_endpoint(self):"},{"line_number":120,"context_line":"        with testtools.ExpectedException("}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8zs%3D","line":117,"updated":"2013-02-13 15:22:01.000000000","message":"etc","commit_id":"48c96d4f915a82ab3025b72ebdfa51edc1e5af90"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"bc7df3693cf36488ed7a715aec9d3bd2ff2e79e8","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        with testtools.ExpectedException("},{"line_number":121,"context_line":"            exceptions.CommandError,"},{"line_number":122,"context_line":"            \u0027Expecting an endpoint provided\u0027):"},{"line_number":123,"context_line":"            self.shell(\u0027--token\u003drrr user-list\u0027)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def test_endpoint_no_token(self):"},{"line_number":126,"context_line":"        with testtools.ExpectedException("}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8zo%3D","line":123,"updated":"2013-02-13 15:22:01.000000000","message":"etc","commit_id":"48c96d4f915a82ab3025b72ebdfa51edc1e5af90"}],"tests/v2_0/fakes.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"f79070a0685b6ab4c5988ab954bd6c474a2e9942","unresolved":false,"context_lines":[{"line_number":284,"context_line":"                \"description\": \"desc\","},{"line_number":285,"context_line":"                \"name\": \"new-tenant1\","},{"line_number":286,"context_line":"                \"id\": \"2\"}}"},{"line_number":287,"context_line":"        return (200, body)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    def get_tenants(self, **kw):"},{"line_number":290,"context_line":"        body \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FJWs%3D","line":287,"updated":"2013-02-05 17:38:40.000000000","message":"post_tenants vs post_tenants_2? -- both use id\u003d2, with different names -- can you eliminate one or differentiate them more?","commit_id":"19195de1d9c446a4c9ecfe93777ff9ff9f93372b"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"a4b02fe75af72d1b98b1b2b4948a31c1a01c62a2","unresolved":false,"context_lines":[{"line_number":284,"context_line":"                \"description\": \"desc\","},{"line_number":285,"context_line":"                \"name\": \"new-tenant1\","},{"line_number":286,"context_line":"                \"id\": \"2\"}}"},{"line_number":287,"context_line":"        return (200, body)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    def get_tenants(self, **kw):"},{"line_number":290,"context_line":"        body \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FH%2BU%3D","line":287,"in_reply_to":"AAAAM3%2F%2FJWs%3D","updated":"2013-02-09 00:54:44.000000000","message":"Done","commit_id":"19195de1d9c446a4c9ecfe93777ff9ff9f93372b"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"f79070a0685b6ab4c5988ab954bd6c474a2e9942","unresolved":false,"context_lines":[{"line_number":326,"context_line":"                \"description\": None,"},{"line_number":327,"context_line":"                \"name\": \"tenant\","},{"line_number":328,"context_line":"                \"id\": \"1\"}}"},{"line_number":329,"context_line":"        return (200, body)"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"    def delete_tenants_2(self, **kw):"},{"line_number":332,"context_line":"        body \u003d {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FJWo%3D","line":329,"updated":"2013-02-05 17:38:40.000000000","message":"same as above","commit_id":"19195de1d9c446a4c9ecfe93777ff9ff9f93372b"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"e1f982e12cc9666f5343181e2ae8097561a1d97a","unresolved":false,"context_lines":[{"line_number":57,"context_line":"#        if hasattr(status, \u0027items\u0027):"},{"line_number":58,"context_line":"#            return httplib2.Response(status), body"},{"line_number":59,"context_line":"#        else:"},{"line_number":60,"context_line":"#            return httplib2.Response({\"status\": status}), body"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        if not hasattr(self, callback):"},{"line_number":63,"context_line":"            raise AssertionError(\u0027Called unknown API method: %s %s, \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FH8E%3D","line":60,"updated":"2013-02-06 14:35:06.000000000","message":"can you remove this instead of committing it commented-out?","commit_id":"1376eba1212de41f6a99a97554e880db6e2850b4"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"d22e220983e9aa0942c54ac72b495e41162ee57b","unresolved":false,"context_lines":[{"line_number":57,"context_line":"#        if hasattr(status, \u0027items\u0027):"},{"line_number":58,"context_line":"#            return httplib2.Response(status), body"},{"line_number":59,"context_line":"#        else:"},{"line_number":60,"context_line":"#            return httplib2.Response({\"status\": status}), body"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        if not hasattr(self, callback):"},{"line_number":63,"context_line":"            raise AssertionError(\u0027Called unknown API method: %s %s, \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FHcM%3D","line":60,"in_reply_to":"AAAAM3%2F%2FH8E%3D","updated":"2013-02-09 00:54:16.000000000","message":"Done","commit_id":"1376eba1212de41f6a99a97554e880db6e2850b4"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"d22e220983e9aa0942c54ac72b495e41162ee57b","unresolved":false,"context_lines":[{"line_number":57,"context_line":"#        if hasattr(status, \u0027items\u0027):"},{"line_number":58,"context_line":"#            return httplib2.Response(status), body"},{"line_number":59,"context_line":"#        else:"},{"line_number":60,"context_line":"#            return httplib2.Response({\"status\": status}), body"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        if not hasattr(self, callback):"},{"line_number":63,"context_line":"            raise AssertionError(\u0027Called unknown API method: %s %s, \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FHgo%3D","line":60,"in_reply_to":"AAAAM3%2F%2FH8E%3D","updated":"2013-02-09 00:54:16.000000000","message":"Done","commit_id":"1376eba1212de41f6a99a97554e880db6e2850b4"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"e1f982e12cc9666f5343181e2ae8097561a1d97a","unresolved":false,"context_lines":[{"line_number":422,"context_line":"            \"enabled\": \"true\","},{"line_number":423,"context_line":"            \"id\": \"1\","},{"line_number":424,"context_line":"            \"name\": \"new-user1\","},{"line_number":425,"context_line":"                    \"email\": \"user@email.com\"}"},{"line_number":426,"context_line":"        }"},{"line_number":427,"context_line":"        return (200, body)"},{"line_number":428,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FH6s%3D","line":425,"updated":"2013-02-06 14:35:06.000000000","message":"can you choose one style of indentation in this file and stick with it? the random indentation makes this really hard to follow","commit_id":"1376eba1212de41f6a99a97554e880db6e2850b4"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"d22e220983e9aa0942c54ac72b495e41162ee57b","unresolved":false,"context_lines":[{"line_number":422,"context_line":"            \"enabled\": \"true\","},{"line_number":423,"context_line":"            \"id\": \"1\","},{"line_number":424,"context_line":"            \"name\": \"new-user1\","},{"line_number":425,"context_line":"                    \"email\": \"user@email.com\"}"},{"line_number":426,"context_line":"        }"},{"line_number":427,"context_line":"        return (200, body)"},{"line_number":428,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FHcI%3D","line":425,"in_reply_to":"AAAAM3%2F%2FH6s%3D","updated":"2013-02-09 00:54:16.000000000","message":"Done","commit_id":"1376eba1212de41f6a99a97554e880db6e2850b4"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"bc7df3693cf36488ed7a715aec9d3bd2ff2e79e8","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                ],"},{"line_number":112,"context_line":"                    \"name\": \"joeuser\"}"},{"line_number":113,"context_line":"            }"},{"line_number":114,"context_line":"            }"},{"line_number":115,"context_line":"        ]"},{"line_number":116,"context_line":"        return (200, body)"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8zk%3D","line":114,"updated":"2013-02-13 15:22:01.000000000","message":"indentation is all over the place here as well, please make it self-consistent","commit_id":"48c96d4f915a82ab3025b72ebdfa51edc1e5af90"}],"tests/v2_0/test_shell.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"f79070a0685b6ab4c5988ab954bd6c474a2e9942","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ShellTests(utils.TestCase):"},{"line_number":22,"context_line":"    # Patch os.environ to avoid required auth info."},{"line_number":23,"context_line":"    def setUp(self):"},{"line_number":24,"context_line":"        \"\"\"Run before each test.\"\"\""},{"line_number":25,"context_line":"        super(ShellTests, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FJVU%3D","line":22,"updated":"2013-02-05 17:38:40.000000000","message":"can you add this to the docstring of setUp instead?","commit_id":"19195de1d9c446a4c9ecfe93777ff9ff9f93372b"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"a4b02fe75af72d1b98b1b2b4948a31c1a01c62a2","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class ShellTests(utils.TestCase):"},{"line_number":22,"context_line":"    # Patch os.environ to avoid required auth info."},{"line_number":23,"context_line":"    def setUp(self):"},{"line_number":24,"context_line":"        \"\"\"Run before each test.\"\"\""},{"line_number":25,"context_line":"        super(ShellTests, self).setUp()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FH%2BQ%3D","line":22,"in_reply_to":"AAAAM3%2F%2FJVU%3D","updated":"2013-02-09 00:54:44.000000000","message":"Done","commit_id":"19195de1d9c446a4c9ecfe93777ff9ff9f93372b"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"e1f982e12cc9666f5343181e2ae8097561a1d97a","unresolved":false,"context_lines":[{"line_number":23,"context_line":"class ShellTests(utils.TestCase):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def setUp(self):"},{"line_number":26,"context_line":"        # Patch os.environ to avoid required auth info."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"        super(ShellTests, self).setUp()"},{"line_number":29,"context_line":"        self.stubs \u003d stubout.StubOutForTesting()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FH7k%3D","line":26,"updated":"2013-02-06 14:35:06.000000000","message":"# one line comments won\u0027t get picked up as docstrings by __doc__ or help(); instead use multiline block comments, even for a one-liner:\n\n  \"\"\"Patch os.environ to avoid required auth info.\"\"\"","commit_id":"1376eba1212de41f6a99a97554e880db6e2850b4"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"d22e220983e9aa0942c54ac72b495e41162ee57b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"class ShellTests(utils.TestCase):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def setUp(self):"},{"line_number":26,"context_line":"        # Patch os.environ to avoid required auth info."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"        super(ShellTests, self).setUp()"},{"line_number":29,"context_line":"        self.stubs \u003d stubout.StubOutForTesting()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FHgg%3D","line":26,"in_reply_to":"AAAAM3%2F%2FH7k%3D","updated":"2013-02-09 00:54:16.000000000","message":"Done","commit_id":"1376eba1212de41f6a99a97554e880db6e2850b4"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"bc7df3693cf36488ed7a715aec9d3bd2ff2e79e8","unresolved":false,"context_lines":[{"line_number":245,"context_line":"    def test_ec2_credentials_delete(self):"},{"line_number":246,"context_line":"        self.run_command(\u0027ec2-credentials-delete --access 1 --user-id 1\u0027)"},{"line_number":247,"context_line":"        self.fake_client.assert_called_anytime("},{"line_number":248,"context_line":"            \u0027DELETE\u0027, \u0027/users/1/credentials/OS-EC2/1\u0027)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        self.run_command(\u0027ec2-credentials-delete --access 1\u0027)"},{"line_number":251,"context_line":"        self.fake_client.assert_called_anytime("}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAM3%2F%2B8zc%3D","line":248,"updated":"2013-02-13 15:22:01.000000000","message":"with both ID\u0027s as \"1\" you\u0027re not testing which input is going where -- vastly prefer using UUID\u0027s for that reason","commit_id":"48c96d4f915a82ab3025b72ebdfa51edc1e5af90"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3ee6faf90cfe7d08cb20aa28031c20c35cc1ca03","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        # no time to get instantatiated which is OK in this case, so"},{"line_number":58,"context_line":"        # we make sure the method is there before launching it."},{"line_number":59,"context_line":"        # if hasattr(self.shell, \u0027cs\u0027):"},{"line_number":60,"context_line":"        #    self.shell.cs.clear_callstack()"},{"line_number":61,"context_line":"        self.fake_client.clear_callstack()"},{"line_number":62,"context_line":"        super(ShellTests, self).tearDown()"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B6Hg%3D","line":60,"updated":"2013-02-14 19:48:17.000000000","message":"remove commented-out code. Also, is the rest of this comment relevant if the code is commented out?","commit_id":"376907e444f358c2661b0327249f79d717280c56"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"34824e1934a4f4ac8ac3bdf40dd8826a65bf3907","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        # no time to get instantatiated which is OK in this case, so"},{"line_number":58,"context_line":"        # we make sure the method is there before launching it."},{"line_number":59,"context_line":"        # if hasattr(self.shell, \u0027cs\u0027):"},{"line_number":60,"context_line":"        #    self.shell.cs.clear_callstack()"},{"line_number":61,"context_line":"        self.fake_client.clear_callstack()"},{"line_number":62,"context_line":"        super(ShellTests, self).tearDown()"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B45M%3D","line":60,"in_reply_to":"AAAAM3%2F%2B6Hg%3D","updated":"2013-02-15 14:36:20.000000000","message":"Done","commit_id":"376907e444f358c2661b0327249f79d717280c56"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3ee6faf90cfe7d08cb20aa28031c20c35cc1ca03","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            self.shell.main(cmd.split())"},{"line_number":69,"context_line":"        except SystemExit:"},{"line_number":70,"context_line":"            exc_type, exc_value, exc_traceback \u003d sys.exc_info()"},{"line_number":71,"context_line":"#            self.assertEqual(exc_value.code, 0)"},{"line_number":72,"context_line":"        finally:"},{"line_number":73,"context_line":"            out \u003d sys.stdout.getvalue()"},{"line_number":74,"context_line":"            sys.stdout.close()"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B6Ho%3D","line":71,"updated":"2013-02-14 19:48:17.000000000","message":"remove commented-out code.","commit_id":"376907e444f358c2661b0327249f79d717280c56"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"34824e1934a4f4ac8ac3bdf40dd8826a65bf3907","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            self.shell.main(cmd.split())"},{"line_number":69,"context_line":"        except SystemExit:"},{"line_number":70,"context_line":"            exc_type, exc_value, exc_traceback \u003d sys.exc_info()"},{"line_number":71,"context_line":"#            self.assertEqual(exc_value.code, 0)"},{"line_number":72,"context_line":"        finally:"},{"line_number":73,"context_line":"            out \u003d sys.stdout.getvalue()"},{"line_number":74,"context_line":"            sys.stdout.close()"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B45E%3D","line":71,"in_reply_to":"AAAAM3%2F%2B6Ho%3D","updated":"2013-02-15 14:36:20.000000000","message":"Done","commit_id":"376907e444f358c2661b0327249f79d717280c56"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3ee6faf90cfe7d08cb20aa28031c20c35cc1ca03","unresolved":false,"context_lines":[{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def test_endpoint_get(self):"},{"line_number":330,"context_line":"        self.run_command(\u0027endpoint-get --service object-store\u0027)"},{"line_number":331,"context_line":"        # self.fake_client.assert_called_anytime(\u0027GET\u0027, \u0027/endpoints/1\u0027)"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"    def test_endpoint_list(self):"},{"line_number":334,"context_line":"        self.run_command(\u0027endpoint-list\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B6HQ%3D","line":331,"updated":"2013-02-14 19:48:17.000000000","message":"Remove commented-out code... or should it not be commented out?","commit_id":"376907e444f358c2661b0327249f79d717280c56"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"34824e1934a4f4ac8ac3bdf40dd8826a65bf3907","unresolved":false,"context_lines":[{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def test_endpoint_get(self):"},{"line_number":330,"context_line":"        self.run_command(\u0027endpoint-get --service object-store\u0027)"},{"line_number":331,"context_line":"        # self.fake_client.assert_called_anytime(\u0027GET\u0027, \u0027/endpoints/1\u0027)"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"    def test_endpoint_list(self):"},{"line_number":334,"context_line":"        self.run_command(\u0027endpoint-list\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B45A%3D","line":331,"in_reply_to":"AAAAM3%2F%2B6HQ%3D","updated":"2013-02-15 14:36:20.000000000","message":"Done","commit_id":"376907e444f358c2661b0327249f79d717280c56"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3ee6faf90cfe7d08cb20aa28031c20c35cc1ca03","unresolved":false,"context_lines":[{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    def test_endpoint_delete(self):"},{"line_number":338,"context_line":"        self.run_command(\u0027endpoint-delete 1\u0027)"},{"line_number":339,"context_line":"        # self.fake_client.assert_called_anytime(\u0027DELETE\u0027, \u0027/endpoints/1\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B6HI%3D","line":339,"updated":"2013-02-14 19:48:17.000000000","message":"Remove commented-out code... or should it not be commented out?","commit_id":"376907e444f358c2661b0327249f79d717280c56"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"34824e1934a4f4ac8ac3bdf40dd8826a65bf3907","unresolved":false,"context_lines":[{"line_number":336,"context_line":""},{"line_number":337,"context_line":"    def test_endpoint_delete(self):"},{"line_number":338,"context_line":"        self.run_command(\u0027endpoint-delete 1\u0027)"},{"line_number":339,"context_line":"        # self.fake_client.assert_called_anytime(\u0027DELETE\u0027, \u0027/endpoints/1\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAM3%2F%2B448%3D","line":339,"in_reply_to":"AAAAM3%2F%2B6HI%3D","updated":"2013-02-15 14:36:20.000000000","message":"Done","commit_id":"376907e444f358c2661b0327249f79d717280c56"}],"tools/pip-requires":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"f79070a0685b6ab4c5988ab954bd6c474a2e9942","unresolved":false,"context_lines":[{"line_number":3,"context_line":"prettytable"},{"line_number":4,"context_line":"requests\u003e\u003d0.8.8,\u003c1.0"},{"line_number":5,"context_line":"simplejson"},{"line_number":6,"context_line":"httplib2"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAM3%2F%2FJVQ%3D","line":6,"updated":"2013-02-05 17:38:40.000000000","message":"we just moved from httplib2 to requests, but i dont actually see any uses of httplib2 here anyway?","commit_id":"19195de1d9c446a4c9ecfe93777ff9ff9f93372b"},{"author":{"_account_id":6724,"name":"Vasyl Khomenko","email":"vasiliyk@yahoo-inc.com","username":"vkhomenko"},"change_message_id":"a4b02fe75af72d1b98b1b2b4948a31c1a01c62a2","unresolved":false,"context_lines":[{"line_number":3,"context_line":"prettytable"},{"line_number":4,"context_line":"requests\u003e\u003d0.8.8,\u003c1.0"},{"line_number":5,"context_line":"simplejson"},{"line_number":6,"context_line":"httplib2"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAM3%2F%2FH%2BE%3D","line":6,"in_reply_to":"AAAAM3%2F%2FJVQ%3D","updated":"2013-02-09 00:54:44.000000000","message":"Done","commit_id":"19195de1d9c446a4c9ecfe93777ff9ff9f93372b"}]}
