def test_usable_as_contextmanager(self): from zope.security.management import getInteraction from zope.security.management import queryInteraction with testing.interaction('foo'): ix = getInteraction() participation = ix.participations[0] self.assertEqual('foo', participation.principal.id) # Nesting doesn't change anything with testing.interaction('baz'): ix = getInteraction() participation = ix.participations[0] self.assertEqual('foo', participation.principal.id) self.assertFalse(queryInteraction())
def test_contextmanager_ends_interaction_on_exception(self): from zope.security.management import queryInteraction from zope.security.testing import interaction try: with interaction('foo'): raise RuntimeError() except RuntimeError: pass self.assertFalse(queryInteraction())
def test_contextmanager_ends_interaction_on_exception(self): from zope.security.management import queryInteraction class MyError(Exception): pass with self.assertRaises(MyError): with testing.interaction('foo'): raise MyError() self.assertFalse(queryInteraction())