def test_crawl_limit(self): c = Crawler("http://a.com") c.SLEEP_TIME = 0 def side_effect(): c.process_q.pop(0) c._process_next_url = mock.Mock(side_effect=side_effect) c.render_sitemap = mock.Mock() c.URL_LIMIT = 10 c.process_q = ["test"] * 5 c.crawl() self.assertEqual(c._process_next_url.call_count, 5) c._process_next_url.call_count = 0 c.process_q = ["test"] * 10 c.URL_LIMIT = 5 c.crawl() self.assertEqual(c._process_next_url.call_count, 5) c._process_next_url.call_count = 0 c.process_q = ["test"] * 10 c.URL_LIMIT = float("inf") c.crawl() self.assertEqual(c._process_next_url.call_count, 10)