)]}'
{"nova/api/openstack/api_version_request.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"f81b681742096d244c6327d05aa3060432ad9bf3","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        return cmp((self.ver_major, self.ver_minor),"},{"line_number":105,"context_line":"                   (other.ver_major, other.ver_minor))"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def __lt__(self, other):"},{"line_number":108,"context_line":"        return ((self.ver_major, self.ver_minor) \u003c"},{"line_number":109,"context_line":"                (other.ver_major, other.ver_minor))"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3a50d1a3_312e7643","line":107,"updated":"2015-07-29 13:46:35.000000000","message":"Hum, you may also implement __eq__ and use @functools.total_ordering decorator on the class to avoid surprises when a different operator is used.","commit_id":"ed0196ebb6e09b0baac783981da480849ee16f36"}],"nova/tests/unit/api/ec2/test_api.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"f81b681742096d244c6327d05aa3060432ad9bf3","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    \"\"\"a fake socket implementation for httplib.HTTPResponse, trivial.\"\"\""},{"line_number":48,"context_line":"    def __init__(self, response_string):"},{"line_number":49,"context_line":"        self.response_string \u003d response_string"},{"line_number":50,"context_line":"        self._buffer \u003d StringIO(response_string)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def makefile(self, _mode, _other):"},{"line_number":53,"context_line":"        \"\"\"Returns the socket\u0027s internal buffer.\"\"\""}],"source_content_type":"text/x-python","patch_set":19,"id":"3a50d1a3_f1a80e8e","line":50,"updated":"2015-07-29 13:46:35.000000000","message":"HTTP body is bytes, not Unicode. But you may change this later.","commit_id":"ed0196ebb6e09b0baac783981da480849ee16f36"}],"nova/tests/unit/api/openstack/compute/contrib/test_extended_ips.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"f81b681742096d244c6327d05aa3060432ad9bf3","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            ALL_IPS.append(sanitized)"},{"line_number":85,"context_line":"            for floating in fixed[\u0027floating_ips\u0027]:"},{"line_number":86,"context_line":"                ALL_IPS.append(floating)"},{"line_number":87,"context_line":"ALL_IPS.sort(key\u003dlambda x: str(x))"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"def fake_compute_get(*args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a50d1a3_91a66aa9","line":87,"updated":"2015-07-29 13:46:35.000000000","message":"You can simply write \"key\u003dstr\" ;-)","commit_id":"ed0196ebb6e09b0baac783981da480849ee16f36"}],"nova/tests/unit/api/openstack/compute/contrib/test_hypervisors.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"f81b681742096d244c6327d05aa3060432ad9bf3","unresolved":false,"context_lines":[{"line_number":480,"context_line":""},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"class CellHypervisorsTestV21(HypervisorsTestV21):"},{"line_number":483,"context_line":"    cell_path \u003d \u0027cell1\u0027"},{"line_number":484,"context_line":"    TEST_HYPERS_OBJ \u003d [cells_utils.ComputeNodeProxy(obj, cell_path)"},{"line_number":485,"context_line":"                       for obj in TEST_HYPERS_OBJ]"},{"line_number":486,"context_line":"    TEST_SERVICES \u003d [cells_utils.ServiceProxy(obj, cell_path)"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a50d1a3_91ebcaa3","side":"PARENT","line":483,"updated":"2015-07-29 13:46:35.000000000","message":"This code doesn\u0027t work on Python 3?","commit_id":"5bb1933cc4f0bb70eba5ae3c3134f825a062bcc6"}],"nova/tests/unit/api/openstack/compute/test_limits.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"f81b681742096d244c6327d05aa3060432ad9bf3","unresolved":false,"context_lines":[{"line_number":726,"context_line":""},{"line_number":727,"context_line":"    def __init__(self, response_string):"},{"line_number":728,"context_line":"        \"\"\"Initialize new `FakeHttplibSocket`.\"\"\""},{"line_number":729,"context_line":"        self._buffer \u003d StringIO(response_string)"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":"    def makefile(self, _mode, _other):"},{"line_number":732,"context_line":"        \"\"\"Returns the socket\u0027s internal buffer.\"\"\""}],"source_content_type":"text/x-python","patch_set":19,"id":"3a50d1a3_711e3ebc","line":729,"updated":"2015-07-29 13:46:35.000000000","message":"Ditto: HTTP body type is bytes, not Unicode.","commit_id":"ed0196ebb6e09b0baac783981da480849ee16f36"}],"nova/tests/unit/virt/libvirt/test_guest.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"f81b681742096d244c6327d05aa3060432ad9bf3","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"CONF \u003d cfg.CONF"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"if sys.version_info \u003e (3,):"},{"line_number":39,"context_line":"    long \u003d int"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3a50d1a3_7cbcd505","line":38,"updated":"2015-07-29 13:46:35.000000000","message":"Please use \"if six.PY3\".","commit_id":"ed0196ebb6e09b0baac783981da480849ee16f36"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"f81b681742096d244c6327d05aa3060432ad9bf3","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        self.domain.resume.assert_called_once_with()"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def test_get_vcpus_info(self):"},{"line_number":138,"context_line":"        self.domain.vcpus.return_value \u003d ([(0, 1, long(10290000000), 2)],"},{"line_number":139,"context_line":"                                     [(True, True)])"},{"line_number":140,"context_line":"        vcpus \u003d list(self.guest.get_vcpus_info())"},{"line_number":141,"context_line":"        self.assertEqual(0, vcpus[0].id)"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a50d1a3_7c0135ae","line":138,"updated":"2015-07-29 13:46:35.000000000","message":"Does it work if you simply drop the L / long?","commit_id":"ed0196ebb6e09b0baac783981da480849ee16f36"}],"nova/virt/xenapi/client/session.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"f81b681742096d244c6327d05aa3060432ad9bf3","unresolved":false,"context_lines":[{"line_number":17,"context_line":"try:"},{"line_number":18,"context_line":"    import cPickle as pickle"},{"line_number":19,"context_line":"except ImportError:"},{"line_number":20,"context_line":"    import pickle"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import errno"},{"line_number":23,"context_line":"import socket"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a50d1a3_9c98c176","line":20,"updated":"2015-07-29 13:46:35.000000000","message":"You can use \"from six.moves import cPickle\"","commit_id":"ed0196ebb6e09b0baac783981da480849ee16f36"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"f81b681742096d244c6327d05aa3060432ad9bf3","unresolved":false,"context_lines":[{"line_number":33,"context_line":"try:"},{"line_number":34,"context_line":"    import xmlrpclib"},{"line_number":35,"context_line":"except ImportError:"},{"line_number":36,"context_line":"    import six.moves.xmlrpc_client as xmlrpclib"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"from nova import context"},{"line_number":39,"context_line":"from nova import exception"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a50d1a3_bcd01d20","line":36,"updated":"2015-07-29 13:46:35.000000000","message":"Why not always using six.moves?","commit_id":"ed0196ebb6e09b0baac783981da480849ee16f36"}],"plugins/xenserver/xenapi/etc/xapi.d/plugins/glance":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"f81b681742096d244c6327d05aa3060432ad9bf3","unresolved":false,"context_lines":[{"line_number":26,"context_line":"try:"},{"line_number":27,"context_line":"    import httplib"},{"line_number":28,"context_line":"except ImportError:"},{"line_number":29,"context_line":"    from six.moves import http_client as httplib"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"import md5"},{"line_number":32,"context_line":"import socket"}],"source_content_type":"application/octet-stream","patch_set":19,"id":"3a50d1a3_bc7edd16","line":29,"updated":"2015-07-29 13:46:35.000000000","message":"Why not always using six?","commit_id":"ed0196ebb6e09b0baac783981da480849ee16f36"}],"plugins/xenserver/xenapi/etc/xapi.d/plugins/utils.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"f81b681742096d244c6327d05aa3060432ad9bf3","unresolved":false,"context_lines":[{"line_number":20,"context_line":"try:"},{"line_number":21,"context_line":"    import cPickle as pickle"},{"line_number":22,"context_line":"except ImportError:"},{"line_number":23,"context_line":"    import pickle"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import errno"},{"line_number":26,"context_line":"import logging"}],"source_content_type":"text/x-python","patch_set":19,"id":"3a50d1a3_1c9a7162","line":23,"updated":"2015-07-29 13:46:35.000000000","message":"Ditto: \"from six.moves import cPickle\".","commit_id":"ed0196ebb6e09b0baac783981da480849ee16f36"}],"plugins/xenserver/xenapi/etc/xapi.d/plugins/xenhost":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"f81b681742096d244c6327d05aa3060432ad9bf3","unresolved":false,"context_lines":[{"line_number":42,"context_line":"try:"},{"line_number":43,"context_line":"    import xmlrpclib"},{"line_number":44,"context_line":"except ImportError:"},{"line_number":45,"context_line":"    import six.moves.xmlrpc_client as xmlrpclib"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"pluginlib.configure_logging(\"xenhost\")"}],"source_content_type":"application/octet-stream","patch_set":19,"id":"3a50d1a3_7cab7575","line":45,"updated":"2015-07-29 13:46:35.000000000","message":"Ditto","commit_id":"ed0196ebb6e09b0baac783981da480849ee16f36"}],"tox.ini":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"f81b681742096d244c6327d05aa3060432ad9bf3","unresolved":false,"context_lines":[{"line_number":36,"context_line":"commands \u003d"},{"line_number":37,"context_line":"  find . -type f -name \"*.pyc\" -delete"},{"line_number":38,"context_line":"  python -m subunit.run discover -t . ./nova/tests/ --list"},{"line_number":39,"context_line":"  python -m testtools.run \\"},{"line_number":40,"context_line":"    nova.tests.unit.compute.test_keypairs \\"},{"line_number":41,"context_line":"    nova.tests.unit.db.test_db_api \\"},{"line_number":42,"context_line":"    nova.tests.unit.scheduler.filters.test_affinity_filters \\"}],"source_content_type":"text/x-properties","patch_set":19,"id":"3a50d1a3_dcf5e982","line":39,"updated":"2015-07-29 13:46:35.000000000","message":"Would it be possible to run following tests using testr?\n\ntestr loads all tests, so it avoids your command to explicitly loads all tests, and testr is faster: it runs tests in parallel.","commit_id":"ed0196ebb6e09b0baac783981da480849ee16f36"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"833878acb42e4eb7183709397a513b6c9132af62","unresolved":false,"context_lines":[{"line_number":36,"context_line":"commands \u003d"},{"line_number":37,"context_line":"  find . -type f -name \"*.pyc\" -delete"},{"line_number":38,"context_line":"  python -m subunit.run discover -t . ./nova/tests/ --list"},{"line_number":39,"context_line":"  python -m testtools.run \\"},{"line_number":40,"context_line":"    nova.tests.unit.compute.test_keypairs \\"},{"line_number":41,"context_line":"    nova.tests.unit.db.test_db_api \\"},{"line_number":42,"context_line":"    nova.tests.unit.scheduler.filters.test_affinity_filters \\"}],"source_content_type":"text/x-properties","patch_set":19,"id":"1a4dcd0f_f0af7c7b","line":39,"in_reply_to":"3a50d1a3_dcf5e982","updated":"2015-08-03 18:53:59.000000000","message":"yes. If you put the test names below in a file and do testr run --load-list filename, then you\u0027ll be using testr.","commit_id":"ed0196ebb6e09b0baac783981da480849ee16f36"}]}
