def test_ensureUtility(self): self.createRFAndSM() db, connection, root, root_folder = getInformationFromEvent( EventStub(self.db)) # TODO: check EventSub root_folder = self.root_folder for i in range(2): cx = self.db.open() utility = ensureUtility(root_folder, IErrorReportingUtility, 'ErrorReporting', ErrorReportingUtility, 'ErrorReporting') utility2 = ensureUtility(root_folder, IErrorReportingUtility, 'ErrorReporting2', ErrorReportingUtility, 'ErrorReporting2') if utility is not None: name = utility.__name__ name2 = utility2.__name__ else: name = None name2 = None if i == 0: self.assertEqual(name, 'ErrorReporting') self.assertEqual(name2, 'ErrorReporting2') else: self.assertEqual(name, None) self.assertEqual(name2, None) root = cx.root() root_folder = root[ZopePublication.root_name] package_name = '/++etc++site/default' package = traverse(self.root_folder, package_name) self.assertTrue(IErrorReportingUtility.providedBy( traverse(package, 'ErrorReporting'))) self.assertTrue(IErrorReportingUtility.providedBy( traverse(package, 'ErrorReporting2'))) transaction.commit() cx.close()
def test_errorReportingSetup(self): """Error reporting is set up by an event handler in this package. We test whether the event handler works. """ self.createRFAndSM() event = DatabaseOpened(self.db) # this will open and close the database by itself errorlogBootStrapSubscriber(event) # this will re-open the database db, connection, root, root_folder = getInformationFromEvent(event) got_utility = zope.component.getUtility(IErrorReportingUtility, context=root_folder) self.assertTrue(IErrorReportingUtility.providedBy(got_utility)) # we need to close again in the end connection.close()