Pytest ist ein sogleich extrem mächtiges, als auch ein wunderbar erweiterbares Testframework. Ich benutze es fast in allen Python-Projekten. Doch war eine Sache immer irgendwie umständlich: Datengetriebe Tests, die aus CSV-Dateien parametrisiert wurden.
Die Umstellung von Cron Jobs auf Celery war mit Hilfe von Paketen wie "django-celery-beat" und "django-celery-results" extrem einfach: So einfach, dass sie jetzt schon abgeschlossen ist.
Ein Tutorial mit Erfahrungsbericht.
Neben diversen Updates an Front- und Backend-Frameworks stand auch ein Wechsel auf einen neuen Uberspace an. Entsprechend wurde die Chance genutzt, einiges grundsätzlich zu überarbeiten und Altlasten über Bord zu werfen.
In einem vorangegangenen Artikel beschrieb ich, wie sich die ELV Raumklimastation RS 500 mit einem Raspberry Pi unter Linux auslesen lässt und wie sich die Messewerte für Temperatur und Luftfeuchte für andere Anwendungen bereitstellen lassen. Mit diesem Beitrag wird die Einbindung in ein Monitoring mit Icinga2 beschrieben.
Der Elektronikversender ELV bietet mit der Raumklimastation RS 500 ein Gerät mit Farbdisplay zur Überwachung von Temperatur und Luftfeuchte an, das gleich mit 5 Funksensoren. Die Station lässt sich mittels einer mitgelieferten PC-Software »EasyTemp« auslesen. Aber nur unter Windows. Wäre es nicht schön, die Daten auch unter Linux zu erhalten? Zum Beispiel mit einem Raspberry Pi?
Ein Trie – die Kurzform von »Retrieval« – ist eine einfache Datenstruktur, mit der man in Zeichenketten suchen kann. Ein anderer Begriff dafür ist der »Präfixbaum«. Heute erkläre ich kurz, was man mit einem solchen Teil anstellen kann und wie man es implementiert.
»Die Kette« ist eine kleine syntaktische Knobelei, die es in sich hat – mit Lösungen in Python, JavaScript und C++.
Tests direkt in der Quellcodedokumentation verfassen? Pythons »doctest« macht's möglich. Besonders praktisch ist das, wenn man im Rahmen der Quellcodedokumentation sowieso Beispiele mit angeben möchte. Damit spart man viel Zeit und die Beispiele funktionieren garantiert.
Manchmal erlebt man beim Testen noch echte Überraschungen. Zum Beispiel dann, wenn gut geplante und lokal ausgeführte Tests urplötzlich nicht mehr funktionieren, wenn sie auf einem anderen Rechner oder einem Buildserver ausgeführt werden. So meldete sich die Browser-Automatisierung »Selenium« plötzlich mit dieser erheiternden Meldung:
StaleElementReferenceException: Message: Element not found in the cache - perhaps the page has changed since it was looked up
Pythons eingebaute Funktionen »any« und »all« sind tolle Hilfsmittel für das Entwickeln von gut les- und wartbarem Code. Ich möchte nicht mehr auf sie verzichten, auch, wenn sie ein winziges Problem mit sich bringen: Sie untergraben die Idee der Short Circuit Evaluation.
Ab sofort steht eine aktualisierte Version des BlackRed-Pakets zur Verfügung. Wichtigste Neuerung: Endlich kann Redis' AUTH-Funktion verwendet werden.
Während der Entwicklung von »BlackRed« ist mir ein Python-Verhalten aufgefallen, welches ich so nicht auf dem Schirm hatte. Man lernt eben nie aus.
Mit dem Python-Package »BlackRed« lässt sich eine Benutzeranmeldung zusätzlich gegen Brute-Force-Angriffe absichern. Als Datenbank dafür dient »Redis«.
Auch juergen.rocks verwendet Cookies.
Aber wir verwenden nur technisch notwendige Cookies zur Verwaltung und Absicherung Ihres Besuchs. Es gibt keine Tracking- oder Werbe-Cookies, und natürlich keine Cookies von Dritten.
Es gibt also keine Notwendigkeit, sich für irgendetwas an- oder abzumelden, was Sie sowieso nicht mögen würden.
Datenschutz-Infos