Changeset 84216 in webkit


Ignore:
Timestamp:
Apr 18, 2011 8:11:20 PM (13 years ago)
Author:
eric@webkit.org
Message:

2011-04-18 Eric Seidel <eric@webkit.org>

Reviewed by Adam Barth.

test-webkitpy should run the ActiveWorkItems tests
https://bugs.webkit.org/show_bug.cgi?id=58859

Also make the unit tests pass. :)

  • QueueStatusServer/model/activeworkitems.py:
  • QueueStatusServer/model/queue.py:
  • QueueStatusServer/model/workitems.py:
Location:
trunk/Tools
Files:
4 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r84211 r84216  
     12011-04-18  Eric Seidel  <eric@webkit.org>
     2
     3        Reviewed by Adam Barth.
     4
     5        test-webkitpy should run the ActiveWorkItems tests
     6        https://bugs.webkit.org/show_bug.cgi?id=58859
     7
     8        Also make the unit tests pass. :)
     9
     10        * QueueStatusServer/model/activeworkitems.py:
     11        * QueueStatusServer/model/queue.py:
     12        * QueueStatusServer/model/workitems.py:
     13
    1142011-04-18  Eric Seidel  <eric@webkit.org>
    215
  • trunk/Tools/QueueStatusServer/model/activeworkitems.py

    r70088 r84216  
    6262        self._set_item_time_pairs(nonexpired_pairs)
    6363
     64    @classmethod
     65    def key_for_queue(cls, queue_name):
     66        return "active-work-items-%s" % (queue_name)
     67
     68    @classmethod
     69    def lookup_by_queue(cls, queue_name):
     70        return cls.get_or_insert(key_name=cls.key_for_queue(queue_name), queue_name=queue_name)
     71
    6472    @staticmethod
    6573    def _expire_item(key, item_id):
  • trunk/Tools/QueueStatusServer/model/activeworkitems_unittest.py

    r84215 r84216  
    2929import unittest
    3030from datetime import datetime
     31from google.appengine.ext import testbed
    3132
    3233from model.activeworkitems import ActiveWorkItems
     
    3435
    3536class ActiveWorkItemsTest(unittest.TestCase):
     37
     38    def setUp(self):
     39        self.testbed = testbed.Testbed()
     40        self.testbed.activate()
     41        self.testbed.init_datastore_v3_stub()
     42        self.testbed.init_memcache_stub()
     43
     44    def tearDown(self):
     45        self.testbed.deactivate()
     46
    3647    def test_basic(self):
    37         items = ActiveWorkItems()
     48        items = ActiveWorkItems.lookup_by_queue("test-queue")
    3849        queued_items = [1, 2]
    39         time = datetime.now()
     50        # db.Model only stores dates to second resolution, so we use an explicit datetime without milliseconds.
     51        time = datetime(2011, 4, 18, 18, 50, 44)
    4052        self.assertEqual(items.next_item(queued_items, time), 1)
    4153        self.assertEqual(items.next_item([1], time), None)
     
    4658
    4759        items.expire_item(1)
     60        # expire_item uses a transaction so it doesn't take effect on the current object.
     61        self.assertEqual(items.time_for_item(1), time)
     62        # If we look up the saved object, we see it's been updated.
     63        items = ActiveWorkItems.lookup_by_queue("test-queue")
    4864        self.assertEqual(items.time_for_item(1), None)
    49 
    50 
    51 if __name__ == '__main__':
    52     unittest.main()
  • trunk/Tools/QueueStatusServer/model/queues.py

    r70171 r84216  
    7171
    7272    def work_items(self):
    73         key_name = "work-items-%s" % (self._name)
    74         return WorkItems.get_or_insert(key_name=key_name, queue_name=self._name)
     73        return WorkItems.lookup_by_queue(self._name)
    7574
    7675    # FIXME: active_work_items is a bad name for this lock-table.
    7776    def active_work_items(self):
    78         key_name = "active-work-items-%s" % (self._name)
    79         return ActiveWorkItems.get_or_insert(key_name=key_name, queue_name=self._name)
     77        return ActiveWorkItems.lookup_by_queue(self._name)
    8078
    8179    def _caplitalize_after_dash(self, string):
  • trunk/Tools/QueueStatusServer/model/workitems.py

    r71441 r84216  
    3737    date = db.DateTimeProperty(auto_now_add=True)
    3838
     39    @classmethod
     40    def key_for_queue(cls, queue_name):
     41        return "work-items-%s" % (queue_name)
     42
     43    @classmethod
     44    def lookup_by_queue(cls, queue_name):
     45        return cls.get_or_insert(key_name=cls.key_for_queue(queue_name), queue_name=queue_name)
     46
    3947    def display_position_for_attachment(self, attachment_id):
    4048        """Returns a 1-based index corresponding to the position
Note: See TracChangeset for help on using the changeset viewer.