def open(self, tracker_home, optimize=0): """Open the tracker. Parameters: tracker_home: tracker home directory optimize: if set, precompile html templates Raise ValueError if the tracker home doesn't exist. """ import imp # sanity check existence of tracker home if not os.path.exists(tracker_home): raise ValueError, 'no such directory: "%s"'%tracker_home # sanity check tracker home contents for reqd in 'config dbinit select_db interfaces'.split(): if not os.path.exists(os.path.join(tracker_home, '%s.py'%reqd)): raise TrackerError, 'File "%s.py" missing from tracker '\ 'home "%s"'%(reqd, tracker_home) if self.trackers.has_key(tracker_home): return imp.load_package(self.trackers[tracker_home], tracker_home) # register all available backend modules backends.list_backends() self.number = self.number + 1 modname = '_roundup_tracker_%s'%self.number self.trackers[tracker_home] = modname # load the tracker tracker = imp.load_package(modname, tracker_home) # ensure the tracker has all the required bits for required in 'open init Client MailGW'.split(): if not hasattr(tracker, required): raise TrackerError, \ 'Required tracker attribute "%s" missing'%required # load and apply the config tracker.config = configuration.CoreConfig(tracker_home) tracker.dbinit.config = tracker.config tracker.optimize = optimize tracker.templates = templating.Templates(tracker.config["TEMPLATES"]) if optimize: tracker.templates.precompileTemplates() return tracker
def open(self, tracker_home, optimize=0): """Open the tracker. Parameters: tracker_home: tracker home directory optimize: if set, precompile html templates Raise ValueError if the tracker home doesn't exist. """ import imp # sanity check existence of tracker home if not os.path.exists(tracker_home): raise ValueError('no such directory: "%s"' % tracker_home) # sanity check tracker home contents for reqd in 'config dbinit select_db interfaces'.split(): if not os.path.exists(os.path.join(tracker_home, '%s.py' % reqd)): raise TrackerError('File "%s.py" missing from tracker '\ 'home "%s"'%(reqd, tracker_home)) if tracker_home in self.trackers: return imp.load_package(self.trackers[tracker_home], tracker_home) # register all available backend modules backends.list_backends() self.number = self.number + 1 modname = '_roundup_tracker_%s' % self.number self.trackers[tracker_home] = modname # load the tracker tracker = imp.load_package(modname, tracker_home) # ensure the tracker has all the required bits for required in 'open init Client MailGW'.split(): if not hasattr(tracker, required): raise TrackerError('Required tracker attribute "%s" missing' % required) # load and apply the config tracker.config = configuration.CoreConfig(tracker_home) tracker.dbinit.config = tracker.config tracker.optimize = optimize tracker.templates = templating.get_loader(tracker.config["TEMPLATES"]) if optimize: tracker.templates.precompile() return tracker
def test_suite(): suite = unittest.TestSuite() for l in list_backends(): dct = dict(backend = l) subcls = type(TestCase)('TestCase_%s'%l, (TestCase,), dct) suite.addTest(unittest.makeSuite(subcls)) return suite