Lauris Jullien (@herrbot_DE)
Ich bin seit 3 Jahren Backend-Entwickler bei @Yelp in Hamburg. Davor habe ich mit Robotern bei @Aldebaran Robotics gearbeitet. Und davor habe ich mein eigenes Startup gegründet :) Ich mag saubere APIs, alles, was man mit Daten machen kann, und als guter Franzose, Wein.
Abstract
Tags: Anwendungsfall Python Web
Es kann schwierig sein, Code zu testen, der von externen Diensten abhängt. Oft werden solche Dienste gemockt, aber mit der Zeit kann es herausfordernd sein, diese Mocks aktuell zu halten. Verifizierte Fakes können dieses Problem lösen, und wir werden sehen, wie man sie mit OpenAPI und Python einrichtet.
Beschreibung
Wenn Ihr Code von einem externen (Drittanbieter-)Dienst abhängt, kann das Testen herausfordernd sein. Es kann teuer, langsam oder unzuverlässig sein, diesen Dienst in Tests aufzurufen. Ein klassischer Ansatz ist es, einen solchen Dienst oder seine Netzwerkaufrufe zu mocken. Aber dann besteht die Herausforderung darin, die Mocks mit den Drittanbieterdiensten aktuell zu halten. Die Verwendung von verifizierten Fakes ermöglicht es uns, einen Dienst zu ersetzen und gleichzeitig sicherzustellen, dass er aktuell bleibt. Dies kann auf verschiedene Weise erreicht werden: durch die Verwendung aktueller Netzwerkaufzeichnungen (z. B. vcrpy), das Ausführen einer Testsuite gegen den Mock und den echten Dienst, um die Ergebnisse zu vergleichen, oder durch die Nutzung eines API-Vertrags wie OpenAPI oder Avro.
OpenAPI* ist eine Spezifikation, die dokumentiert, wie eine Dienst-API funktioniert, und dies durch Validierung von Anfragen und Antworten für den Dienst durchsetzt. Wir können dann die Mocks mit der OpenAPI-Spezifikation überprüfen, um sicherzustellen, dass sie aktuell sind.
In diesem Vortrag werde ich erklären, wie man solche verifizierten Fakes mit OpenAPI einrichtet und eine neue Open-Source-Bibliothek, pyramid_mock_server, vorstellen. Hier sind die 3 Hauptfoki:
Schnelle Einführung in OpenAPI und wie man es mit bravado, dem Python OpenAPI-Client, verwendet
Wie man verifizierte Fakes einrichtet: Verwendung von pyramid_mock_server
Nutzung @Yelp: Verwendung von Fakes und OpenAPI für Unit-Tests, Akzeptanztests und Dokumentation
Der Vortrag konzentriert sich auf OpenAPI, aber die Erkenntnisse und Methoden können auf jede andere API-Spezifikationssprache (oder Python-Web-Frameworks) ausgeweitet werden.
* Die OpenAPI-Initiative ist ein herstellerübergreifendes Konsortium, das sich auf die Erstellung, Weiterentwicklung und Förderung eines herstellerneutralen Beschreibungsformats für APIs konzentriert. Als offene Governance-Struktur unter der Linux Foundation gehören zu ihren Mitgliedern Google, IBM, Atlassian und PayPal.
Aufgezeichnet bei PyCon.DE 2017 Karlsruhe: pycon.de
Videobearbeitung: Sebastian Neubauer & Andrei Dan
Tools: Blender, Avidemux & Sonic Pi