)]}'
{"dragonflow/tests/fullstack/test_base.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"94a26db9eaab8c8af44fe4df02ca5efc4363a185","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            db_port\u003dcfg.CONF.df.remote_db_port)"},{"line_number":53,"context_line":"        self.kids \u003d []"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def store(self, obj):"},{"line_number":56,"context_line":"        self.kids.append(obj)"},{"line_number":57,"context_line":"        return obj"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a5ae5dd_91d3e4d4","line":55,"updated":"2016-02-07 05:54:31.000000000","message":"Consider allowing the user to pass a custom destructor - in case the object doesn\u0027t support delete (e.g. add a destructor parameter, that if not passed, equals obj.delete)\n\nThis way, custom objects, and objects requiring special delete handling, can also be used.","commit_id":"08a212fb004e00c5fbe4b605269dcb23007ec17e"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"b14fa103bd8b1dfe764e8ba5bb259f1fb58a6169","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        self.nb_api \u003d api_nb.NbApi(db_driver_class())"},{"line_number":51,"context_line":"        self.nb_api.initialize(db_ip\u003dcfg.CONF.df.remote_db_ip,"},{"line_number":52,"context_line":"            db_port\u003dcfg.CONF.df.remote_db_port)"},{"line_number":53,"context_line":"        self.kids \u003d []"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def store(self, obj):"},{"line_number":56,"context_line":"        self.kids.append(obj)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a5ae5dd_5e11de02","line":53,"range":{"start_line":53,"start_character":13,"end_line":53,"end_character":17},"updated":"2016-02-08 12:31:41.000000000","message":"This shouldn\u0027t be accessible to the extending test. Especially as it\u0027s such a generic member name. Use self.__kids","commit_id":"f3027f7e82121485daf89a6eef64f28f4cd550a0"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"16e08ab04d1ba960517ff573896dc8c3dbcdfbd8","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        self.nb_api \u003d api_nb.NbApi(db_driver_class())"},{"line_number":51,"context_line":"        self.nb_api.initialize(db_ip\u003dcfg.CONF.df.remote_db_ip,"},{"line_number":52,"context_line":"            db_port\u003dcfg.CONF.df.remote_db_port)"},{"line_number":53,"context_line":"        self.kids \u003d []"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def store(self, obj):"},{"line_number":56,"context_line":"        self.kids.append(obj)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a5ae5dd_99ef701d","line":53,"range":{"start_line":53,"start_character":13,"end_line":53,"end_character":17},"in_reply_to":"5a5ae5dd_5e11de02","updated":"2016-02-08 12:33:48.000000000","message":"On second thought don\u0027t even use kids. Use something like \u0027object_teardown_stack\u0027 since they are not this classes kids.","commit_id":"f3027f7e82121485daf89a6eef64f28f4cd550a0"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"b14fa103bd8b1dfe764e8ba5bb259f1fb58a6169","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            db_port\u003dcfg.CONF.df.remote_db_port)"},{"line_number":53,"context_line":"        self.kids \u003d []"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def store(self, obj):"},{"line_number":56,"context_line":"        self.kids.append(obj)"},{"line_number":57,"context_line":"        return obj"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a5ae5dd_1e712676","line":55,"range":{"start_line":55,"start_character":8,"end_line":55,"end_character":13},"updated":"2016-02-08 12:31:41.000000000","message":"I\u0027m note store is the right verb. Maybe \u0027schedule_deletion\u0027?","commit_id":"f3027f7e82121485daf89a6eef64f28f4cd550a0"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"b14fa103bd8b1dfe764e8ba5bb259f1fb58a6169","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        return obj"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def tearDown(self):"},{"line_number":60,"context_line":"        for obj in reversed(self.kids):"},{"line_number":61,"context_line":"            obj.delete()"},{"line_number":62,"context_line":"        super(DFTestBase, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a5ae5dd_7ebdbad6","line":60,"range":{"start_line":60,"start_character":19,"end_line":60,"end_character":27},"updated":"2016-02-08 12:31:41.000000000","message":"I don\u0027t think the order should be decided when tearing down but when adding the items. This will allow you to modify the list at any point in any way before tear down.\n\nWhen adding you could do self.kids.insert(0, 1) which will prepend an item to the list.","commit_id":"f3027f7e82121485daf89a6eef64f28f4cd550a0"}]}
