)]}'
{"tempest/scenario/manager.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"58e73bd87ceacab2249c960ce2ced8ff1ab70daf","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        # Neutron network client"},{"line_number":94,"context_line":"        cls.network_client \u003d cls.manager.network_client"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @classmethod"},{"line_number":97,"context_line":"    def tearDownClass(cls):"},{"line_number":98,"context_line":"        # Isolated creds also manages network resources, which should"},{"line_number":99,"context_line":"        # be cleaned up at the end of the test case"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_5b15f6e3","line":96,"updated":"2014-09-17 05:19:02.000000000","message":"Do not we need to remove this too?","commit_id":"45f223cad90c03233f91b0bf60af3db2d3b3e387"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"36e44fa6090ef3815683e41bc82922444c286b13","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        # Neutron network client"},{"line_number":94,"context_line":"        cls.network_client \u003d cls.manager.network_client"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @classmethod"},{"line_number":97,"context_line":"    def tearDownClass(cls):"},{"line_number":98,"context_line":"        # Isolated creds also manages network resources, which should"},{"line_number":99,"context_line":"        # be cleaned up at the end of the test case"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_941568e7","line":96,"in_reply_to":"fa98f980_5b15f6e3","updated":"2014-09-17 09:19:26.000000000","message":"Fair enough, I\u0027ll make a new patch-set.","commit_id":"45f223cad90c03233f91b0bf60af3db2d3b3e387"}],"tempest/test.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"e0b5a3a5acc4ea9236e18f4818a5a6013e421d1c","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                  \u0027[%(name)s] %(message)s\u0027)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    @classmethod"},{"line_number":281,"context_line":"    @safe_setup"},{"line_number":282,"context_line":"    def setUpClass(cls):"},{"line_number":283,"context_line":"        # It should never be overridden by descendants"},{"line_number":284,"context_line":"        if hasattr(super(BaseTestCase, cls), \u0027setUpClass\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_b2fee3ac","line":281,"updated":"2014-09-18 06:48:37.000000000","message":"This decorator expected to be used only as leaf decorator, and not on the base clases.\n\nUsing it here can lead to double tearDownClass call (and double logging), or not wrapped exceptions.","commit_id":"082fe43c7fbe7e1299073aef9c986f27d98be9df"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"6f245a2ebba1ff8ad1f41a00422740b5be489217","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                  \u0027[%(name)s] %(message)s\u0027)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    @classmethod"},{"line_number":281,"context_line":"    @safe_setup"},{"line_number":282,"context_line":"    def setUpClass(cls):"},{"line_number":283,"context_line":"        # It should never be overridden by descendants"},{"line_number":284,"context_line":"        if hasattr(super(BaseTestCase, cls), \u0027setUpClass\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_db37f44b","line":281,"in_reply_to":"fa98f980_48c8a656","updated":"2014-09-18 17:26:45.000000000","message":"I\u0027m thinking that handing this inline here makes sense. The safe_setup decorator was added to allow de-duplicate a bunch of code and clean up different implementations of handling setUpClass failures. This new approach consolidates all of that into the base class, so doing a try except block here and deprecating the decorator seems like a good idea.","commit_id":"082fe43c7fbe7e1299073aef9c986f27d98be9df"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"139ea9cbb9b81e40f76ef0009258dc657c0b95a6","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                  \u0027[%(name)s] %(message)s\u0027)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    @classmethod"},{"line_number":281,"context_line":"    @safe_setup"},{"line_number":282,"context_line":"    def setUpClass(cls):"},{"line_number":283,"context_line":"        # It should never be overridden by descendants"},{"line_number":284,"context_line":"        if hasattr(super(BaseTestCase, cls), \u0027setUpClass\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa98f980_48c8a656","line":281,"in_reply_to":"fa98f980_b2fee3ac","updated":"2014-09-18 08:18:50.000000000","message":"Well the point of this bp is that this will only be needed here. In fact I could drop the decorator and put its code inline here. \nOr I could remove safe_setup here only for now, and at the end of the series of patches add another patch which removes safe_setup from everywhere and adds it here.","commit_id":"082fe43c7fbe7e1299073aef9c986f27d98be9df"}]}
