)]}'
{"test/unit/common/test_constraints.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"b1fbb69b9cf95139966579cae5c630a9bcb20f11","unresolved":false,"context_lines":[{"line_number":341,"context_line":"                   \u0027Content-Type\u0027: \u0027text/plain\u0027,"},{"line_number":342,"context_line":"                   \u0027X-Delete-After\u0027: \u002742\u0027}"},{"line_number":343,"context_line":"        req \u003d Request.blank(\u0027/\u0027, headers\u003dheaders)"},{"line_number":344,"context_line":"        with mock.patch(\u0027time.time\u0027, lambda: t):"},{"line_number":345,"context_line":"            constraints.check_delete_headers(req)"},{"line_number":346,"context_line":"        self.assertTrue(\u0027X-Delete-At\u0027 in req.headers)"},{"line_number":347,"context_line":"        expected \u003d str(int(t) + 42)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_ffebe4ad","line":344,"updated":"2014-09-08 19:32:53.000000000","message":"good","commit_id":"4dc718e8c3bd2a8bbe1f2d7a98ad03421a70217f"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"b1fbb69b9cf95139966579cae5c630a9bcb20f11","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        expected \u003d str(int(t) + 42)"},{"line_number":348,"context_line":"        self.assertEqual(req.headers[\u0027X-Delete-At\u0027], expected)"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        # check delete-after takes precedence over delete-at"},{"line_number":351,"context_line":"        headers \u003d {\u0027Content-Length\u0027: \u00270\u0027,"},{"line_number":352,"context_line":"                   \u0027Content-Type\u0027: \u0027text/plain\u0027,"},{"line_number":353,"context_line":"                   \u0027X-Delete-After\u0027: \u002742\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_1ff7c88d","line":350,"updated":"2014-09-08 19:32:53.000000000","message":"just curious; is this just asserting the current behavior or do we think this is actually what makes sense?  Not that we\u0027d change it... just curious your opinion, or if it\u0027s what you expected?","commit_id":"4dc718e8c3bd2a8bbe1f2d7a98ad03421a70217f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"beac23bb85e7c0a7a52e912d8fcb75dec3f40433","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        expected \u003d str(int(t) + 42)"},{"line_number":348,"context_line":"        self.assertEqual(req.headers[\u0027X-Delete-At\u0027], expected)"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        # check delete-after takes precedence over delete-at"},{"line_number":351,"context_line":"        headers \u003d {\u0027Content-Length\u0027: \u00270\u0027,"},{"line_number":352,"context_line":"                   \u0027Content-Type\u0027: \u0027text/plain\u0027,"},{"line_number":353,"context_line":"                   \u0027X-Delete-After\u0027: \u002742\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_88b8ce2b","line":350,"in_reply_to":"fa98f980_1ff7c88d","updated":"2014-09-09 08:16:02.000000000","message":"motivation was simply to check current behavior, it would be an easy behavior to accidentally be changed during refactoring. As for what makes sense, I have no strong opinion, but the API docs describe x-delete-after being converted to x-delete-at so one reasonable inference from that is that x-delete-at might be \u0027overwritten\u0027 by x-delete-after.\n\nWhat\u0027s certain is that you never end up adding x-delete-after to x-delete-at.","commit_id":"4dc718e8c3bd2a8bbe1f2d7a98ad03421a70217f"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"b1fbb69b9cf95139966579cae5c630a9bcb20f11","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        with mock.patch(\u0027time.time\u0027, lambda: t):"},{"line_number":367,"context_line":"            constraints.check_delete_headers(req)"},{"line_number":368,"context_line":"        self.assertTrue(\u0027X-Delete-At\u0027 in req.headers)"},{"line_number":369,"context_line":"        self.assertEqual(req.headers[\u0027X-Delete-At\u0027], expected)"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    def test_check_mount(self):"},{"line_number":372,"context_line":"        self.assertFalse(constraints.check_mount(\u0027\u0027, \u0027\u0027))"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_3f3bac39","line":369,"updated":"2014-09-08 19:32:53.000000000","message":"is this the same check twice?  expected doesn\u0027t seem to be changing...","commit_id":"4dc718e8c3bd2a8bbe1f2d7a98ad03421a70217f"},{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"2f4dccb1fc42963fd1bf3fdf8f5f90fa3413fa5b","unresolved":false,"context_lines":[{"line_number":367,"context_line":"            constraints.check_delete_headers(req)"},{"line_number":368,"context_line":"        self.assertTrue(\u0027X-Delete-At\u0027 in req.headers)"},{"line_number":369,"context_line":"        self.assertEqual(req.headers[\u0027X-Delete-At\u0027], expected)"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    def test_check_mount(self):"},{"line_number":372,"context_line":"        self.assertFalse(constraints.check_mount(\u0027\u0027, \u0027\u0027))"},{"line_number":373,"context_line":"        with mock.patch(\"swift.common.utils.ismount\", MockTrue()):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_da6d4ece","line":370,"updated":"2014-09-08 19:41:18.000000000","message":"I think it\u0027s extra proof that it\u0027s always delete-after, not max(delete-after, delete-at). The prior test has delete-after \u003e delete-at (42 \u003e 40), but this one has delete-after \u003c delete-at (42 \u003c 44).","commit_id":"4dc718e8c3bd2a8bbe1f2d7a98ad03421a70217f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"beac23bb85e7c0a7a52e912d8fcb75dec3f40433","unresolved":false,"context_lines":[{"line_number":367,"context_line":"            constraints.check_delete_headers(req)"},{"line_number":368,"context_line":"        self.assertTrue(\u0027X-Delete-At\u0027 in req.headers)"},{"line_number":369,"context_line":"        self.assertEqual(req.headers[\u0027X-Delete-At\u0027], expected)"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    def test_check_mount(self):"},{"line_number":372,"context_line":"        self.assertFalse(constraints.check_mount(\u0027\u0027, \u0027\u0027))"},{"line_number":373,"context_line":"        with mock.patch(\"swift.common.utils.ismount\", MockTrue()):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_c8e81619","line":370,"in_reply_to":"fa98f980_da6d4ece","updated":"2014-09-09 08:16:02.000000000","message":"what Sam said, apologies for lack of helpful comment","commit_id":"4dc718e8c3bd2a8bbe1f2d7a98ad03421a70217f"}]}
