Las advertencias son solo eso:advertencias. Se informan (generalmente) a stderr, pero no se hace nada más. No puede atraparlos como excepciones porque no se generan.
Sin embargo, puede configurar qué hacer con advertencias, y desactívelas o conviértalas en excepciones, usando las warnings
módulo. Por ejemplo, warnings.filterwarnings('error', category=MySQLdb.Warning)
para activar MySQLdb.Warning warnings
en excepciones (en cuyo caso se detectarían usando su prueba/excepto) o 'ignore'
para no mostrarlos en absoluto. Puede (y probablemente debería) tener filtros más detallados que solo la categoría.