ビュー (BrowserViews) を介して他のアドオンとやり取りするフレームワーク的な Plone アドオンの機能テストを作成しています。
テスト目的で機能テストでのみ使用可能なビューを登録するにはどうすればよいですか? 統合ポイントをモックアップして、ビューのルックアップと呼び出しが適切に行われるかどうかを確認したいと思います。
ビュー (BrowserViews) を介して他のアドオンとやり取りするフレームワーク的な Plone アドオンの機能テストを作成しています。
テスト目的で機能テストでのみ使用可能なビューを登録するにはどうすればよいですか? 統合ポイントをモックアップして、ビューのルックアップと呼び出しが適切に行われるかどうかを確認したいと思います。
私はこれを次のようにしました:
def setUp(self):
self.app = self.layer['app']
self.portal = self.layer['portal']
# Register view directly by pushing it to zope.component multi-adapter registry
zope.component.provideAdapter(
# Our class
factory=TestingRedirectHandler,
# (context, request) layers for multiadapter lookup
# We provide None as layers are not used
adapts=(None, None),
# All views are registered as IBrowserView interface
provides=zope.publisher.interfaces.browser.IBrowserView,
# View name
name='redirect_handler')
browser = Browser(self.portal)
browser.handleErrors = False
browser.raiseHttpErrors = False
self.browser = browser
def tearDown(self):
"""
"""
# Dynamically unregister a view
gsm = zope.component.getGlobalSiteManager()
gsm.unregisterAdapter(factory=TestingRedirectHandler,
required=(None, None),
provided=zope.publisher.interfaces.browser.IBrowserView,
name="redirect_handler")
テスト フォルダーがある場合は、configure.zcml
そこにファイルを作成し、そこにビューを登録できます (一貫性のために Python ファイルが存在する必要があります)。