)]}'
{"test/unit/common/test_utils.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"b007026067e43de6b1b864af0a756a0a7891c30c","unresolved":false,"context_lines":[{"line_number":2077,"context_line":""},{"line_number":2078,"context_line":"        with mock.patch(\u0027swift.common.utils.HASH_PATH_PREFIX\u0027, b\u0027\u0027), \\"},{"line_number":2079,"context_line":"                mock.patch(\u0027swift.common.utils.HASH_PATH_SUFFIX\u0027, b\u0027\u0027), \\"},{"line_number":2080,"context_line":"                mock.patch(\u0027six.moves.builtins.open\u0027, mock.mock_open()), \\"},{"line_number":2081,"context_line":"                mock.patch(\u0027swift.common.utils.ConfigParser\u0027,"},{"line_number":2082,"context_line":"                           FakeConfigParser):"},{"line_number":2083,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_ec9c9471","line":2080,"updated":"2018-07-16 19:25:58.000000000","message":"Ouch, this is clever. But why not just\n                mock.patch(\u0027swift.common.utils.SWIFT_CONF_FILE\u0027,\n                           \u0027/dev/null\u0027), \\\n\n?","commit_id":"c1c3c33b6afd75ad6e1a90bbb9aaed84d1cb3275"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"37ac3e2ebfbf111390dbfbf8cc0072757e8355cb","unresolved":false,"context_lines":[{"line_number":2077,"context_line":""},{"line_number":2078,"context_line":"        with mock.patch(\u0027swift.common.utils.HASH_PATH_PREFIX\u0027, b\u0027\u0027), \\"},{"line_number":2079,"context_line":"                mock.patch(\u0027swift.common.utils.HASH_PATH_SUFFIX\u0027, b\u0027\u0027), \\"},{"line_number":2080,"context_line":"                mock.patch(\u0027six.moves.builtins.open\u0027, mock.mock_open()), \\"},{"line_number":2081,"context_line":"                mock.patch(\u0027swift.common.utils.ConfigParser\u0027,"},{"line_number":2082,"context_line":"                           FakeConfigParser):"},{"line_number":2083,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_b8432813","line":2080,"in_reply_to":"5f7c97a3_ec9c9471","updated":"2019-10-09 08:33:57.000000000","message":"Done","commit_id":"c1c3c33b6afd75ad6e1a90bbb9aaed84d1cb3275"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"ce78e215d6de8676a99431483dac90fe9f4ee239","unresolved":false,"context_lines":[{"line_number":2086,"context_line":"            [\u0027swift_hash_path_suffix\u0027, \u0027swift_hash_path_prefix\u0027], True)"},{"line_number":2087,"context_line":""},{"line_number":2088,"context_line":"        # Unreadable/missing swift.conf causes IOError"},{"line_number":2089,"context_line":"        self.assertRaises(IOError, utils.validate_hash_conf())"},{"line_number":2090,"context_line":""},{"line_number":2091,"context_line":"    def _test_validate_hash_conf(self, sections, options, should_raise_error):"},{"line_number":2092,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3fa7e38b_3a53a93b","line":2089,"updated":"2019-10-09 13:48:29.000000000","message":"Sorry, I missed this part... This needs a mock for open around it, because this test fails improperly when run on a laptop that has SAIO installed.","commit_id":"38bc1b87c56ba9727b999a9043c7a81c20929fae"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"faec40873f0d664b5b472084a88b9902f8b2c97c","unresolved":false,"context_lines":[{"line_number":2089,"context_line":"        # We mock in case the unit tests are run on a laptop with SAIO,"},{"line_number":2090,"context_line":"        # which does have a natural /etc/swift/swift.conf."},{"line_number":2091,"context_line":"        with mock.patch(\u0027swift.common.utils.SWIFT_CONF_FILE\u0027, \u0027/nosuchfile\u0027):"},{"line_number":2092,"context_line":"            self.assertRaises(IOError, utils.validate_hash_conf())"},{"line_number":2093,"context_line":""},{"line_number":2094,"context_line":"    def _test_validate_hash_conf(self, sections, options, should_raise_error):"},{"line_number":2095,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_0713d45d","line":2092,"range":{"start_line":2092,"start_character":63,"end_line":2092,"end_character":65},"updated":"2019-10-11 00:55:48.000000000","message":"I think we either want\n\n self.assertRaises(IOError, utils.validate_hash_conf)\n\nor\n\n with self.assertRaises(IOError):\n     utils.validate_hash_conf()\n\n...though, then the assertion fails... so we need to patch out the prefix/suffix.","commit_id":"92686b856cf8c8bba51838740a11a4fbd3567321"}]}
