)]}'
{"test/unit/obj/test_server.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"9cf41f2af2f4b13842289670b592e54bff2a15f7","unresolved":false,"context_lines":[{"line_number":1490,"context_line":"        self.assertEqual(POLICIES[0], calls_made[0][1])"},{"line_number":1491,"context_line":""},{"line_number":1492,"context_line":"    def test_lone_header_footer_override_preference(self):"},{"line_number":1493,"context_line":"        expectations \u003d ["},{"line_number":1494,"context_line":"            # headers, footers"},{"line_number":1495,"context_line":"            ({\u0027X-Backend-Container-Update-Override-Etag\u0027: \u0027update-etag\u0027}, {}),"},{"line_number":1496,"context_line":"            ({}, {\u0027X-Backend-Container-Update-Override-Etag\u0027: \u0027update-etag\u0027}),"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_dcc29b84","line":1493,"updated":"2016-07-26 12:52:27.000000000","message":"these aren\u0027t expectations, they are input conditions/scenarios. The expectations are constant for all inputs.","commit_id":"430a29471602adc3793584fef34a7990df59a990"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"9cf41f2af2f4b13842289670b592e54bff2a15f7","unresolved":false,"context_lines":[{"line_number":1499,"context_line":"            ({}, {\u0027X-Object-Sysmeta-Container-Update-Override-Etag\u0027:"},{"line_number":1500,"context_line":"                  \u0027update-etag\u0027}),"},{"line_number":1501,"context_line":"        ]"},{"line_number":1502,"context_line":"        for headers, footers in expectations:"},{"line_number":1503,"context_line":"            self._check_container_override_etag_preference(headers, footers)"},{"line_number":1504,"context_line":""},{"line_number":1505,"context_line":"        # footer trumps header"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_7c060fcf","line":1502,"updated":"2016-07-26 12:52:27.000000000","message":"hmmm, compared with the master, this loop over the expectation obscures which condition (if any) failed, so I preferred the original with explicit calls to the helper method for each scenario.","commit_id":"430a29471602adc3793584fef34a7990df59a990"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"168246cfc4ab6680f6837c841ea3ec852131b77f","unresolved":false,"context_lines":[{"line_number":1499,"context_line":"            ({}, {\u0027X-Object-Sysmeta-Container-Update-Override-Etag\u0027:"},{"line_number":1500,"context_line":"                  \u0027update-etag\u0027}),"},{"line_number":1501,"context_line":"        ]"},{"line_number":1502,"context_line":"        for headers, footers in expectations:"},{"line_number":1503,"context_line":"            self._check_container_override_etag_preference(headers, footers)"},{"line_number":1504,"context_line":""},{"line_number":1505,"context_line":"        # footer trumps header"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_01add983","line":1502,"in_reply_to":"dada55a8_7c060fcf","updated":"2016-07-26 16:25:17.000000000","message":"oh!  because when it fails it\u0027s always the same line number.  That\u0027s a good point!","commit_id":"430a29471602adc3793584fef34a7990df59a990"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"9cf41f2af2f4b13842289670b592e54bff2a15f7","unresolved":false,"context_lines":[{"line_number":1502,"context_line":"        for headers, footers in expectations:"},{"line_number":1503,"context_line":"            self._check_container_override_etag_preference(headers, footers)"},{"line_number":1504,"context_line":""},{"line_number":1505,"context_line":"        # footer trumps header"},{"line_number":1506,"context_line":"    def test_footer_trumps_header(self):"},{"line_number":1507,"context_line":"        expectations \u003d ["},{"line_number":1508,"context_line":"            ({\u0027X-Backend-Container-Update-Override-Etag\u0027: \u0027ignored-etag\u0027},"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_bca247fa","line":1505,"updated":"2016-07-26 12:52:27.000000000","message":"nit: pep8 is happy but the mis-indented comment looks odd","commit_id":"430a29471602adc3793584fef34a7990df59a990"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"168246cfc4ab6680f6837c841ea3ec852131b77f","unresolved":false,"context_lines":[{"line_number":1502,"context_line":"        for headers, footers in expectations:"},{"line_number":1503,"context_line":"            self._check_container_override_etag_preference(headers, footers)"},{"line_number":1504,"context_line":""},{"line_number":1505,"context_line":"        # footer trumps header"},{"line_number":1506,"context_line":"    def test_footer_trumps_header(self):"},{"line_number":1507,"context_line":"        expectations \u003d ["},{"line_number":1508,"context_line":"            ({\u0027X-Backend-Container-Update-Override-Etag\u0027: \u0027ignored-etag\u0027},"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_81c1c931","line":1505,"in_reply_to":"dada55a8_bca247fa","updated":"2016-07-26 16:25:17.000000000","message":"#willfix","commit_id":"430a29471602adc3793584fef34a7990df59a990"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"9cf41f2af2f4b13842289670b592e54bff2a15f7","unresolved":false,"context_lines":[{"line_number":1515,"context_line":"        for headers, footers in expectations:"},{"line_number":1516,"context_line":"            self._check_container_override_etag_preference(headers, footers)"},{"line_number":1517,"context_line":""},{"line_number":1518,"context_line":"    def test_sysmeta_trumps_backend(self):"},{"line_number":1519,"context_line":"        expectations \u003d ["},{"line_number":1520,"context_line":"            ({\u0027X-Backend-Container-Update-Override-Etag\u0027: \u0027ignored-etag\u0027,"},{"line_number":1521,"context_line":"              \u0027X-Object-Sysmeta-Container-Update-Override-Etag\u0027:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_e479c183","line":1518,"updated":"2016-07-26 12:52:27.000000000","message":"+1","commit_id":"430a29471602adc3793584fef34a7990df59a990"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"328b7efba0eb455650763ce77e7b56cf31d60766","unresolved":false,"context_lines":[{"line_number":1501,"context_line":"            {}, {\u0027X-Object-Sysmeta-Container-Update-Override-Etag\u0027:"},{"line_number":1502,"context_line":"                 \u0027update-etag\u0027}),"},{"line_number":1503,"context_line":""},{"line_number":1504,"context_line":"    def test_footer_trumps_header(self):"},{"line_number":1505,"context_line":"        self._check_container_override_etag_preference("},{"line_number":1506,"context_line":"            {\u0027X-Backend-Container-Update-Override-Etag\u0027: \u0027ignored-etag\u0027},"},{"line_number":1507,"context_line":"            {\u0027X-Backend-Container-Update-Override-Etag\u0027: \u0027update-etag\u0027})"}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_0d116c52","line":1504,"updated":"2016-07-27 08:16:00.000000000","message":"nit: would be nice to have the word \"override\" somewhere in the method names","commit_id":"a97537e158a78b7c49f11aef2756fa65093a05dd"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"328b7efba0eb455650763ce77e7b56cf31d60766","unresolved":false,"context_lines":[{"line_number":1526,"context_line":"                   \u0027update-etag\u0027}"},{"line_number":1527,"context_line":"        footers \u003d {\u0027X-Backend-Container-Update-Override-Etag\u0027:"},{"line_number":1528,"context_line":"                   \u0027ignored-etag\u0027}"},{"line_number":1529,"context_line":"        self._check_container_override_etag_preference(headers, footers)"},{"line_number":1530,"context_line":""},{"line_number":1531,"context_line":"    def test_PUT_etag_in_footer_mismatch(self):"},{"line_number":1532,"context_line":"        timestamp \u003d normalize_timestamp(time())"}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_cd0ab41f","line":1529,"updated":"2016-07-27 08:16:00.000000000","message":"I think we are still missing the permutation \"sysmeta footer trumps backend header\"","commit_id":"a97537e158a78b7c49f11aef2756fa65093a05dd"}]}
