2012-03-28 2 views
2

Есть ли хорошая информация о том, как использовать модуль Python fixture с Google App Engines New DB?Использование Google App Engine NDB и приспособлений

Кажется, есть несколько проблем, таких как:

  1. obj.delete() на разборки (в ndb это obj.key.delete())

  2. Это не интуитивно, как настроить вложенные StructuredProperty элементы.

Есть обходные пути, чтобы обеспечить модуль Крепежа для работы с ndb или альтернативной системой арматуры, которая будет работать с ndb?

спасибо.

ответ

1

Считаете ли вы использование Testbed? Он соответствующим образом настраивает заглушки службы GAE, поэтому вы можете протестировать их против хранилища данных (и других служб), и он будет срывать все ваши данные хранилища данных после каждого теста.

Чтобы создать светильники для ваших тестов, вы просто прямо помещаете некоторые объекты в хранилище данных в методе setUp(). И вы можете использовать NDB API для размещения светильников и тестов, если хотите.

+0

Спасибо @Maxim. Я использую Testbed, но создание приспособлений через 'setUp()' не так элегантно, как пакет Fixtures. Я хотел бы использовать оба. –

2

Я предполагаю, что класс GoogleDatastoreFixture от fixture перехватывает операции Datastore на уровне модуля ext.db. Поскольку NDB имеет другой API, он нуждается в изменении. Возможно, вы можете внести свой вклад в класс GoogleNdbFixture. Или, может быть, правильная вещь - перехватить вещи на более низком уровне - опять же, что-то, что вы можете взять с автором прибора и посмотреть, есть ли способ, которым вы можете помочь.