Thank you all for the quick responses 
I want to make sure that a viewlet which displays behavior related content does not show up when a content type is viewed which does not have applied the behavior. When it is applied TTW (site-setup->dexterity content->Type-beahvior) the viewlet should be visible.
The following code is from the autogenerated viewlet-test:
def test_signatur_viewlet_is_not_available_on_document(self):
view = BrowserView(self.portal['other-document'], self.request)
manager_name = 'plone.belowcontentbody'
alsoProvides(self.request, IMyPackageLayer)
manager = queryMultiAdapter(
(self.portal['other-document'], self.request, view),
IViewletManager,
manager_name,
default=None
)
self.assertIsNotNone(manager)
manager.update()
my_viewlet = [v for v in manager.viewlets if v.__name__ == 'signatur-viewlet'] # NOQA: E501
self.assertEqual(len(my_viewlet), 0)
In the test i want to assign the behavior temporarily to the instance object. When i do
def test_signatur_viewlet_is_available_on_document(self):
adapted = ISignaturVerhaltenMarker(self.portal['other-document'], None)
view = BrowserView(adapted, self.request)
manager_name = 'plone.belowcontentbody'
alsoProvides(self.request, IMyPackageLayer)
manager = queryMultiAdapter(
(self.portal['other-document'], self.request, view),
IViewletManager,
manager_name,
default=None
)
self.assertIsNotNone(manager)
manager.update()
my_viewlet = [v for v in manager.viewlets if v.__name__ == 'signatur-viewlet'] # NOQA: E501
#import pdb; pdb.set_trace()
self.assertEqual(len(my_viewlet), 1)
i get an assertion-error: AssertionError: 0 != 1, so the behavior is not enabled.
When i do
...
manager = queryMultiAdapter(
(adapted, self.request, view),
IViewletManager,
manager_name,
default=None
)
...
i get
File "/opt/plone5.2/buildout-cache/eggs/cp38/zope.viewlet-4.2.1-py3.8.egg/zope/viewlet/manager.py", line 147, in update
viewlets = self.filter(viewlets)
File "/opt/plone5.2/buildout-cache/eggs/cp38/plone.app.viewletmanager-3.1.2-py3.8.egg/plone/app/viewletmanager/manager.py", line 49, in filter
skinname = self.context.getCurrentSkinName()
AttributeError: 'NoneType' object has no attribute 'getCurrentSkinName'
Any clues ?