def test_getFilters(self): # test that getFilters() correctly extracts file patterns from # the database. ztm = self.layer.txn ztm.begin() evolution = getUtility(IProductSet).getByName('evolution') trunk = evolution.getSeries('trunk') trunk.releasefileglob = ('http://ftp.gnome.org/pub/GNOME/sources/' 'evolution/2.7/evolution-*.tar.gz') ztm.commit() logging.basicConfig(level=logging.CRITICAL) prf = ProductReleaseFinder(ztm, logging.getLogger()) # get the filters for evolution and firefox for product_name, filters in prf.getFilters(): if product_name == 'evolution': evo_filters = filters self.assertEqual(len(evo_filters), 1) self.failUnless(isinstance(evo_filters[0], FilterPattern)) self.assertEqual(evo_filters[0].key, 'trunk') self.assertEqual(evo_filters[0].base_url, 'http://ftp.gnome.org/pub/GNOME/sources/evolution/2.7/') self.assertEqual(evo_filters[0].urlglob, 'http://ftp.gnome.org/pub/GNOME/sources/evolution/2.7/' 'evolution-*.tar.gz') self.failUnless(evo_filters[0].match( 'http://ftp.gnome.org/pub/GNOME/sources/evolution/2.7/' 'evolution-2.7.1.tar.gz'))
def test_getFilters_ignore_obsolete(self): # Verify that obsolete series are ignnored. ztm = self.layer.txn ztm.begin() product = self.factory.makeProduct(name="bunny") active_series = product.getSeries('trunk') active_series.releasefileglob = 'http://eg.dom/bunny/trunk/*' obsolete_series = self.factory.makeProductSeries( product=product, name='rabbit') obsolete_series.releasefileglob = 'http://eg.dom/bunny/rabbit/*' obsolete_series.status = SeriesStatus.OBSOLETE ztm.commit() logging.basicConfig(level=logging.CRITICAL) prf = ProductReleaseFinder(ztm, logging.getLogger()) product_filters = prf.getFilters() self.assertEqual(1, len(product_filters)) found_product, filters = product_filters[0] self.assertEqual('bunny', found_product) self.assertEqual(1, len(filters)) self.assertEqual(filters[0].key, 'trunk')