)]}'
{"openstack/tests/unit/network/v2/test_router.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"0329f363272127551a1ab0f5ade77c751844520f","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        sess \u003d mock.Mock()"},{"line_number":186,"context_line":"        sess.put \u003d mock.Mock(return_value\u003dresponse)"},{"line_number":187,"context_line":"        body \u003d {\u0027subnet_id\u0027: \u00273\u0027}"},{"line_number":188,"context_line":"        self.assertRaises("},{"line_number":189,"context_line":"            SDKException,"},{"line_number":190,"context_line":"            sot.add_interface, sess, **body)"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_150f7739","line":188,"updated":"2019-10-29 15:24:37.000000000","message":"can we please also check the message in the raised exception?","commit_id":"1555d67cd97504bb7735e7d9620c59411a9bf38a"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"899a2e141d43b3dd40f21de7142bfeeccb569565","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        sess \u003d mock.Mock()"},{"line_number":186,"context_line":"        sess.put \u003d mock.Mock(return_value\u003dresponse)"},{"line_number":187,"context_line":"        body \u003d {\u0027subnet_id\u0027: \u00273\u0027}"},{"line_number":188,"context_line":"        self.assertRaises("},{"line_number":189,"context_line":"            SDKException,"},{"line_number":190,"context_line":"            sot.add_interface, sess, **body)"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_11de6769","line":188,"in_reply_to":"3fa7e38b_150f7739","updated":"2019-11-04 09:25:36.000000000","message":"Done","commit_id":"1555d67cd97504bb7735e7d9620c59411a9bf38a"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"0329f363272127551a1ab0f5ade77c751844520f","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        sess \u003d mock.Mock()"},{"line_number":202,"context_line":"        sess.put \u003d mock.Mock(return_value\u003dresponse)"},{"line_number":203,"context_line":"        body \u003d {\u0027subnet_id\u0027: \u00273\u0027}"},{"line_number":204,"context_line":"        self.assertRaises("},{"line_number":205,"context_line":"            SDKException,"},{"line_number":206,"context_line":"            sot.remove_interface, sess, **body)"},{"line_number":207,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_3514f34c","line":204,"updated":"2019-10-29 15:24:37.000000000","message":"same here","commit_id":"1555d67cd97504bb7735e7d9620c59411a9bf38a"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"899a2e141d43b3dd40f21de7142bfeeccb569565","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        sess \u003d mock.Mock()"},{"line_number":202,"context_line":"        sess.put \u003d mock.Mock(return_value\u003dresponse)"},{"line_number":203,"context_line":"        body \u003d {\u0027subnet_id\u0027: \u00273\u0027}"},{"line_number":204,"context_line":"        self.assertRaises("},{"line_number":205,"context_line":"            SDKException,"},{"line_number":206,"context_line":"            sot.remove_interface, sess, **body)"},{"line_number":207,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_b1d2f35a","line":204,"in_reply_to":"3fa7e38b_3514f34c","updated":"2019-11-04 09:25:36.000000000","message":"Done","commit_id":"1555d67cd97504bb7735e7d9620c59411a9bf38a"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"fac9fa50d8be7f7d51eab674970410eec07e6297","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        sess \u003d mock.Mock()"},{"line_number":187,"context_line":"        sess.put \u003d mock.Mock(return_value\u003dresponse)"},{"line_number":188,"context_line":"        body \u003d {\u0027subnet_id\u0027: \u00273\u0027}"},{"line_number":189,"context_line":"        try:"},{"line_number":190,"context_line":"            sot.add_interface(sess, **body)"},{"line_number":191,"context_line":"        except SDKException as exc:"},{"line_number":192,"context_line":"            self.assertEqual(msg, exc.message)"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def test_remove_interface_4xx(self):"},{"line_number":195,"context_line":"        # Neutron may return 4xx for example if a router interface has"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_bdcdbe93","line":192,"range":{"start_line":189,"start_character":0,"end_line":192,"end_character":46},"updated":"2019-12-16 17:44:08.000000000","message":"So if this DOESN\u0027T throw an exception, this test will pass, which is not what we want. You want to use testtools.ExpectedException here (and the test below) to validate that an exception is thrown AND the exception message. There are examples in other unit tests.","commit_id":"edc70f0c2bfc29f129ed08afa5d5b9b5d26632ae"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"2f0f7696dfb392e5b1e446304c3461443ce9a882","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        sess \u003d mock.Mock()"},{"line_number":187,"context_line":"        sess.put \u003d mock.Mock(return_value\u003dresponse)"},{"line_number":188,"context_line":"        body \u003d {\u0027subnet_id\u0027: \u00273\u0027}"},{"line_number":189,"context_line":"        try:"},{"line_number":190,"context_line":"            sot.add_interface(sess, **body)"},{"line_number":191,"context_line":"        except SDKException as exc:"},{"line_number":192,"context_line":"            self.assertEqual(msg, exc.message)"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def test_remove_interface_4xx(self):"},{"line_number":195,"context_line":"        # Neutron may return 4xx for example if a router interface has"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_c740ae35","line":192,"range":{"start_line":189,"start_character":0,"end_line":192,"end_character":46},"in_reply_to":"3fa7e38b_7da630c3","updated":"2019-12-19 16:51:25.000000000","message":"we actually have also self.assertRaises (see example at least in openstack/tests/unit/network/v2/test_proxy.py), which works without adding testtools and is easier in syntax (unless required to validate the msg itself)","commit_id":"edc70f0c2bfc29f129ed08afa5d5b9b5d26632ae"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"1d19f99ce47e5fa1235fdc5ada8c9107e2abffdd","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        sess \u003d mock.Mock()"},{"line_number":187,"context_line":"        sess.put \u003d mock.Mock(return_value\u003dresponse)"},{"line_number":188,"context_line":"        body \u003d {\u0027subnet_id\u0027: \u00273\u0027}"},{"line_number":189,"context_line":"        try:"},{"line_number":190,"context_line":"            sot.add_interface(sess, **body)"},{"line_number":191,"context_line":"        except SDKException as exc:"},{"line_number":192,"context_line":"            self.assertEqual(msg, exc.message)"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def test_remove_interface_4xx(self):"},{"line_number":195,"context_line":"        # Neutron may return 4xx for example if a router interface has"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_7da630c3","line":192,"range":{"start_line":189,"start_character":0,"end_line":192,"end_character":46},"in_reply_to":"3fa7e38b_bdcdbe93","updated":"2019-12-19 12:41:12.000000000","message":"Done","commit_id":"edc70f0c2bfc29f129ed08afa5d5b9b5d26632ae"}]}
