)]}'
{"openstack/message/v1/claim.py":[{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"f3d2e074825ee674f772500276e8c76dee88f98a","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            messages.append(message.Message.new("},{"line_number":67,"context_line":"                client\u003dclaim.client, queue\u003dclaim.queue, **message_attrs))"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        return messages"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"class ClaimEncoder(json.JSONEncoder):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5afe65bd_a0ff2866","line":69,"updated":"2015-06-03 16:23:15.000000000","message":"In following with our use of generators elsewhere, could this yield the messages in a similar fashion to how list calls do it?","commit_id":"7f637a5482edfb911a2344de0721d98a8d06c12b"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"22a31cc9fc8cff4abdbd308195729cff5b42af96","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            messages.append(message.Message.new("},{"line_number":67,"context_line":"                client\u003dclaim.client, queue\u003dclaim.queue, **message_attrs))"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        return messages"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"class ClaimEncoder(json.JSONEncoder):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5afe65bd_c8c0fd2c","line":69,"in_reply_to":"5afe65bd_a0ff2866","updated":"2015-06-03 22:14:51.000000000","message":"Done","commit_id":"7f637a5482edfb911a2344de0721d98a8d06c12b"}],"openstack/message/v1/message.py":[{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"f3d2e074825ee674f772500276e8c76dee88f98a","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @classmethod"},{"line_number":60,"context_line":"    def create_messages(cls, session, messages):"},{"line_number":61,"context_line":"        queue \u003d messages[0].queue"},{"line_number":62,"context_line":"        client \u003d messages[0].client"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        for message in messages:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5afe65bd_cb080594","line":61,"updated":"2015-06-03 16:23:15.000000000","message":"If you\u0027re given an empty list, this\u0027ll blow up. Should probably catch an IndexError and reraise as a ValueError that you passed in empty messages.","commit_id":"7f637a5482edfb911a2344de0721d98a8d06c12b"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"22a31cc9fc8cff4abdbd308195729cff5b42af96","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    @classmethod"},{"line_number":60,"context_line":"    def create_messages(cls, session, messages):"},{"line_number":61,"context_line":"        queue \u003d messages[0].queue"},{"line_number":62,"context_line":"        client \u003d messages[0].client"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        for message in messages:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5afe65bd_f3d96e84","line":61,"in_reply_to":"5afe65bd_cb080594","updated":"2015-06-03 22:14:51.000000000","message":"Done","commit_id":"7f637a5482edfb911a2344de0721d98a8d06c12b"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"f3d2e074825ee674f772500276e8c76dee88f98a","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        queue \u003d messages[0].queue"},{"line_number":62,"context_line":"        client \u003d messages[0].client"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        for message in messages:"},{"line_number":65,"context_line":"            if message.queue !\u003d queue:"},{"line_number":66,"context_line":"                raise ValueError(\u0027All queues in messages must be equal\u0027)"},{"line_number":67,"context_line":"            if message.client !\u003d client:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5afe65bd_46108c4e","line":64,"updated":"2015-06-03 16:23:15.000000000","message":"Another way you could do this whole loop that would also cover the above issue would be something like...\n\nfor index, message in enumerate(messages, -1):\n    if message.queue !\u003d messages[id].queue:\n        raise ValueError(\u0027All queues in messages must be equal\u0027)\n    if message.client !\u003d messages[id].client:\n        raise ValueError(\u0027All clients in messages must be equal\u0027)\n\nInstead of manually peeking at the first message, iterate through and compare the current to the previous. However, you\u0027ll still have to handle empty messages at some point in here, so perhaps you start the method off with a len(messages) check and then go into this?","commit_id":"7f637a5482edfb911a2344de0721d98a8d06c12b"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"22a31cc9fc8cff4abdbd308195729cff5b42af96","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        queue \u003d messages[0].queue"},{"line_number":62,"context_line":"        client \u003d messages[0].client"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        for message in messages:"},{"line_number":65,"context_line":"            if message.queue !\u003d queue:"},{"line_number":66,"context_line":"                raise ValueError(\u0027All queues in messages must be equal\u0027)"},{"line_number":67,"context_line":"            if message.client !\u003d client:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5afe65bd_33802646","line":64,"in_reply_to":"5afe65bd_46108c4e","updated":"2015-06-03 22:14:51.000000000","message":"Done","commit_id":"7f637a5482edfb911a2344de0721d98a8d06c12b"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"f3d2e074825ee674f772500276e8c76dee88f98a","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        return messages_deepcopy"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @classmethod"},{"line_number":85,"context_line":"    def _strip_version(cls, href):"},{"line_number":86,"context_line":"        path \u003d parse.urlparse(href).path"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        if path.startswith(\u0027/v\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5afe65bd_c678fc91","line":85,"updated":"2015-06-03 16:23:15.000000000","message":"This doesn\u0027t seem to match the documentation. Does delete truly not have a version on it while everything else does?","commit_id":"7f637a5482edfb911a2344de0721d98a8d06c12b"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"22a31cc9fc8cff4abdbd308195729cff5b42af96","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        return messages_deepcopy"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    @classmethod"},{"line_number":85,"context_line":"    def _strip_version(cls, href):"},{"line_number":86,"context_line":"        path \u003d parse.urlparse(href).path"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        if path.startswith(\u0027/v\u0027):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5afe65bd_53f4c2f0","line":85,"in_reply_to":"5afe65bd_c678fc91","updated":"2015-06-03 22:14:51.000000000","message":"So the href returned by zaqar has a version on it e.g. \n\n    /v1/queues/test_queue\n\nbut the sdk appends a v1 to the endpoint. Ultimately you wind up with \n\n    http://api.com/v1/v1/queues/test_queue\n\nwhich is why I needed to strip the /v1","commit_id":"7f637a5482edfb911a2344de0721d98a8d06c12b"}],"openstack/tests/unit/message/v1/test_claim.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"11055a3c71493576d56cff2879fcc942977bbae1","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    def test_make_it(self):"},{"line_number":41,"context_line":"        sot \u003d claim.Claim(FAKE)"},{"line_number":42,"context_line":"        self.assertEqual(FAKE[\u0027ttl\u0027], sot.ttl)"},{"line_number":43,"context_line":"        self.assertEqual(FAKE[\u0027grace\u0027], sot.grace)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def test_create(self):"},{"line_number":46,"context_line":"        sess \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5afe65bd_1df8757a","line":43,"updated":"2015-06-04 16:19:28.000000000","message":"Could in theory add tests for the other non-property resources, but not important","commit_id":"04ce05d416c7dbb1d5f1192f5e14519bfc79d023"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"26b991edf3a20022694708491afc26343e69d555","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    def test_make_it(self):"},{"line_number":41,"context_line":"        sot \u003d claim.Claim(FAKE)"},{"line_number":42,"context_line":"        self.assertEqual(FAKE[\u0027ttl\u0027], sot.ttl)"},{"line_number":43,"context_line":"        self.assertEqual(FAKE[\u0027grace\u0027], sot.grace)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def test_create(self):"},{"line_number":46,"context_line":"        sess \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5afe65bd_4f686eb9","line":43,"in_reply_to":"5afe65bd_1df8757a","updated":"2015-06-04 17:09:30.000000000","message":"Done","commit_id":"04ce05d416c7dbb1d5f1192f5e14519bfc79d023"}],"openstack/tests/unit/message/v1/test_message.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"11055a3c71493576d56cff2879fcc942977bbae1","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    \u0027body\u0027: {\u0027key\u0027: \u0027value\u0027}"},{"line_number":24,"context_line":"}"},{"line_number":25,"context_line":"FAKE_HREF \u003d {"},{"line_number":26,"context_line":"    \u0027href\u0027: \u0027/queues/test_queue/messages/1234\u0027,"},{"line_number":27,"context_line":"    \u0027ttl\u0027: 300,"},{"line_number":28,"context_line":"    \u0027body\u0027: {\u0027key\u0027: \u0027value\u0027}"},{"line_number":29,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":2,"id":"5afe65bd_1d02b53d","line":26,"updated":"2015-06-04 16:19:28.000000000","message":"Am I missing something or would adding a version here test that delete can properly handle that href?","commit_id":"04ce05d416c7dbb1d5f1192f5e14519bfc79d023"},{"author":{"_account_id":1112,"name":"Everett Toews","email":"everett.toews@rackspace.com","username":"everett-toews"},"change_message_id":"26b991edf3a20022694708491afc26343e69d555","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    \u0027body\u0027: {\u0027key\u0027: \u0027value\u0027}"},{"line_number":24,"context_line":"}"},{"line_number":25,"context_line":"FAKE_HREF \u003d {"},{"line_number":26,"context_line":"    \u0027href\u0027: \u0027/queues/test_queue/messages/1234\u0027,"},{"line_number":27,"context_line":"    \u0027ttl\u0027: 300,"},{"line_number":28,"context_line":"    \u0027body\u0027: {\u0027key\u0027: \u0027value\u0027}"},{"line_number":29,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":2,"id":"5afe65bd_4f7cee1e","line":26,"in_reply_to":"5afe65bd_1d02b53d","updated":"2015-06-04 17:09:30.000000000","message":"Nope. Good catch.\n\nDone.","commit_id":"04ce05d416c7dbb1d5f1192f5e14519bfc79d023"}]}
