Ich benutze Pylint in einem Projekt und etwas stört mich.Pyint: Deaktiviere Warnung für Unterklasse
Zum Beispiel, ich erstelle einen Komponententest (Unterklasse von unittest.TestCase). Diese Elternklasse hat eine Menge Methoden, also sagt pylint "R0904: Zu viele öffentliche Methoden". Um diese Warnung zu "lösen", deaktiviere ich lokal diese Überprüfung.
Aber ich muss eine Menge Unit-Test schreiben und es stört mich, Localy diese Überprüfung jedes Mal zu deaktivieren.
Also ich suche nach einer Möglichkeit, diese Prüfung für alle Unterklasse von unittest.TestCase zu deaktivieren. In einer Pylint-Konfigurationsdatei kann sein, aber ich habe nichts gefunden.
Haben Sie eine Idee, das zu tun?
Vielen Dank für Ihre Hilfe.
Hoffentlich gibt es eine einfachere Option, aber wenn nicht ... Sie können immer ein Plugin schreiben, dass Unterklassen (oder Monkeypatches, aber Unterklassen scheint hier sauberer) der Design-Checker. Ich würde es tun, indem ich eine neue Option "ignore-test-classes" hinzufüge und diese verwende, um die Prüfung "max-public-methods" für jede Klasse zu überspringen, die von einer der ignorierten Klassen erbt. (Der Code, der die 'Ignorieren-iface-Methoden' der Klassenüberprüfung handhabt, sollte ein gutes Modell sein.) In der Tat scheint es, als könnte es von allgemeinem Nutzen sein, dass Sie es wahrscheinlich upstream hochladen könnten, wenn Sie es tun. – abarnert
Das bringt Sie nicht ganz dorthin, aber Sie können immer eine 'pylintrc' in ein Paket (dh jedes Verzeichnis mit einem '__init __.py') einfügen, wenn Sie also alle Ihre Tests in einem' tests'-Verzeichnis haben, Zum Beispiel können Sie es zumindest auf Projektbasis deaktivieren, auch wenn es nicht global ist. –
Danke für Ihre Antwort. Abarnert, ich werde prüfen, wie man dafür ein Plugin erstellt. Mein Problem besteht nicht nur für die Unittest-Klasse. Zum Beispiel verwende ich sqlalchemy und für die Unterklasse von sqlalchemy.types.TypeDecorator. Ich werde versuchen, ein generisches Plugin zu schreiben, um eine Option hinzuzufügen wie disable-XXXX = unittest.TestCase, ..., ... –