From fdfa5302a4cdf9f22b51aa9d2334ed502635439d Mon Sep 17 00:00:00 2001 From: Daniel Grana Date: Thu, 19 Mar 2009 05:18:35 +0000 Subject: [PATCH] profiling: minor fixes and new testcase for IndexError exception --HG-- extra : convert_revision : svn%3Ab85faa78-f9eb-468e-a121-7cced6da292c%40999 --- scrapy/trunk/profiling/priorityqueue/pq_classes.py | 9 +++++---- scrapy/trunk/profiling/priorityqueue/test_cases.py | 4 ++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/scrapy/trunk/profiling/priorityqueue/pq_classes.py b/scrapy/trunk/profiling/priorityqueue/pq_classes.py index 7e5f2440c..6e26994a6 100644 --- a/scrapy/trunk/profiling/priorityqueue/pq_classes.py +++ b/scrapy/trunk/profiling/priorityqueue/pq_classes.py @@ -132,7 +132,7 @@ class PriorityQueue3b(PriorityQueue3): """deque+heapq+int""" left_time = 0 - righ_time = 0 + right_time = 0 def push(self, item, priority=0): if priority == 0: @@ -141,8 +141,8 @@ class PriorityQueue3b(PriorityQueue3): self.left_time += 1 heappush(self.negitems, (priority, self.left_time, item)) else: - self.righ_time += 1 - heappush(self.positems, (priority, self.righ_time, item)) + self.right_time += 1 + heappush(self.positems, (priority, self.right_time, item)) #------------------------------------------------------------------------------ @@ -240,7 +240,7 @@ class PriorityQueue5(object): yield (i, final) def __nonzero__(self): - return bool(len(self)) + return any(d for d in self.priolist) class PriorityQueue5b(PriorityQueue5): """list+deque+cache""" @@ -283,4 +283,5 @@ class PriorityQueue5c(PriorityQueue5b): #------------------------------------------------------------------------------ + __all__ = [name for name in globals().keys() if name.startswith('PriorityQueue')] diff --git a/scrapy/trunk/profiling/priorityqueue/test_cases.py b/scrapy/trunk/profiling/priorityqueue/test_cases.py index 79b3940cd..737a638df 100644 --- a/scrapy/trunk/profiling/priorityqueue/test_cases.py +++ b/scrapy/trunk/profiling/priorityqueue/test_cases.py @@ -54,6 +54,10 @@ class TestPriorityQueue(object): pq.pop() self.assertEquals(len(pq), 0) + def test_indexerror(self): + pq = self.PriorityQueue(PRIOSIZE) + self.assertRaises(IndexError, pq.pop) + # automatically test any PriorityQueueN class defined at pq_classes prioclasses = [(name, cls) for name, cls in globals().items() if name.startswith('PriorityQueue')]