)]}'
{"keystone/tests/unit/test_v3_federation.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"800ddf31306d25f9e2b49b896b0084f8c9edff25","unresolved":false,"context_lines":[{"line_number":3437,"context_line":""},{"line_number":3438,"context_line":"        create_class_mock.assert_called_with(saml.Assertion, \u0027fakeoutput\u0027)"},{"line_number":3439,"context_line":""},{"line_number":3440,"context_line":"    @mock.patch(\u0027saml2.create_class_from_xml_string\u0027)"},{"line_number":3441,"context_line":"    @mock.patch(\u0027oslo_utils.fileutils.write_to_tempfile\u0027)"},{"line_number":3442,"context_line":"    @mock.patch(\u0027subprocess.check_output\u0027)"},{"line_number":3443,"context_line":"    def test__sign_assertion_ex(self, check_output_mock,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_2e71dc77","line":3440,"updated":"2015-08-14 16:41:04.000000000","message":"do you need create_class for anything? you don\u0027t touch the mock here","commit_id":"79721d4dd7254bcdc0b3e626ceb1ab304e88c2b6"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"031e55391899e47d5376fdd6ea01c178b5a8870a","unresolved":false,"context_lines":[{"line_number":3437,"context_line":""},{"line_number":3438,"context_line":"        create_class_mock.assert_called_with(saml.Assertion, \u0027fakeoutput\u0027)"},{"line_number":3439,"context_line":""},{"line_number":3440,"context_line":"    @mock.patch(\u0027saml2.create_class_from_xml_string\u0027)"},{"line_number":3441,"context_line":"    @mock.patch(\u0027oslo_utils.fileutils.write_to_tempfile\u0027)"},{"line_number":3442,"context_line":"    @mock.patch(\u0027subprocess.check_output\u0027)"},{"line_number":3443,"context_line":"    def test__sign_assertion_ex(self, check_output_mock,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_724819cd","line":3440,"in_reply_to":"1a4dcd0f_2e71dc77","updated":"2015-08-14 23:29:12.000000000","message":"I copy-pasted it from above but this is won\u0027t be called due to short-circuiting by exception... removed it.","commit_id":"79721d4dd7254bcdc0b3e626ceb1ab304e88c2b6"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"6f9a4f7fa758cf8c17e35f06c95d7e9edddf9610","unresolved":false,"context_lines":[{"line_number":3440,"context_line":"    @mock.patch(\u0027saml2.create_class_from_xml_string\u0027)"},{"line_number":3441,"context_line":"    @mock.patch(\u0027oslo_utils.fileutils.write_to_tempfile\u0027)"},{"line_number":3442,"context_line":"    @mock.patch(\u0027subprocess.check_output\u0027)"},{"line_number":3443,"context_line":"    def test__sign_assertion_ex(self, check_output_mock,"},{"line_number":3444,"context_line":"                                write_to_tempfile_mock, create_class_mock):"},{"line_number":3445,"context_line":"        # If the command fails the command output is logged."},{"line_number":3446,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_3fc843a8","line":3443,"updated":"2015-08-14 07:11:24.000000000","message":"(aside) what\u0027s the reason for the double __ convention? (like above as well)?","commit_id":"79721d4dd7254bcdc0b3e626ceb1ab304e88c2b6"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"031e55391899e47d5376fdd6ea01c178b5a8870a","unresolved":false,"context_lines":[{"line_number":3440,"context_line":"    @mock.patch(\u0027saml2.create_class_from_xml_string\u0027)"},{"line_number":3441,"context_line":"    @mock.patch(\u0027oslo_utils.fileutils.write_to_tempfile\u0027)"},{"line_number":3442,"context_line":"    @mock.patch(\u0027subprocess.check_output\u0027)"},{"line_number":3443,"context_line":"    def test__sign_assertion_ex(self, check_output_mock,"},{"line_number":3444,"context_line":"                                write_to_tempfile_mock, create_class_mock):"},{"line_number":3445,"context_line":"        # If the command fails the command output is logged."},{"line_number":3446,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_f20ae978","line":3443,"in_reply_to":"1a4dcd0f_2e679ceb","updated":"2015-08-14 23:29:12.000000000","message":"the function under test is _sign_assertion, so following the normal convention the name has 2 _.\n\nSwitch to use exc.","commit_id":"79721d4dd7254bcdc0b3e626ceb1ab304e88c2b6"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"800ddf31306d25f9e2b49b896b0084f8c9edff25","unresolved":false,"context_lines":[{"line_number":3440,"context_line":"    @mock.patch(\u0027saml2.create_class_from_xml_string\u0027)"},{"line_number":3441,"context_line":"    @mock.patch(\u0027oslo_utils.fileutils.write_to_tempfile\u0027)"},{"line_number":3442,"context_line":"    @mock.patch(\u0027subprocess.check_output\u0027)"},{"line_number":3443,"context_line":"    def test__sign_assertion_ex(self, check_output_mock,"},{"line_number":3444,"context_line":"                                write_to_tempfile_mock, create_class_mock):"},{"line_number":3445,"context_line":"        # If the command fails the command output is logged."},{"line_number":3446,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_2e679ceb","line":3443,"in_reply_to":"1a4dcd0f_3fc843a8","updated":"2015-08-14 16:41:04.000000000","message":"I think you have to read this as \"test_\" \"_sign_assertion\" \"_ex\". So, this is a test method for a private attribute called \"_sign_assertion\" which makes assertions about exception. Quite a convoluted pattern. \"_sign_assertion\" probably shouldn\u0027t be a private method if it can be reasonably unit tested externally?\n\nnit: the new method uses the _ex suffix, whereas the existing one uses the _exc suffix.","commit_id":"79721d4dd7254bcdc0b3e626ceb1ab304e88c2b6"}]}
