Я новичок в тестировании и впервые пытаюсь создать тест для своего продукта Plone.Я на Plone 3.3.
Базовый набор тестов работает, я могу выполнить его без ошибок.Я следовал этой документации: http://plone.org/documentation/kb/testing ... за исключением того, что я пишу свои тесты в классах Python вместо doctests.
Моя проблема в том, что я не могу получить доступ к представлениям, определенным в моем приложении(Я получаю ComponentLookupError).
Кажется, проблема в «браузерном слое», определенном моими приложениями.Когда я удаляю атрибут layer = "..." из моего файла configure.zcml, тест может без проблем получить доступ к представлениям.Однако, если я добавлю его обратно, это не сработает.Я предполагаю, что это потому, что интерфейс de browserlayer не применяется к запросу.
Единственная ссылка на эту проблему, которую я обнаружил, находится в тестах для googlesitemap: http://dev.plone.org/collective/browser/googlesitemap/googlesitemap.common/trunk/googlesitemap/common/tests?rev=
Автор, кажется, создал для теста собственный файл ZCML, в котором слой = "... "атрибут был удален.(это будет работать, но, кажется, очень плохо поддерживать отдельный файл zcml для тестов)
В моем тесте я включил следующее (взято из тестов googlesitemap), которое проходит:
from jambette.site.interfaces import IJambetteLayer # this is my browserlayer
from plone.browserlayer.utils import registered_layers
self.assertTrue(IJambetteLayer in registered_layers())
Так что я думаю, что мой скин и браузерный слой зарегистрированы правильно.
Что мне нужно сделать, чтобы браузерный слой был применен к запросу?