2012-03-28 11 views
2

Gibt es gute Informationen zur Verwendung des Python fixture Moduls mit Google App Engines New DB?Verwenden von Google App Engine NDB und Fixture (s)

Es scheint, gibt es ein paar Probleme, wie zum Beispiel:

  1. obj.delete() auf Teardown (in ndb es obj.key.delete())

  2. Es ist nicht intuitiv, wie verschachtelte StructuredProperty Elemente einzurichten.

Gibt es Workarounds die Befestigungs-Modul zu ermöglichen, mit ndb oder ein alternatives Befestigungssystem zu arbeiten, die mit ndb funktionieren würde?

Vielen Dank.

Antwort

1

Haben Sie in Betracht gezogen, Testbed zu verwenden? Es richtet GAE-Dienst-Stubs entsprechend ein, sodass Sie Tests mit Datenspeicher (und anderen Diensten) durchführen können und alle Datenspeicher-Schreibvorgänge nach jedem Test abgebrochen werden.

Um Fixtures für Ihre Tests zu erstellen, fügen Sie einfach einige Entitäten direkt in den Datenspeicher unter setUp() ein. Und Sie können NDB API verwenden, um Fixtures und in Tests zu setzen, wenn Sie möchten.

+0

Dank @Maxim. Ich benutze Testbed, aber das Erstellen von Fixtures über 'setUp()' ist nicht so elegant wie das Fixtures-Paket. Ich möchte beide verwenden. –

2

Ich vermute, dass die GoogleDatastoreFixture-Klasse der Fixture die Datastore-Operationen auf der ext.db-Modulebene abfängt. Da NDB eine andere API hat, muss sie geändert werden. Vielleicht können Sie eine GoogleNdbFixture-Klasse beitragen. Oder vielleicht ist es das Richtige, Dinge auf einer tieferen Ebene abzufangen - wieder, etwas, das Sie mit dem Autor von Fixture aufnehmen und sehen, ob es einen Weg gibt, wie Sie helfen können.