def test_get_remote_products_and_components_encounters_301(self): def redirect_callback(request): new_url = request.url.replace("query.cgi", "newquery.cgi") return (301, {"Location": new_url}, "") lp_bugtracker = self.factory.makeBugTracker( title="fdo-example", name="fdo-example") transaction.commit() finder = BugzillaRemoteComponentFinder(logger=BufferLogger()) responses.add_callback( "GET", re.compile(r".*/query\.cgi"), callback=redirect_callback) responses.add( "GET", re.compile(r".*/newquery\.cgi\?format=advanced"), match_querystring=True, content_type="text/html", body=read_test_file("bugzilla-fdo-advanced-query.html")) finder.getRemoteProductsAndComponents(bugtracker_name="fdo-example") self.assertEqual( 109, len(list(lp_bugtracker.getAllRemoteComponentGroups()))) comp_group = lp_bugtracker.getRemoteComponentGroup(u'xorg') self.assertIsNot(None, comp_group) self.assertEqual(146, len(list(comp_group.components))) comp = comp_group.getComponent(u'Driver/Radeon') self.assertIsNot(None, comp) self.assertEqual(u'Driver/Radeon', comp.name)
def main(self): start_time = time.time() finder = BugzillaRemoteComponentFinder(self.logger) finder.getRemoteProductsAndComponents( bugtracker_name=self.options.bugtracker) run_time = time.time() - start_time print("Time for this run: %.3f seconds." % run_time)
def main(self): start_time = time.time() finder = BugzillaRemoteComponentFinder( self.logger) finder.getRemoteProductsAndComponents( bugtracker_name=self.options.bugtracker) run_time = time.time() - start_time print("Time for this run: %.3f seconds." % run_time)
def test_store(self): """Check that already-parsed data gets stored to database""" lp_bugtracker = self.factory.makeBugTracker() transaction.commit() # Set up remote bug tracker with synthetic data bz_bugtracker = BugzillaRemoteComponentScraper( base_url="http://bugzilla.example.org") bz_bugtracker.products = { u'alpha': { 'name': u'alpha', 'components': { u'1': { 'name': u'1', }, u'2': { 'name': u'2', }, u'3': { 'name': u'3', }, }, 'versions': None, }, u'beta': { 'name': u'beta', 'components': { u'4': { 'name': u'4', }, }, 'versions': None, } } finder = BugzillaRemoteComponentFinder(logger=BufferLogger()) finder.storeRemoteProductsAndComponents(bz_bugtracker, lp_bugtracker) # Verify the data got stored properly comp_groups = lp_bugtracker.getAllRemoteComponentGroups() self.assertEqual(2, len(list(comp_groups))) comp_group = lp_bugtracker.getRemoteComponentGroup(u'alpha') self.assertEqual(3, len(list(comp_group.components))) comp_group = lp_bugtracker.getRemoteComponentGroup(u'beta') self.assertEqual(1, len(list(comp_group.components))) comp = comp_group.getComponent(u'non-existant') self.assertIs(None, comp) comp = comp_group.getComponent(u'4') self.assertEqual(u'4', comp.name)
def test_get_remote_products_and_components_encounters_500(self): self.factory.makeBugTracker() transaction.commit() finder = BugzillaRemoteComponentFinder(logger=BufferLogger()) responses.add("GET", re.compile(r".*/query\.cgi"), status=500) self.assertGetRemoteProductsAndComponentsDoesNotAssert(finder)
def test_get_remote_products_and_components_encounters_404(self): lp_bugtracker = self.factory.makeBugTracker() transaction.commit() bz_scraper = FaultyBugzillaRemoteComponentScraper(error=HTTPError( "http://bugzilla.example.com", 404, 'Not Found', {}, None)) finder = BugzillaRemoteComponentFinder( logger=BufferLogger(), static_bugzilla_scraper=bz_scraper) self.assertGetRemoteProductsAndComponentsDoesNotAssert(finder)
def test_get_remote_products_and_components(self): """Does a full retrieve and storing of data.""" lp_bugtracker = self.factory.makeBugTracker(title="fdo-example", name="fdo-example") transaction.commit() bz_scraper = StaticTextBugzillaRemoteComponentScraper() finder = BugzillaRemoteComponentFinder( logger=BufferLogger(), static_bugzilla_scraper=bz_scraper) finder.getRemoteProductsAndComponents(bugtracker_name="fdo-example") self.assertEqual( 109, len(list(lp_bugtracker.getAllRemoteComponentGroups()))) comp_group = lp_bugtracker.getRemoteComponentGroup(u'xorg') self.assertIsNot(None, comp_group) self.assertEqual(146, len(list(comp_group.components))) comp = comp_group.getComponent(u'Driver/Radeon') self.assertIsNot(None, comp) self.assertEqual(u'Driver/Radeon', comp.name)
def test_store(self): """Check that already-parsed data gets stored to database""" lp_bugtracker = self.factory.makeBugTracker() transaction.commit() # Set up remote bug tracker with synthetic data bz_bugtracker = BugzillaRemoteComponentScraper( base_url="http://bugzilla.example.org") bz_bugtracker.products = { u'alpha': { 'name': u'alpha', 'components': { u'1': {'name': u'1', }, u'2': {'name': u'2', }, u'3': {'name': u'3', }, }, 'versions': None, }, u'beta': { 'name': u'beta', 'components': { u'4': {'name': u'4', }, }, 'versions': None, } } finder = BugzillaRemoteComponentFinder( logger=BufferLogger()) finder.storeRemoteProductsAndComponents( bz_bugtracker, lp_bugtracker) # Verify the data got stored properly comp_groups = lp_bugtracker.getAllRemoteComponentGroups() self.assertEqual(2, len(list(comp_groups))) comp_group = lp_bugtracker.getRemoteComponentGroup(u'alpha') self.assertEqual(3, len(list(comp_group.components))) comp_group = lp_bugtracker.getRemoteComponentGroup(u'beta') self.assertEqual(1, len(list(comp_group.components))) comp = comp_group.getComponent(u'non-existant') self.assertIs(None, comp) comp = comp_group.getComponent(u'4') self.assertEqual(u'4', comp.name)
def test_get_remote_products_and_components(self): """Does a full retrieve and storing of data.""" lp_bugtracker = self.factory.makeBugTracker( title="fdo-example", name="fdo-example") transaction.commit() bz_scraper = StaticTextBugzillaRemoteComponentScraper() finder = BugzillaRemoteComponentFinder( logger=BufferLogger(), static_bugzilla_scraper=bz_scraper) finder.getRemoteProductsAndComponents(bugtracker_name="fdo-example") self.assertEqual( 109, len(list(lp_bugtracker.getAllRemoteComponentGroups()))) comp_group = lp_bugtracker.getRemoteComponentGroup(u'xorg') self.assertIsNot(None, comp_group) self.assertEqual(146, len(list(comp_group.components))) comp = comp_group.getComponent(u'Driver/Radeon') self.assertIsNot(None, comp) self.assertEqual(u'Driver/Radeon', comp.name)
def test_get_remote_products_and_components(self): """Does a full retrieve and storing of data.""" lp_bugtracker = self.factory.makeBugTracker( title="fdo-example", name="fdo-example") transaction.commit() finder = BugzillaRemoteComponentFinder(logger=BufferLogger()) responses.add( "GET", re.compile(r".*/query\.cgi\?format=advanced"), match_querystring=True, content_type="text/html", body=read_test_file("bugzilla-fdo-advanced-query.html")) finder.getRemoteProductsAndComponents(bugtracker_name="fdo-example") self.assertEqual( 109, len(list(lp_bugtracker.getAllRemoteComponentGroups()))) comp_group = lp_bugtracker.getRemoteComponentGroup(u'xorg') self.assertIsNot(None, comp_group) self.assertEqual(146, len(list(comp_group.components))) comp = comp_group.getComponent(u'Driver/Radeon') self.assertIsNot(None, comp) self.assertEqual(u'Driver/Radeon', comp.name)